diff options
-rw-r--r-- | meta-oe/recipes-devtools/grpc/grpc/0001-Revert-Changed-GRPCPP_ABSEIL_SYNC-to-GPR_ABSEIL_SYNC.patch | 62 | ||||
-rw-r--r-- | meta-oe/recipes-devtools/grpc/grpc/0001-cmake-add-separate-export-for-plugin-targets.patch | 93 | ||||
-rw-r--r-- | meta-oe/recipes-devtools/grpc/grpc/0001-fix-CVE-2023-32732.patch | 81 | ||||
-rw-r--r-- | meta-oe/recipes-devtools/grpc/grpc_1.56.2.bb (renamed from meta-oe/recipes-devtools/grpc/grpc_1.50.1.bb) | 7 |
4 files changed, 2 insertions, 241 deletions
diff --git a/meta-oe/recipes-devtools/grpc/grpc/0001-Revert-Changed-GRPCPP_ABSEIL_SYNC-to-GPR_ABSEIL_SYNC.patch b/meta-oe/recipes-devtools/grpc/grpc/0001-Revert-Changed-GRPCPP_ABSEIL_SYNC-to-GPR_ABSEIL_SYNC.patch deleted file mode 100644 index b245ad8657..0000000000 --- a/meta-oe/recipes-devtools/grpc/grpc/0001-Revert-Changed-GRPCPP_ABSEIL_SYNC-to-GPR_ABSEIL_SYNC.patch +++ /dev/null | |||
@@ -1,62 +0,0 @@ | |||
1 | From dc593958e556dd496b774f35c5992285510d6859 Mon Sep 17 00:00:00 2001 | ||
2 | From: Martin Jansa <Martin.Jansa@gmail.com> | ||
3 | Date: Tue, 19 Oct 2021 17:09:55 +0200 | ||
4 | Subject: [PATCH] Revert "Changed GRPCPP_ABSEIL_SYNC to GPR_ABSEIL_SYNC | ||
5 | (#25681)" | ||
6 | |||
7 | This reverts commit 931f91b745cd5b2864a0d1787815871d0bd844ae. | ||
8 | |||
9 | Fixes sysdig from meta-oe and other recipes (like com.webos.service.tts | ||
10 | libgoogleassistant from meta-webosose) failing with: | ||
11 | |||
12 | | FAILED: userspace/sysdig/sysdig | ||
13 | | : && /OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/sysdig/0.27.1-r0/recipe-sysroot-native/usr/bin/x86_64-oe-linux/x86_64-oe-linux-g++ -m64 -march=core2 -mtune=core2 -msse3 -mfpmath=sse -fstack-protector-strong -O2 -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-sec | ||
14 | urity --sysroot=/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/sysdig/0.27.1-r0/recipe-sysroot -O2 -pipe -g -feliminate-unused-debug-types -fmacro-prefix-map=/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/sysdig/0.27.1-r0=/usr/src/debug/sysdig/0.27.1-r0 -f | ||
15 | debug-prefix-map=/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/sysdig/0.27.1-r0=/usr/src/debug/sysdig/0.27.1-r0 -fdebug-prefix-map=/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/sysdig/0.27.1-r0/recipe-sysroot= -fdebug-prefix-map=/OE/bu | ||
16 | ild/oe-core/tmp-glibc/work/core2-64-oe-linux/sysdig/0.27.1-r0/recipe-sysroot-native= -fvisibility-inlines-hidden -m64 -march=core2 -mtune=core2 -msse3 -mfpmath=sse -fstack-protector-strong -O2 -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security --sysroot=/OE/build | ||
17 | /oe-core/tmp-glibc/work/core2-64-oe-linux/sysdig/0.27.1-r0/recipe-sysroot -Wall -ggdb -std=c++0x -O3 -fno-strict-aliasing -DNDEBUG -m64 -march=core2 -mtune=core2 -msse3 -mfpmath=sse -fstack-protector-strong -O2 -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security | ||
18 | --sysroot=/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/sysdig/0.27.1-r0/recipe-sysroot -O2 -pipe -g -feliminate-unused-debug-types -fmacro-prefix-map=/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/sysdig/0.27.1-r0=/usr/src/debug/sysdig/0.27.1-r0 -fdebug-p | ||
19 | refix-map=/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/sysdig/0.27.1-r0=/usr/src/debug/sysdig/0.27.1-r0 -fdebug-prefix-map=/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/sysdig/0.27.1-r0/recipe-sysroot= -fdebug-prefix-map=/OE/build/oe- | ||
20 | core/tmp-glibc/work/core2-64-oe-linux/sysdig/0.27.1-r0/recipe-sysroot-native= -fvisibility-inlines-hidden -m64 -march=core2 -mtune=core2 -msse3 -mfpmath=sse -fstack-protector-strong -O2 -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security --sysroot=/OE/build/oe-cor | ||
21 | e/tmp-glibc/work/core2-64-oe-linux/sysdig/0.27.1-r0/recipe-sysroot -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -fmacro-prefix-map=/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/sysdig/0.27.1-r0=/usr/src/debug/sysdig/0.27.1-r0 -fdebug-prefix-map=/OE/build/oe-cor | ||
22 | e/tmp-glibc/work/core2-64-oe-linux/sysdig/0.27.1-r0=/usr/src/debug/sysdig/0.27.1-r0 -fdebug-prefix-map=/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/sysdig/0.27.1-r0/recipe-sysroot= -fdebug-prefix-map=/OE/build/oe-core/tmp-glibc/work/core2- | ||
23 | 64-oe-linux/sysdig/0.27.1-r0/recipe-sysroot-native= -Wl,-z,relro,-z,now -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -fmacro-prefix-map=/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/sysdig/0.27.1-r0=/usr/src/debug/sysdig/0.27.1-r0 -fdebug-prefix-map=/OE/build/ | ||
24 | oe-core/tmp-glibc/work/core2-64-oe-linux/sysdig/0.27.1-r0=/usr/src/debug/sysdig/0.27.1-r0 -fdebug-prefix-map=/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/sysdig/0.27.1-r0/recipe-sysroot= -fdebug-prefix-map=/OE/build/oe-core/tmp-glibc/work/ | ||
25 | core2-64-oe-linux/sysdig/0.27.1-r0/recipe-sysroot-native= -Wl,-z,relro,-z,now -rdynamic userspace/sysdig/CMakeFiles/sysdig.dir/fields_info.cpp.o userspace/sysdig/CMakeFiles/sysdig.dir/sysdig.cpp.o -o userspace/sysdig/sysdig userspace/libsinsp/libsinsp.a userspace/libscap/libscap.a | ||
26 | -lelf -lz -lcurl -ljsoncpp -ltbb -lcares -lgrpc++_unsecure -lgrpc_unsecure -lprotobuf -lcares -lgrpc++_unsecure -lgrpc_unsecure -lprotobuf -ljq -lb64 -lrt -lanl -lssl -lcrypto -lluajit-5.1 -ldl -lpthread && : | ||
27 | | /usr/include/grpcpp/impl/codegen/completion_queue.h:121: error: undefined reference to 'absl::lts_20210324::Mutex::~Mutex()' | ||
28 | | /usr/include/grpcpp/impl/codegen/completion_queue.h:121: error: undefined reference to 'absl::lts_20210324::Mutex::~Mutex()' | ||
29 | | /usr/include/grpcpp/impl/codegen/completion_queue.h:121: error: undefined reference to 'absl::lts_20210324::Mutex::~Mutex()' | ||
30 | | /usr/include/grpcpp/impl/codegen/completion_queue.h:259: error: undefined reference to 'absl::lts_20210324::Mutex::~Mutex()' | ||
31 | | collect2: error: ld returned 1 exit status | ||
32 | |||
33 | Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> | ||
34 | |||
35 | --- | ||
36 | Upstream-Status: Pending | ||
37 | |||
38 | include/grpcpp/impl/codegen/sync.h | 4 ++-- | ||
39 | 1 file changed, 2 insertions(+), 2 deletions(-) | ||
40 | |||
41 | diff --git a/include/grpcpp/impl/codegen/sync.h b/include/grpcpp/impl/codegen/sync.h | ||
42 | index 4cb8133c7c..3d10d9a3a0 100644 | ||
43 | --- a/include/grpcpp/impl/codegen/sync.h | ||
44 | +++ b/include/grpcpp/impl/codegen/sync.h | ||
45 | @@ -47,7 +47,7 @@ | ||
46 | namespace grpc { | ||
47 | namespace internal { | ||
48 | |||
49 | -#ifdef GPR_ABSEIL_SYNC | ||
50 | +#ifdef GRPCPP_ABSEIL_SYNC | ||
51 | |||
52 | using Mutex = absl::Mutex; | ||
53 | using MutexLock = absl::MutexLock; | ||
54 | @@ -142,7 +142,7 @@ class CondVar { | ||
55 | gpr_cv cv_; | ||
56 | }; | ||
57 | |||
58 | -#endif // GPR_ABSEIL_SYNC | ||
59 | +#endif // GRPCPP_ABSEIL_SYNC | ||
60 | |||
61 | template <typename Predicate> | ||
62 | GRPC_DEPRECATED("incompatible with thread safety analysis") | ||
diff --git a/meta-oe/recipes-devtools/grpc/grpc/0001-cmake-add-separate-export-for-plugin-targets.patch b/meta-oe/recipes-devtools/grpc/grpc/0001-cmake-add-separate-export-for-plugin-targets.patch deleted file mode 100644 index 679bd38829..0000000000 --- a/meta-oe/recipes-devtools/grpc/grpc/0001-cmake-add-separate-export-for-plugin-targets.patch +++ /dev/null | |||
@@ -1,93 +0,0 @@ | |||
1 | From 3150cb043363e05588062dd392b940be25594713 Mon Sep 17 00:00:00 2001 | ||
2 | From: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com> | ||
3 | Date: Tue, 18 Feb 2020 14:17:07 +0100 | ||
4 | Subject: [PATCH] cmake: add separate export for plugin targets | ||
5 | |||
6 | Upstream-Status: Submitted [https://github.com/grpc/grpc/pull/29328] | ||
7 | |||
8 | |||
9 | --- | ||
10 | CMakeLists.txt | 18 +++++++++++------- | ||
11 | 1 file changed, 11 insertions(+), 7 deletions(-) | ||
12 | |||
13 | diff --git a/CMakeLists.txt b/CMakeLists.txt | ||
14 | index efdaf8936d..6608b1b00c 100644 | ||
15 | --- a/CMakeLists.txt | ||
16 | +++ b/CMakeLists.txt | ||
17 | @@ -10935,7 +10935,7 @@ target_link_libraries(grpc_cpp_plugin | ||
18 | |||
19 | |||
20 | if(gRPC_INSTALL) | ||
21 | - install(TARGETS grpc_cpp_plugin EXPORT gRPCTargets | ||
22 | + install(TARGETS grpc_cpp_plugin EXPORT gRPCPluginTargets | ||
23 | RUNTIME DESTINATION ${gRPC_INSTALL_BINDIR} | ||
24 | BUNDLE DESTINATION ${gRPC_INSTALL_BINDIR} | ||
25 | LIBRARY DESTINATION ${gRPC_INSTALL_LIBDIR} | ||
26 | @@ -10975,7 +10975,7 @@ target_link_libraries(grpc_csharp_plugin | ||
27 | |||
28 | |||
29 | if(gRPC_INSTALL) | ||
30 | - install(TARGETS grpc_csharp_plugin EXPORT gRPCTargets | ||
31 | + install(TARGETS grpc_csharp_plugin EXPORT gRPCPluginTargets | ||
32 | RUNTIME DESTINATION ${gRPC_INSTALL_BINDIR} | ||
33 | BUNDLE DESTINATION ${gRPC_INSTALL_BINDIR} | ||
34 | LIBRARY DESTINATION ${gRPC_INSTALL_LIBDIR} | ||
35 | @@ -11015,7 +11015,7 @@ target_link_libraries(grpc_node_plugin | ||
36 | |||
37 | |||
38 | if(gRPC_INSTALL) | ||
39 | - install(TARGETS grpc_node_plugin EXPORT gRPCTargets | ||
40 | + install(TARGETS grpc_node_plugin EXPORT gRPCPluginTargets | ||
41 | RUNTIME DESTINATION ${gRPC_INSTALL_BINDIR} | ||
42 | BUNDLE DESTINATION ${gRPC_INSTALL_BINDIR} | ||
43 | LIBRARY DESTINATION ${gRPC_INSTALL_LIBDIR} | ||
44 | @@ -11055,7 +11055,7 @@ target_link_libraries(grpc_objective_c_plugin | ||
45 | |||
46 | |||
47 | if(gRPC_INSTALL) | ||
48 | - install(TARGETS grpc_objective_c_plugin EXPORT gRPCTargets | ||
49 | + install(TARGETS grpc_objective_c_plugin EXPORT gRPCPluginTargets | ||
50 | RUNTIME DESTINATION ${gRPC_INSTALL_BINDIR} | ||
51 | BUNDLE DESTINATION ${gRPC_INSTALL_BINDIR} | ||
52 | LIBRARY DESTINATION ${gRPC_INSTALL_LIBDIR} | ||
53 | @@ -11095,7 +11095,7 @@ target_link_libraries(grpc_php_plugin | ||
54 | |||
55 | |||
56 | if(gRPC_INSTALL) | ||
57 | - install(TARGETS grpc_php_plugin EXPORT gRPCTargets | ||
58 | + install(TARGETS grpc_php_plugin EXPORT gRPCPluginTargets | ||
59 | RUNTIME DESTINATION ${gRPC_INSTALL_BINDIR} | ||
60 | BUNDLE DESTINATION ${gRPC_INSTALL_BINDIR} | ||
61 | LIBRARY DESTINATION ${gRPC_INSTALL_LIBDIR} | ||
62 | @@ -11135,7 +11135,7 @@ target_link_libraries(grpc_python_plugin | ||
63 | |||
64 | |||
65 | if(gRPC_INSTALL) | ||
66 | - install(TARGETS grpc_python_plugin EXPORT gRPCTargets | ||
67 | + install(TARGETS grpc_python_plugin EXPORT gRPCPluginTargets | ||
68 | RUNTIME DESTINATION ${gRPC_INSTALL_BINDIR} | ||
69 | BUNDLE DESTINATION ${gRPC_INSTALL_BINDIR} | ||
70 | LIBRARY DESTINATION ${gRPC_INSTALL_LIBDIR} | ||
71 | @@ -11175,7 +11175,7 @@ target_link_libraries(grpc_ruby_plugin | ||
72 | |||
73 | |||
74 | if(gRPC_INSTALL) | ||
75 | - install(TARGETS grpc_ruby_plugin EXPORT gRPCTargets | ||
76 | + install(TARGETS grpc_ruby_plugin EXPORT gRPCPluginTargets | ||
77 | RUNTIME DESTINATION ${gRPC_INSTALL_BINDIR} | ||
78 | BUNDLE DESTINATION ${gRPC_INSTALL_BINDIR} | ||
79 | LIBRARY DESTINATION ${gRPC_INSTALL_LIBDIR} | ||
80 | @@ -17349,6 +17349,10 @@ if(gRPC_INSTALL) | ||
81 | DESTINATION ${gRPC_INSTALL_CMAKEDIR} | ||
82 | NAMESPACE gRPC:: | ||
83 | ) | ||
84 | + install(EXPORT gRPCPluginTargets | ||
85 | + DESTINATION ${gRPC_INSTALL_CMAKEDIR} | ||
86 | + NAMESPACE gRPC:: | ||
87 | + ) | ||
88 | endif() | ||
89 | |||
90 | include(CMakePackageConfigHelpers) | ||
91 | -- | ||
92 | 2.30.2 | ||
93 | |||
diff --git a/meta-oe/recipes-devtools/grpc/grpc/0001-fix-CVE-2023-32732.patch b/meta-oe/recipes-devtools/grpc/grpc/0001-fix-CVE-2023-32732.patch deleted file mode 100644 index ab46897b12..0000000000 --- a/meta-oe/recipes-devtools/grpc/grpc/0001-fix-CVE-2023-32732.patch +++ /dev/null | |||
@@ -1,81 +0,0 @@ | |||
1 | From d39489045b5aa73e27713e3cbacb8832c1140ec8 Mon Sep 17 00:00:00 2001 | ||
2 | From: Chen Qi <Qi.Chen@windriver.com> | ||
3 | Date: Wed, 9 Aug 2023 13:33:45 +0800 | ||
4 | Subject: [PATCH] fix CVE-2023-32732 | ||
5 | |||
6 | CVE: CVE-2023-32732 | ||
7 | |||
8 | Upstream-Status: Backport [https://github.com/grpc/grpc/pull/32309/commits/6a7850ef4f042ac26559854266dddc79bfbc75b2] | ||
9 | The original patch is adjusted to fit the current 1.50.1 version. | ||
10 | |||
11 | Signed-off-by: Chen Qi <Qi.Chen@windriver.com> | ||
12 | --- | ||
13 | .../ext/transport/chttp2/transport/hpack_parser.cc | 10 +++++++--- | ||
14 | src/core/ext/transport/chttp2/transport/internal.h | 2 -- | ||
15 | src/core/ext/transport/chttp2/transport/parsing.cc | 6 ++---- | ||
16 | 3 files changed, 9 insertions(+), 9 deletions(-) | ||
17 | |||
18 | diff --git a/src/core/ext/transport/chttp2/transport/hpack_parser.cc b/src/core/ext/transport/chttp2/transport/hpack_parser.cc | ||
19 | index f2e49022dc3..cd459d15238 100644 | ||
20 | --- a/src/core/ext/transport/chttp2/transport/hpack_parser.cc | ||
21 | +++ b/src/core/ext/transport/chttp2/transport/hpack_parser.cc | ||
22 | @@ -1211,12 +1211,16 @@ class HPackParser::Parser { | ||
23 | "). GRPC_ARG_MAX_METADATA_SIZE can be set to increase this limit.", | ||
24 | *frame_length_, metadata_size_limit_); | ||
25 | if (metadata_buffer_ != nullptr) metadata_buffer_->Clear(); | ||
26 | + // StreamId is used as a signal to skip this stream but keep the connection | ||
27 | + // alive | ||
28 | return input_->MaybeSetErrorAndReturn( | ||
29 | [] { | ||
30 | return grpc_error_set_int( | ||
31 | - GRPC_ERROR_CREATE_FROM_STATIC_STRING( | ||
32 | - "received initial metadata size exceeds limit"), | ||
33 | - GRPC_ERROR_INT_GRPC_STATUS, GRPC_STATUS_RESOURCE_EXHAUSTED); | ||
34 | + grpc_error_set_int( | ||
35 | + GRPC_ERROR_CREATE_FROM_STATIC_STRING( | ||
36 | + "received initial metadata size exceeds limit"), | ||
37 | + GRPC_ERROR_INT_GRPC_STATUS, GRPC_STATUS_RESOURCE_EXHAUSTED), | ||
38 | + GRPC_ERROR_INT_STREAM_ID, 0); | ||
39 | }, | ||
40 | false); | ||
41 | } | ||
42 | diff --git a/src/core/ext/transport/chttp2/transport/internal.h b/src/core/ext/transport/chttp2/transport/internal.h | ||
43 | index 4a2f4261d83..f8b544d9583 100644 | ||
44 | --- a/src/core/ext/transport/chttp2/transport/internal.h | ||
45 | +++ b/src/core/ext/transport/chttp2/transport/internal.h | ||
46 | @@ -542,8 +542,6 @@ struct grpc_chttp2_stream { | ||
47 | |||
48 | grpc_core::Timestamp deadline = grpc_core::Timestamp::InfFuture(); | ||
49 | |||
50 | - /** saw some stream level error */ | ||
51 | - grpc_error_handle forced_close_error = GRPC_ERROR_NONE; | ||
52 | /** how many header frames have we received? */ | ||
53 | uint8_t header_frames_received = 0; | ||
54 | /** number of bytes received - reset at end of parse thread execution */ | ||
55 | diff --git a/src/core/ext/transport/chttp2/transport/parsing.cc b/src/core/ext/transport/chttp2/transport/parsing.cc | ||
56 | index 980f13543f6..afe6da190b6 100644 | ||
57 | --- a/src/core/ext/transport/chttp2/transport/parsing.cc | ||
58 | +++ b/src/core/ext/transport/chttp2/transport/parsing.cc | ||
59 | @@ -22,6 +22,7 @@ | ||
60 | #include <string.h> | ||
61 | |||
62 | #include <string> | ||
63 | +#include <utility> | ||
64 | |||
65 | #include "absl/base/attributes.h" | ||
66 | #include "absl/status/status.h" | ||
67 | @@ -719,10 +720,7 @@ static grpc_error_handle parse_frame_slice(grpc_chttp2_transport* t, | ||
68 | } | ||
69 | grpc_chttp2_parsing_become_skip_parser(t); | ||
70 | if (s) { | ||
71 | - s->forced_close_error = err; | ||
72 | - grpc_chttp2_add_rst_stream_to_next_write(t, t->incoming_stream_id, | ||
73 | - GRPC_HTTP2_PROTOCOL_ERROR, | ||
74 | - &s->stats.outgoing); | ||
75 | + grpc_chttp2_cancel_stream(t, s, std::exchange(err, absl::OkStatus())); | ||
76 | } else { | ||
77 | GRPC_ERROR_UNREF(err); | ||
78 | } | ||
79 | -- | ||
80 | 2.34.1 | ||
81 | |||
diff --git a/meta-oe/recipes-devtools/grpc/grpc_1.50.1.bb b/meta-oe/recipes-devtools/grpc/grpc_1.56.2.bb index 45bfcb8570..c4dd6b9857 100644 --- a/meta-oe/recipes-devtools/grpc/grpc_1.50.1.bb +++ b/meta-oe/recipes-devtools/grpc/grpc_1.56.2.bb | |||
@@ -20,13 +20,10 @@ RDEPENDS:${PN}-dev:append:class-native = " ${PN}-compiler" | |||
20 | # RDEPENDS:${PN}-dev += "${PN}-compiler" | 20 | # RDEPENDS:${PN}-dev += "${PN}-compiler" |
21 | 21 | ||
22 | S = "${WORKDIR}/git" | 22 | S = "${WORKDIR}/git" |
23 | SRCREV_grpc = "90ccf24d22b6fc909a1021ebd89fd8c838467d26" | 23 | SRCREV_grpc = "c0d1c393d9365664d47df41746e992ae97b651ef" |
24 | BRANCH = "v1.50.x" | 24 | BRANCH = "v1.56.x" |
25 | SRC_URI = "gitsm://github.com/grpc/grpc.git;protocol=https;name=grpc;branch=${BRANCH} \ | 25 | SRC_URI = "gitsm://github.com/grpc/grpc.git;protocol=https;name=grpc;branch=${BRANCH} \ |
26 | file://0001-Revert-Changed-GRPCPP_ABSEIL_SYNC-to-GPR_ABSEIL_SYNC.patch \ | ||
27 | file://0001-cmake-add-separate-export-for-plugin-targets.patch \ | ||
28 | file://0001-cmake-Link-with-libatomic-on-rv32-rv64.patch \ | 26 | file://0001-cmake-Link-with-libatomic-on-rv32-rv64.patch \ |
29 | file://0001-fix-CVE-2023-32732.patch \ | ||
30 | " | 27 | " |
31 | # Fixes build with older compilers 4.8 especially on ubuntu 14.04 | 28 | # Fixes build with older compilers 4.8 especially on ubuntu 14.04 |
32 | CXXFLAGS:append:class-native = " -Wl,--no-as-needed" | 29 | CXXFLAGS:append:class-native = " -Wl,--no-as-needed" |