1666b661c6
Fix the following build failure with uclibc on arm architectures (and similar on powerpc): /home/buildroot/autobuild/instance-2/output-1/build/zlib-ng-2.0.6/arch/arm/armfeature.c:4:12: fatal error: sys/auxv.h: No such file or directory 4 | # include <sys/auxv.h> | ^~~~~~~~~~~~ compilation terminated. Fixes: http://autobuild.buildroot.net/results/1ac782825e897981d932b405ca60cd2ec4b3b8cb/ Signed-off-by: Ben Hutchings <ben.hutchings@mind.be> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
91 lines
2.9 KiB
Diff
91 lines
2.9 KiB
Diff
From e1baa6b439c06f3d0e6be3e381cc746ffb55aee1 Mon Sep 17 00:00:00 2001
|
|
From: Mika Lindqvist <postmaster@raasu.org>
|
|
Date: Wed, 13 Apr 2022 01:22:29 +0300
|
|
Subject: [PATCH] Check that sys/auxv.h exists at configure time and add
|
|
preprocessor define for it. * Protect including sys/auxv.h in all relevant
|
|
files with the new preprocessor define * Test for both existence of both
|
|
sys/auxv.h and getauxval() with both cmake and configure
|
|
|
|
[Ben Hutchings: Backport to 2.0.6:
|
|
- Drop the s390 changes
|
|
- Change some filenames]
|
|
|
|
Backported from: e1baa6b439c06f3d0e6be3e381cc746ffb55aee1
|
|
Signed-off-by: Ben Hutchings <ben.hutchings@mind.be>
|
|
---
|
|
CMakeLists.txt | 4 ++++
|
|
arch/arm/armfeature.c | 2 +-
|
|
arch/power/power.c | 5 ++++-
|
|
configure | 13 +++++++++++++
|
|
4 files changed, 22 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
|
index 0dd196130..e4e4b7332 100644
|
|
--- a/CMakeLists.txt
|
|
+++ b/CMakeLists.txt
|
|
@@ -338,6 +338,10 @@ endif()
|
|
#
|
|
# Check for standard/system includes
|
|
#
|
|
+check_include_file(sys/auxv.h HAVE_SYS_AUXV_H)
|
|
+if(HAVE_SYS_AUXV_H)
|
|
+ add_definitions(-DHAVE_SYS_AUXV_H)
|
|
+endif()
|
|
check_include_file(sys/sdt.h HAVE_SYS_SDT_H)
|
|
if(HAVE_SYS_SDT_H)
|
|
add_definitions(-DHAVE_SYS_SDT_H)
|
|
diff --git a/arch/arm/arm_features.c b/arch/arm/arm_features.c
|
|
index 195c94992..f6b67687f 100644
|
|
--- a/arch/arm/armfeature.c
|
|
+++ b/arch/arm/armfeature.c
|
|
@@ -1,6 +1,6 @@
|
|
#include "../../zutil.h"
|
|
|
|
-#if defined(__linux__)
|
|
+#if defined(__linux__) && defined(HAVE_SYS_AUXV_H)
|
|
# include <sys/auxv.h>
|
|
# ifdef ARM_ASM_HWCAP
|
|
# include <asm/hwcap.h>
|
|
diff --git a/arch/power/power_features.c b/arch/power/power_features.c
|
|
index 9186b40d8..65599d9a7 100644
|
|
--- a/arch/power/power.c
|
|
+++ b/arch/power/power.c
|
|
@@ -1,9 +1,12 @@
|
|
/* POWER feature check
|
|
* Copyright (C) 2020 Matheus Castanho <msc@linux.ibm.com>, IBM
|
|
+ * Copyright (C) 2021-2022 Mika T. Lindqvist <postmaster@raasu.org>
|
|
* For conditions of distribution and use, see copyright notice in zlib.h
|
|
*/
|
|
|
|
-#include <sys/auxv.h>
|
|
+#ifdef HAVE_SYS_AUXV_H
|
|
+# include <sys/auxv.h>
|
|
+#endif
|
|
#include "../../zutil.h"
|
|
|
|
Z_INTERNAL int power_cpu_has_arch_2_07;
|
|
diff --git a/configure b/configure
|
|
index aed1909cc..a357e1c8a 100755
|
|
--- a/configure
|
|
+++ b/configure
|
|
@@ -776,6 +776,19 @@ else
|
|
echo "Checking for strerror... No." | tee -a configure.log
|
|
fi
|
|
|
|
+# check for getauxval() for architecture feature detection at run-time
|
|
+cat > $test.c <<EOF
|
|
+#include <sys/auxv.h>
|
|
+int main() { return getauxval(0); }
|
|
+EOF
|
|
+if try $CC $CFLAGS -o $test $test.c $LDSHAREDLIBC; then
|
|
+ echo "Checking for getauxval() in sys/auxv.h... Yes." | tee -a configure.log
|
|
+ CFLAGS="${CFLAGS} -DHAVE_SYS_AUXV_H"
|
|
+ SFLAGS="${SFLAGS} -DHAVE_SYS_AUXV_H"
|
|
+else
|
|
+ echo "Checking for getauxval() in sys/auxv.h... No." | tee -a configure.log
|
|
+fi
|
|
+
|
|
# We need to remove zconf.h from source directory if building outside of it
|
|
if [ "$SRCDIR" != "$BUILDDIR" ]; then
|
|
rm -f $SRCDIR/zconf${SUFFIX}.h
|