From cac734087e3c86a4f788c806bc07417f22bdacb9 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Sat, 27 Jul 2019 00:04:10 -0700 Subject: grpc: Update to 1.22.0 Fix build with glibc 2.30 Forward port patches Add versioiniing to grpcpp_channelz plugin Signed-off-by: Khem Raj --- ...txt-Fix-grpc_cpp_plugin-path-during-cross.patch | 32 ++----------- ....txt-Fix-libraries-installation-for-Linux.patch | 44 ++++++++++-------- .../0001-Define-gettid-only-for-glibc-2.30.patch | 53 ++++++++++++++++++++++ .../recipes-devtools/grpc/grpc_1.14.1.bb | 42 ----------------- .../recipes-devtools/grpc/grpc_1.22.0.bb | 44 ++++++++++++++++++ 5 files changed, 125 insertions(+), 90 deletions(-) create mode 100644 meta-networking/recipes-devtools/grpc/grpc/0001-Define-gettid-only-for-glibc-2.30.patch delete mode 100644 meta-networking/recipes-devtools/grpc/grpc_1.14.1.bb create mode 100644 meta-networking/recipes-devtools/grpc/grpc_1.22.0.bb (limited to 'meta-networking/recipes-devtools') diff --git a/meta-networking/recipes-devtools/grpc/grpc/0001-CMakeLists.txt-Fix-grpc_cpp_plugin-path-during-cross.patch b/meta-networking/recipes-devtools/grpc/grpc/0001-CMakeLists.txt-Fix-grpc_cpp_plugin-path-during-cross.patch index 54e0b99a46..6cad533964 100644 --- a/meta-networking/recipes-devtools/grpc/grpc/0001-CMakeLists.txt-Fix-grpc_cpp_plugin-path-during-cross.patch +++ b/meta-networking/recipes-devtools/grpc/grpc/0001-CMakeLists.txt-Fix-grpc_cpp_plugin-path-during-cross.patch @@ -1,8 +1,7 @@ From 6d606f1101c1a172fb6d738d6f1865aa61849e68 Mon Sep 17 00:00:00 2001 From: Alexey Firago Date: Fri, 20 Oct 2017 00:04:19 +0300 -Subject: [PATCH] CMakeLists.txt: Fix grpc_cpp_plugin path during - cross-compiling or native build +Subject: [PATCH] CMakeLists.txt: Fix grpc_cpp_plugin path during cross-compiling or native build Signed-off-by: Alexey Firago Signed-off-by: Hiram Lew @@ -12,11 +11,9 @@ Signed-off-by: Jan Kaisrlik templates/CMakeLists.txt.template | 9 ++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) -diff --git a/CMakeLists.txt b/CMakeLists.txt -index a59fd81..cd90424 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -160,6 +160,13 @@ function(protobuf_generate_grpc_cpp) +@@ -193,6 +193,13 @@ function(protobuf_generate_grpc_cpp) return() endif() @@ -30,20 +27,9 @@ index a59fd81..cd90424 100644 set(_protobuf_include_path -I . -I ${_gRPC_PROTOBUF_WELLKNOWN_INCLUDE_DIR}) foreach(FIL ${ARGN}) get_filename_component(ABS_FIL ${FIL} ABSOLUTE) -@@ -177,7 +184,7 @@ function(protobuf_generate_grpc_cpp) - COMMAND ${_gRPC_PROTOBUF_PROTOC_EXECUTABLE} - ARGS --grpc_out=generate_mock_code=true:${_gRPC_PROTO_GENS_DIR} - --cpp_out=${_gRPC_PROTO_GENS_DIR} -- --plugin=protoc-gen-grpc=$ -+ --plugin=protoc-gen-grpc=${gRPC_CPP_PLUGIN} - ${_protobuf_include_path} - ${REL_FIL} - DEPENDS ${ABS_FIL} ${_gRPC_PROTOBUF_PROTOC} grpc_cpp_plugin -diff --git a/templates/CMakeLists.txt.template b/templates/CMakeLists.txt.template -index de13d02..b22bd5c 100644 --- a/templates/CMakeLists.txt.template +++ b/templates/CMakeLists.txt.template -@@ -209,6 +209,13 @@ +@@ -233,6 +233,13 @@ return() endif() @@ -57,15 +43,3 @@ index de13d02..b22bd5c 100644 set(_protobuf_include_path -I . -I <%text>${_gRPC_PROTOBUF_WELLKNOWN_INCLUDE_DIR}) foreach(FIL <%text>${ARGN}) get_filename_component(ABS_FIL <%text>${FIL} ABSOLUTE) -@@ -226,7 +233,7 @@ - COMMAND <%text>${_gRPC_PROTOBUF_PROTOC_EXECUTABLE} - ARGS --grpc_out=<%text>generate_mock_code=true:${_gRPC_PROTO_GENS_DIR} - --cpp_out=<%text>${_gRPC_PROTO_GENS_DIR} -- --plugin=protoc-gen-grpc=$ -+ --plugin=protoc-gen-grpc=${gRPC_CPP_PLUGIN} - <%text>${_protobuf_include_path} - <%text>${REL_FIL} - DEPENDS <%text>${ABS_FIL} <%text>${_gRPC_PROTOBUF_PROTOC} grpc_cpp_plugin --- -2.7.4 - diff --git a/meta-networking/recipes-devtools/grpc/grpc/0001-CMakeLists.txt-Fix-libraries-installation-for-Linux.patch b/meta-networking/recipes-devtools/grpc/grpc/0001-CMakeLists.txt-Fix-libraries-installation-for-Linux.patch index 459dc45a41..3282b5413e 100644 --- a/meta-networking/recipes-devtools/grpc/grpc/0001-CMakeLists.txt-Fix-libraries-installation-for-Linux.patch +++ b/meta-networking/recipes-devtools/grpc/grpc/0001-CMakeLists.txt-Fix-libraries-installation-for-Linux.patch @@ -7,16 +7,13 @@ Subject: [PATCH] CMakeLists.txt: Fix libraries installation for Linux Signed-off-by: Alexey Firago -%% original patch: 0001-CMakeLists.txt-Fix-libraries-installation-for-Linux.patch --- CMakeLists.txt | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) -diff --git a/CMakeLists.txt b/CMakeLists.txt -index a59fd818e3..5066f44a32 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -30,6 +30,15 @@ set(PACKAGE_TARNAME "${PACKAGE_NAME}-${PACKAGE_VERSION}") +@@ -30,6 +30,15 @@ set(PACKAGE_TARNAME "${PACKAGE_NAME}-$ set(PACKAGE_BUGREPORT "https://github.com/grpc/grpc/issues/") project(${PACKAGE_NAME} C CXX) @@ -32,7 +29,7 @@ index a59fd818e3..5066f44a32 100644 set(gRPC_INSTALL_BINDIR "bin" CACHE STRING "Installation directory for executables") set(gRPC_INSTALL_LIBDIR "lib" CACHE STRING "Installation directory for libraries") set(gRPC_INSTALL_INCLUDEDIR "include" CACHE STRING "Installation directory for headers") -@@ -702,6 +711,10 @@ if(WIN32 AND MSVC) +@@ -769,6 +778,10 @@ if(WIN32 AND MSVC) endif() endif() @@ -43,7 +40,7 @@ index a59fd818e3..5066f44a32 100644 target_include_directories(address_sorting PUBLIC $ $ -@@ -825,6 +838,10 @@ if(WIN32 AND MSVC) +@@ -903,6 +916,10 @@ if(WIN32 AND MSVC) endif() endif() @@ -54,7 +51,7 @@ index a59fd818e3..5066f44a32 100644 target_include_directories(gpr PUBLIC $ $ -@@ -1259,6 +1276,10 @@ if(WIN32 AND MSVC) +@@ -1333,6 +1350,10 @@ if(WIN32 AND MSVC) endif() endif() @@ -65,7 +62,7 @@ index a59fd818e3..5066f44a32 100644 target_include_directories(grpc PUBLIC $ $ -@@ -1633,6 +1654,10 @@ if(WIN32 AND MSVC) +@@ -1731,6 +1752,10 @@ if(WIN32 AND MSVC) endif() endif() @@ -76,7 +73,7 @@ index a59fd818e3..5066f44a32 100644 target_include_directories(grpc_cronet PUBLIC $ $ -@@ -2575,6 +2600,10 @@ if(WIN32 AND MSVC) +@@ -2744,6 +2769,10 @@ if(WIN32 AND MSVC) endif() endif() @@ -87,7 +84,7 @@ index a59fd818e3..5066f44a32 100644 target_include_directories(grpc_unsecure PUBLIC $ $ -@@ -2791,6 +2820,10 @@ if(WIN32 AND MSVC) +@@ -3083,6 +3112,10 @@ if(WIN32 AND MSVC) endif() endif() @@ -98,7 +95,7 @@ index a59fd818e3..5066f44a32 100644 target_include_directories(grpc++ PUBLIC $ $ -@@ -3357,6 +3390,10 @@ if(WIN32 AND MSVC) +@@ -3703,6 +3736,10 @@ if(WIN32 AND MSVC) endif() endif() @@ -109,7 +106,7 @@ index a59fd818e3..5066f44a32 100644 target_include_directories(grpc++_cronet PUBLIC $ $ -@@ -3630,6 +3667,11 @@ protobuf_generate_grpc_cpp( +@@ -4013,6 +4050,11 @@ protobuf_generate_grpc_cpp( src/proto/grpc/status/status.proto ) @@ -121,7 +118,7 @@ index a59fd818e3..5066f44a32 100644 target_include_directories(grpc++_error_details PUBLIC $ $ PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} -@@ -3762,6 +3804,11 @@ protobuf_generate_grpc_cpp( +@@ -4147,6 +4189,11 @@ protobuf_generate_grpc_cpp( src/proto/grpc/reflection/v1alpha/reflection.proto ) @@ -133,7 +130,7 @@ index a59fd818e3..5066f44a32 100644 target_include_directories(grpc++_reflection PUBLIC $ $ PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} -@@ -4265,6 +4312,10 @@ if(WIN32 AND MSVC) +@@ -4704,6 +4751,10 @@ if(WIN32 AND MSVC) endif() endif() @@ -144,7 +141,7 @@ index a59fd818e3..5066f44a32 100644 target_include_directories(grpc++_unsecure PUBLIC $ $ -@@ -4649,6 +4700,10 @@ if(WIN32 AND MSVC) +@@ -5124,6 +5175,10 @@ if(WIN32 AND MSVC) endif() endif() @@ -155,7 +152,19 @@ index a59fd818e3..5066f44a32 100644 target_include_directories(grpc_plugin_support PUBLIC $ $ -@@ -5184,6 +5239,10 @@ if(WIN32 AND MSVC) +@@ -5190,6 +5245,11 @@ protobuf_generate_grpc_cpp( + src/proto/grpc/channelz/channelz.proto + ) + ++if(_gRPC_PLATFORM_LINUX) ++ set_property(TARGET grpcpp_channelz PROPERTY VERSION ${CPP_VERSION}) ++ set_property(TARGET grpcpp_channelz PROPERTY SOVERSION ${CPP_VERSION_MAJOR}) ++endif() ++ + target_include_directories(grpcpp_channelz + PUBLIC $ $ + PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} +@@ -5728,6 +5788,10 @@ if(WIN32 AND MSVC) endif() endif() @@ -166,6 +175,3 @@ index a59fd818e3..5066f44a32 100644 target_include_directories(grpc_csharp_ext PUBLIC $ $ --- -2.17.1 - diff --git a/meta-networking/recipes-devtools/grpc/grpc/0001-Define-gettid-only-for-glibc-2.30.patch b/meta-networking/recipes-devtools/grpc/grpc/0001-Define-gettid-only-for-glibc-2.30.patch new file mode 100644 index 0000000000..c6afff2d23 --- /dev/null +++ b/meta-networking/recipes-devtools/grpc/grpc/0001-Define-gettid-only-for-glibc-2.30.patch @@ -0,0 +1,53 @@ +From c27261a8bc1e45ff7d7a585c79b2b871d47217e4 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 26 Jul 2019 18:56:26 -0700 +Subject: [PATCH] Define gettid() only for glibc < 2.30 + +glibc 2.30 has added this API, so let us use that when possible + +Upstream-Status: Pending +Signed-off-by: Khem Raj +--- + src/core/lib/gpr/log_linux.cc | 4 ++++ + src/core/lib/iomgr/ev_epollex_linux.cc | 7 +++++-- + 2 files changed, 9 insertions(+), 2 deletions(-) + +diff --git a/src/core/lib/gpr/log_linux.cc b/src/core/lib/gpr/log_linux.cc +index 561276f0c2..25a74864a1 100644 +--- a/src/core/lib/gpr/log_linux.cc ++++ b/src/core/lib/gpr/log_linux.cc +@@ -40,7 +40,11 @@ + #include + #include + ++#if defined(__GLIBC__) && (__GLIBC_MINOR__ >= 29) ++#include ++#else + static long gettid(void) { return syscall(__NR_gettid); } ++#endif + + void gpr_log(const char* file, int line, gpr_log_severity severity, + const char* format, ...) { +diff --git a/src/core/lib/iomgr/ev_epollex_linux.cc b/src/core/lib/iomgr/ev_epollex_linux.cc +index 08116b3ab5..d3d3025111 100644 +--- a/src/core/lib/iomgr/ev_epollex_linux.cc ++++ b/src/core/lib/iomgr/ev_epollex_linux.cc +@@ -1101,10 +1101,13 @@ static void end_worker(grpc_pollset* pollset, grpc_pollset_worker* worker, + gpr_atm_no_barrier_fetch_add(&pollset->worker_count, -1); + } + +-#ifndef NDEBUG ++#if !defined(DEBUG) ++#if defined(__GLIBC__) && (__GLIBC_MINOR__ >= 29) ++#include ++#else + static long gettid(void) { return syscall(__NR_gettid); } + #endif +- ++#endif + /* pollset->mu lock must be held by the caller before calling this. + The function pollset_work() may temporarily release the lock (pollset->po.mu) + during the course of its execution but it will always re-acquire the lock and +-- +2.22.0 + diff --git a/meta-networking/recipes-devtools/grpc/grpc_1.14.1.bb b/meta-networking/recipes-devtools/grpc/grpc_1.14.1.bb deleted file mode 100644 index 0550866e5b..0000000000 --- a/meta-networking/recipes-devtools/grpc/grpc_1.14.1.bb +++ /dev/null @@ -1,42 +0,0 @@ -DESCRIPTION = "A high performance, open source, general-purpose RPC framework. \ -Provides gRPC libraries for multiple languages written on top of shared C core library \ -(C++, Node.js, Python, Ruby, Objective-C, PHP, C#)" -HOMEPAGE = "https://github.com/grpc/grpc" -SECTION = "libs" -LICENSE = "Apache-2" -LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57" - -DEPENDS = "gflags c-ares protobuf protobuf-native protobuf-c protobuf-c-native openssl" -DEPENDS_append_class-target = " googletest grpc-native " -DEPENDS_append_class-nativesdk = " grpc-native " - -S = "${WORKDIR}/git" -SRCREV = "d8020cb6daa87f1a3bb3b0c299bc081c4a3de1e8" -BRANCH = "v1.14.x" -SRC_URI = "git://github.com/grpc/grpc.git;protocol=https;branch=${BRANCH} \ - file://0001-CMakeLists.txt-Fix-libraries-installation-for-Linux.patch \ - " -SRC_URI_append_class-target = " file://0001-CMakeLists.txt-Fix-grpc_cpp_plugin-path-during-cross.patch" -SRC_URI_append_class-nativesdk = " file://0001-CMakeLists.txt-Fix-grpc_cpp_plugin-path-during-cross.patch" - -# Fixes build with older compilers 4.8 especially on ubuntu 14.04 -CXXFLAGS_append_class-native = " -Wl,--no-as-needed" - -inherit cmake - -EXTRA_OECMAKE = " \ - -DgRPC_CARES_PROVIDER=package \ - -DgRPC_ZLIB_PROVIDER=package \ - -DgRPC_SSL_PROVIDER=package \ - -DgRPC_PROTOBUF_PROVIDER=package \ - -DgRPC_GFLAGS_PROVIDER=package \ - -DgRPC_INSTALL=ON \ - -DCMAKE_CROSSCOMPILING=ON \ - -DBUILD_SHARED_LIBS=ON \ - " - -BBCLASSEXTEND = "native nativesdk" - -SYSROOT_DIRS_BLACKLIST_append_class-target = "${libdir}/cmake/grpc" - -FILES_${PN}-dev += "${bindir}" diff --git a/meta-networking/recipes-devtools/grpc/grpc_1.22.0.bb b/meta-networking/recipes-devtools/grpc/grpc_1.22.0.bb new file mode 100644 index 0000000000..a80c574cc9 --- /dev/null +++ b/meta-networking/recipes-devtools/grpc/grpc_1.22.0.bb @@ -0,0 +1,44 @@ +DESCRIPTION = "A high performance, open source, general-purpose RPC framework. \ +Provides gRPC libraries for multiple languages written on top of shared C core library \ +(C++, Node.js, Python, Ruby, Objective-C, PHP, C#)" +HOMEPAGE = "https://github.com/grpc/grpc" +SECTION = "libs" +LICENSE = "Apache-2" +LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57" + +DEPENDS = "gflags c-ares protobuf protobuf-native protobuf-c protobuf-c-native openssl" +DEPENDS_append_class-target = " googletest grpc-native " +DEPENDS_append_class-nativesdk = " grpc-native " + +S = "${WORKDIR}/git" +SRCREV = "08fd59f039c7cf62614ab7741b3f34527af103c7" +BRANCH = "v1.22.x" +SRC_URI = "git://github.com/grpc/grpc.git;protocol=https;branch=${BRANCH} \ + file://0001-CMakeLists.txt-Fix-libraries-installation-for-Linux.patch \ + " +SRC_URI_append_class-target = " file://0001-CMakeLists.txt-Fix-grpc_cpp_plugin-path-during-cross.patch \ + file://0001-Define-gettid-only-for-glibc-2.30.patch \ + " +SRC_URI_append_class-nativesdk = " file://0001-CMakeLists.txt-Fix-grpc_cpp_plugin-path-during-cross.patch" + +# Fixes build with older compilers 4.8 especially on ubuntu 14.04 +CXXFLAGS_append_class-native = " -Wl,--no-as-needed" + +inherit cmake + +EXTRA_OECMAKE = " \ + -DgRPC_CARES_PROVIDER=package \ + -DgRPC_ZLIB_PROVIDER=package \ + -DgRPC_SSL_PROVIDER=package \ + -DgRPC_PROTOBUF_PROVIDER=package \ + -DgRPC_GFLAGS_PROVIDER=package \ + -DgRPC_INSTALL=ON \ + -DCMAKE_CROSSCOMPILING=ON \ + -DBUILD_SHARED_LIBS=ON \ + " + +BBCLASSEXTEND = "native nativesdk" + +SYSROOT_DIRS_BLACKLIST_append_class-target = "${libdir}/cmake/grpc" + +FILES_${PN}-dev += "${bindir}" -- cgit v1.2.3-54-g00ecf