|
@@ -0,0 +1,90 @@
|
|
|
+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
|