From 8dc3cdccb633a8570863604f5caadb84db029901 Mon Sep 17 00:00:00 2001 From: Peter Kjellerstedt Date: Fri, 13 Dec 2024 18:31:17 +0100 Subject: abseil-cpp: Do not leak -Wnon-virtual-dtor into the .pc files The -Wnon-virtual-dtor flag was unintentionally added to the .pc files, which causes problems when abseil is used by C code: cc1: error: command-line option '-Wnon-virtual-dtor' is valid for C++/ObjC++ but not for C [-Werror] Signed-off-by: Peter Kjellerstedt Signed-off-by: Armin Kuster --- ...-Wnon-virtual-dtor-in-the-flags-are-neede.patch | 30 ++++++++++++++++++++++ .../abseil-cpp/abseil-cpp_20240722.0.bb | 1 + 2 files changed, 31 insertions(+) create mode 100644 meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0005-Don-t-match-Wnon-virtual-dtor-in-the-flags-are-neede.patch diff --git a/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0005-Don-t-match-Wnon-virtual-dtor-in-the-flags-are-neede.patch b/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0005-Don-t-match-Wnon-virtual-dtor-in-the-flags-are-neede.patch new file mode 100644 index 0000000000..9a4fc0b43f --- /dev/null +++ b/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0005-Don-t-match-Wnon-virtual-dtor-in-the-flags-are-neede.patch @@ -0,0 +1,30 @@ +From 9cb5e5d15c142e5cc43a2c1db87c8e4e5b6d38a5 Mon Sep 17 00:00:00 2001 +From: Derek Mauro +Date: Mon, 5 Aug 2024 07:35:05 -0700 +Subject: [PATCH] Don't match -Wnon-virtual-dtor in the "flags are needed to + suppress warnings in headers". It should fall through to the "don't impose + our warnings on others" case. Do this by matching on "-Wno-*" instead of + "-Wno*". + +Fixes #1737 + +PiperOrigin-RevId: 659548798 +Change-Id: I49d7ba7ddcd7be30f946fca90ba9be467181e854 +Upstream-Status: Backport [https://github.com/abseil/abseil-cpp/commit/9cb5e5d15c142e5cc43a2c1db87c8e4e5b6d38a5] +--- + CMake/AbseilHelpers.cmake | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/CMake/AbseilHelpers.cmake b/CMake/AbseilHelpers.cmake +index b177e590..3c4c92fe 100644 +--- a/CMake/AbseilHelpers.cmake ++++ b/CMake/AbseilHelpers.cmake +@@ -195,7 +195,7 @@ function(absl_cc_library) + # specified platform. Filter both of them out before the successor + # reaches the "^-m" filter. + set(skip_next_cflag ON) +- elseif(${cflag} MATCHES "^(-Wno|/wd)") ++ elseif(${cflag} MATCHES "^(-Wno-|/wd)") + # These flags are needed to suppress warnings that might fire in our headers. + set(PC_CFLAGS "${PC_CFLAGS} ${cflag}") + elseif(${cflag} MATCHES "^(-W|/w[1234eo])") diff --git a/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp_20240722.0.bb b/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp_20240722.0.bb index f44a5d9082..d9634b2b04 100644 --- a/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp_20240722.0.bb +++ b/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp_20240722.0.bb @@ -14,6 +14,7 @@ SRC_URI = "git://github.com/abseil/abseil-cpp;branch=${BRANCH};protocol=https \ file://0002-Remove-maes-option-from-cross-compilation.patch \ file://0003-Remove-neon-option-from-cross-compilation.patch \ file://0004-abseil-ppc-fixes.patch \ + file://0005-Don-t-match-Wnon-virtual-dtor-in-the-flags-are-neede.patch \ " S = "${WORKDIR}/git" -- cgit v1.2.3-54-g00ecf