diff --git a/package/libabseil-cpp/0002-fix-build-with-uclibc-ng.patch b/package/libabseil-cpp/0002-fix-build-with-uclibc-ng.patch new file mode 100644 index 0000000000..0797d8e51b --- /dev/null +++ b/package/libabseil-cpp/0002-fix-build-with-uclibc-ng.patch @@ -0,0 +1,62 @@ +From b9ad9bbfed92199a1a58504306d026cd2597539e Mon Sep 17 00:00:00 2001 +From: Fabrice Fontaine +Date: Wed, 30 Mar 2022 21:56:20 +0200 +Subject: [PATCH] Fix build with uclibc-ng (#1145) + +uclibc-ng doesn't provide getauxval which results in the following build +failure on arm or ppc with any user of abseil-cpp such as grpc: + +/home/buildroot/autobuild/instance-0/output-1/host/opt/ext-toolchain/bin/../lib/gcc/arm-buildroot-linux-uclibcgnueabi/10.3.0/../../../../arm-buildroot-linux-uclibcgnueabi/bin/ld: /home/buildroot/autobuild/instance-0/output-1/host/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib/libabsl_random_internal_randen_hwaes.so.2111.0.0: undefined reference to `getauxval' + +To fix this build failure, check that __UCLIBC__ is not defined before +using getauxval (as Babel is not able to check function availability) + +Fixes: + - http://autobuild.buildroot.org/results/775f3ca3dedebff29e212b29dfa896b7613b7a02 + +Signed-off-by: Fabrice Fontaine +[Retrieved from: +https://github.com/abseil/abseil-cpp/commit/b9ad9bbfed92199a1a58504306d026cd2597539e] +--- + absl/debugging/internal/vdso_support.cc | 2 +- + absl/random/internal/randen_detect.cc | 7 ++++++- + 2 files changed, 7 insertions(+), 2 deletions(-) + +diff --git a/absl/debugging/internal/vdso_support.cc b/absl/debugging/internal/vdso_support.cc +index c655cf452..e63ac4a3b 100644 +--- a/absl/debugging/internal/vdso_support.cc ++++ b/absl/debugging/internal/vdso_support.cc +@@ -33,7 +33,7 @@ + #endif + #include + +-#if defined(__GLIBC__) && \ ++#if !defined(__UCLIBC__) && defined(__GLIBC__) && \ + (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 16)) + #define ABSL_HAVE_GETAUXVAL + #endif +diff --git a/absl/random/internal/randen_detect.cc b/absl/random/internal/randen_detect.cc +index 9bb58fc68..6dababa35 100644 +--- a/absl/random/internal/randen_detect.cc ++++ b/absl/random/internal/randen_detect.cc +@@ -24,6 +24,11 @@ + + #include "absl/random/internal/platform.h" + ++#if !defined(__UCLIBC__) && defined(__GLIBC__) && \ ++ (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 16)) ++#define ABSL_HAVE_GETAUXVAL ++#endif ++ + #if defined(ABSL_ARCH_X86_64) + #define ABSL_INTERNAL_USE_X86_CPUID + #elif defined(ABSL_ARCH_PPC) || defined(ABSL_ARCH_ARM) || \ +@@ -31,7 +36,7 @@ + #if defined(__ANDROID__) + #define ABSL_INTERNAL_USE_ANDROID_GETAUXVAL + #define ABSL_INTERNAL_USE_GETAUXVAL +-#elif defined(__linux__) ++#elif defined(__linux__) && defined(ABSL_HAVE_GETAUXVAL) + #define ABSL_INTERNAL_USE_LINUX_GETAUXVAL + #define ABSL_INTERNAL_USE_GETAUXVAL + #endif