1a3de362ae
Fix the following build failure with uclibc-ng and grpc raised on arm and ppc: /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' Strangely enough it seems there is only one autobuilder failure despite the fact that libabseil-cpp is unconditionally using getauxval since its addition in commit93568440ed
: https://github.com/abseil/abseil-cpp/blob/20200225/absl/random/internal/randen_detect.cc Perhaps this build failure is an unexpected side effect of commit8251d8c255
Fixes: - http://autobuild.buildroot.org/results/775f3ca3dedebff29e212b29dfa896b7613b7a02 Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
63 lines
2.5 KiB
Diff
63 lines
2.5 KiB
Diff
From b9ad9bbfed92199a1a58504306d026cd2597539e Mon Sep 17 00:00:00 2001
|
|
From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
|
|
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 <fontaine.fabrice@gmail.com>
|
|
[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 <unistd.h>
|
|
|
|
-#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
|