Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions meta-python/recipes-devtools/python/python-grpcio-tools.inc
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
DESCRIPTION = "Google gRPC tools"
HOMEPAGE = "http://www.grpc.io/"
SECTION = "devel/python"

DEPENDS_append = " ${PYTHON_PN}-grpcio"
RDEPENDS_${PN} = "${PYTHON_PN}-grpcio"

LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=7145f7cdd263359b62d342a02f005515"

inherit pypi

SRC_URI[md5sum] = "b2fabfb54c7824c1e49a02de2aa6628e"
SRC_URI[sha256sum] = "4ce5aa660d7884f23aac1eafa93b97a4c3e2b512edff871e91fdb6ee86ebd5ea"

BBCLASSEXTEND = "native nativesdk"
17 changes: 0 additions & 17 deletions meta-python/recipes-devtools/python/python-grpcio-tools_1.8.4.bb

This file was deleted.

This file was deleted.

25 changes: 0 additions & 25 deletions meta-python/recipes-devtools/python/python-grpcio_1.8.4.bb

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
inherit setuptools3
require python-grpcio-tools.inc
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
From 04e28fdda03b545a0f7b446a784ec2fa7249cbb8 Mon Sep 17 00:00:00 2001
From: Khem Raj <[email protected]>
Date: Wed, 29 Apr 2020 15:37:40 -0700
Subject: [PATCH] Fix build on riscv32

Define __NR_mmap in terms of __NR_mmap2 and __NR_futex interms of
__NR_futex_time64 for rv32, since there calls dont exist for rv32

Also recognise rv32 as a new 32bit platform

Upstream-Status: Submitted [https://github.com/abseil/abseil-cpp/pull/675]
Signed-off-by: Khem Raj <[email protected]>
---
absl/base/internal/direct_mmap.h | 5 +++++
absl/base/internal/spinlock_linux.inc | 4 ++++
absl/synchronization/internal/waiter.cc | 4 ++++
3 files changed, 13 insertions(+)

--- a/third_party/abseil-cpp/absl/base/internal/direct_mmap.h
+++ b/third_party/abseil-cpp/absl/base/internal/direct_mmap.h
@@ -26,6 +26,10 @@

#ifdef __linux__

+#if !defined(__NR_mmap) && defined(__riscv) && __riscv_xlen == 32
+# define __NR_mmap __NR_mmap2
+#endif
+
#include <sys/types.h>
#ifdef __BIONIC__
#include <sys/syscall.h>
@@ -72,6 +76,7 @@ inline void* DirectMmap(void* start, siz
#if defined(__i386__) || defined(__ARM_ARCH_3__) || defined(__ARM_EABI__) || \
(defined(__mips__) && _MIPS_SIM == _MIPS_SIM_ABI32) || \
(defined(__PPC__) && !defined(__PPC64__)) || \
+ (defined(__riscv) && __riscv_xlen == 32) || \
(defined(__s390__) && !defined(__s390x__))
// On these architectures, implement mmap with mmap2.
static int pagesize = 0;
--- a/third_party/abseil-cpp/absl/base/internal/spinlock_linux.inc
+++ b/third_party/abseil-cpp/absl/base/internal/spinlock_linux.inc
@@ -14,6 +14,10 @@
//
// This file is a Linux-specific part of spinlock_wait.cc

+#if !defined(__NR_futex) && defined(__riscv) && __riscv_xlen == 32
+# define __NR_futex __NR_futex_time64
+#endif
+
#include <linux/futex.h>
#include <sys/syscall.h>
#include <unistd.h>
--- a/third_party/abseil-cpp/absl/synchronization/internal/waiter.cc
+++ b/third_party/abseil-cpp/absl/synchronization/internal/waiter.cc
@@ -24,6 +24,10 @@
#include <unistd.h>
#endif

+#if !defined(__NR_futex) && defined(__riscv) && __riscv_xlen == 32
+# define __NR_futex __NR_futex_time64
+#endif
+
#ifdef __linux__
#include <linux/futex.h>
#include <sys/syscall.h>
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
From 2ef8a85933f3ac36b289979ff9edd49dd12d0d16 Mon Sep 17 00:00:00 2001
From: Khem Raj <[email protected]>
Date: Fri, 4 Aug 2017 09:04:07 -0700
Subject: [PATCH] setup.py: Do not mix C and C++ compiler options

EXTRA_ENV_COMPILE_ARGS is used both with CC and CXX
so using -std=c++11 or -std=gnu99 together will cause
build time errors espcially with clang

error: invalid argument '-std=gnu99' not allowed with 'C++'

gcc7 ( defaults are -std=gnu11 and -std=gnu++14 )
as well clang default to these standards mode or newer
anyway

Signed-off-by: Khem Raj <[email protected]>

1. Keep '-std=c++11' and '-std=gnu99' to fix native build error
with old gcc (such as gcc 5.4.0 on ubuntu 16.04), for clang
we will remove them through GRPC_PYTHON_CFLAGS at do_compile
in bb recipe.

2. While export CC="gcc ", cc_args is None, it will
cause subprocess.Popen always return 1. On centos 8, if you don't
install package libatomic, there will be a native build error
`cannot find /usr/lib64/libatomic.so.1.2.0'.

Add no harm '-g' to cc_args if cc_args is empty.

Upstream-Status: Inappropriate [oe specific]
Signed-off-by: Hongxu Jia <[email protected]>
---
setup.py | 6 +++++-
src/python/grpcio/commands.py | 5 ++++-
2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/setup.py b/setup.py
index e950057..1b68221 100644
--- a/setup.py
+++ b/setup.py
@@ -144,9 +144,13 @@ ENABLE_DOCUMENTATION_BUILD = os.environ.get(

def check_linker_need_libatomic():
"""Test if linker on system needs libatomic."""
+ compiler, cc_args = os.environ.get('CC').split(' ', 1) or 'gcc'
+ if not cc_args:
+ cc_args = "-g"
+
code_test = (b'#include <atomic>\n' +
b'int main() { return std::atomic<int64_t>{}; }')
- cc_test = subprocess.Popen(['cc', '-x', 'c++', '-std=c++11', '-'],
+ cc_test = subprocess.Popen([compiler, cc_args, '-x', 'c++', '-std=c++11', '-'],
stdin=PIPE,
stdout=PIPE,
stderr=PIPE)
diff --git a/src/python/grpcio/commands.py b/src/python/grpcio/commands.py
index 064dda9..a75d8b9 100644
--- a/src/python/grpcio/commands.py
+++ b/src/python/grpcio/commands.py
@@ -216,7 +216,10 @@ class BuildExt(build_ext.build_ext):
when invoked in C mode. GCC is okay with this, while clang is not.
"""
# TODO(lidiz) Remove the generated a.out for success tests.
- cc_test = subprocess.Popen(['cc', '-x', 'c', '-std=c++11', '-'],
+ compiler, cc_args = os.environ.get('CC').split(' ', 1) or 'gcc'
+ if not cc_args:
+ cc_args = "-g"
+ cc_test = subprocess.Popen([compiler, cc_args, '-x', 'c', '-std=c++11', '-'],
stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
--
2.7.4

Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
Let boringSSL compile on ppc32 bit

Upstream-Status: Pending
Signed-off-by: Khem Raj <[email protected]>

--- a/third_party/boringssl/include/openssl/base.h
+++ b/third_party/boringssl/include/openssl/base.h
@@ -99,6 +99,9 @@ extern "C" {
#elif (defined(__PPC64__) || defined(__powerpc64__)) && defined(_LITTLE_ENDIAN)
#define OPENSSL_64_BIT
#define OPENSSL_PPC64LE
+#elif (defined(__PPC__) || defined(__powerpc__))
+#define OPENSSL_32_BIT
+#define OPENSSL_PPC
#elif defined(__mips__) && !defined(__LP64__)
#define OPENSSL_32_BIT
#define OPENSSL_MIPS
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
Add RISC-V 64bit support

Upstream-Status: Pending
Signed-off-by: Khem Raj <[email protected]>
--- a/third_party/boringssl/include/openssl/base.h
+++ b/third_party/boringssl/include/openssl/base.h
@@ -108,6 +108,14 @@ extern "C" {
#elif defined(__mips__) && defined(__LP64__)
#define OPENSSL_64_BIT
#define OPENSSL_MIPS64
+#elif defined(__riscv)
+# if (__riscv_xlen == 64)
+# define OPENSSL_64_BIT
+# define OPENSSL_RISCV64
+# elif(__riscv_xlen == 32)
+# define OPENSSL_32_BIT
+# define OPENSSL_RISCV32
+# endif
#elif defined(__pnacl__)
#define OPENSSL_32_BIT
#define OPENSSL_PNACL
35 changes: 35 additions & 0 deletions meta-python/recipes-devtools/python/python3-grpcio_1.27.1.bb
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
DESCRIPTION = "Google gRPC"
HOMEPAGE = "http://www.grpc.io/"
SECTION = "devel/python"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"

DEPENDS += "${PYTHON_PN}-protobuf"

SRC_URI += "file://0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch"
SRC_URI_append_class-target = " file://ppc-boringssl-support.patch \
file://riscv64_support.patch \
file://0001-Fix-build-on-riscv32.patch \
"
SRC_URI[md5sum] = "ccaf4e7eb4f031d926fb80035d193b98"
SRC_URI[sha256sum] = "a899725d34769a498ecd3be154021c4368dd22bdc69473f6ec46779696f626c4"

RDEPENDS_${PN} = "${PYTHON_PN}-protobuf \
${PYTHON_PN}-setuptools \
${PYTHON_PN}-six \
"

inherit setuptools3
inherit pypi

export GRPC_PYTHON_DISABLE_LIBC_COMPATIBILITY = "1"

do_compile_prepend_toolchain-clang() {
export GRPC_PYTHON_CFLAGS='-fvisibility=hidden -fno-wrapv -fno-exceptions'
}

CLEANBROKEN = "1"

BBCLASSEXTEND = "native nativesdk"

CCACHE_DISABLE = "1"