]> git.ipfire.org Git - thirdparty/zlib-ng.git/commitdiff
Use elf_aux_info() on OpenBSD PowerPC
authorBrad Smith <brad@comstyle.com>
Fri, 14 Nov 2025 01:02:25 +0000 (20:02 -0500)
committerHans Kristian Rosbach <hk-github@circlestorm.org>
Fri, 14 Nov 2025 23:47:01 +0000 (00:47 +0100)
arch/power/power_features.c
cmake/detect-intrinsics.cmake
configure

index 4939d1c18f3422a34c409fa17fdde5f15709b8e7..d3c55c6ae5ca72dbde632b4e2f46d38f64775c6c 100644 (file)
@@ -19,7 +19,7 @@
 void Z_INTERNAL power_check_features(struct power_cpu_features *features) {
 #ifdef PPC_FEATURES
     unsigned long hwcap;
-#ifdef __FreeBSD__
+#if defined(__FreeBSD__) || defined(__OpenBSD__)
     elf_aux_info(AT_HWCAP, &hwcap, sizeof(hwcap));
 #else
     hwcap = getauxval(AT_HWCAP);
@@ -31,7 +31,7 @@ void Z_INTERNAL power_check_features(struct power_cpu_features *features) {
 
 #ifdef POWER_FEATURES
     unsigned long hwcap2;
-#ifdef __FreeBSD__
+#if defined(__FreeBSD__) || defined(__OpenBSD__)
     elf_aux_info(AT_HWCAP2, &hwcap2, sizeof(hwcap2));
 #else
     hwcap2 = getauxval(AT_HWCAP2);
index e7592f95b973e42c6a76aa463772fae05eaf545b..d1c814ffa232da705160cc488282f34c7480d17e 100644 (file)
@@ -389,7 +389,7 @@ macro(check_ppc_intrinsics)
         #include <machine/cpu.h>
         #endif
         int main() {
-        #ifdef __FreeBSD__
+        #if defined(__FreeBSD__) || defined(__OpenBSD__)
             unsigned long hwcap;
             elf_aux_info(AT_HWCAP, &hwcap, sizeof(hwcap));
             return (hwcap & PPC_FEATURE_HAS_ALTIVEC);
@@ -416,7 +416,7 @@ macro(check_power8_intrinsics)
         #include <machine/cpu.h>
         #endif
         int main() {
-        #ifdef __FreeBSD__
+        #if defined(__FreeBSD__) || defined(__OpenBSD__)
             unsigned long hwcap;
             elf_aux_info(AT_HWCAP2, &hwcap, sizeof(hwcap));
             return (hwcap & PPC_FEATURE2_ARCH_2_07);
@@ -511,7 +511,7 @@ macro(check_power9_intrinsics)
         #include <machine/cpu.h>
         #endif
         int main() {
-        #ifdef __FreeBSD__
+        #if defined(__FreeBSD__) || defined(__OpenBSD__)
             unsigned long hwcap;
             elf_aux_info(AT_HWCAP2, &hwcap, sizeof(hwcap));
             return (hwcap & PPC_FEATURE2_ARCH_3_00);
index e51e21bff2269d7b94d419b93c6972b5b9b5cfd2..267abcf75d8a2644af6061734b385f0bf5185bdf 100755 (executable)
--- a/configure
+++ b/configure
@@ -829,7 +829,7 @@ fi
 cat > $test.c <<EOF
 #include <sys/auxv.h>
 int main() {
-#ifdef __FreeBSD__
+#if defined(__FreeBSD__) || defined(__OpenBSD__)
   int test;
   return elf_aux_info(AT_PAGESZ, &test, sizeof(test));
 #else
@@ -842,7 +842,7 @@ if try $CC $CFLAGS -o $test $test.c $LDSHAREDLIBC; then
   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
+  echo "Checking for getauxval() or elf_aux_info() in sys/auxv.h... No." | tee -a configure.log
 fi
 
 # We need to remove consigured files (zconf.h etc) from source directory if building outside of it
@@ -1471,7 +1471,7 @@ EOF
 #endif
 #include <sys/auxv.h>
 int main() {
-#ifdef __FreeBSD__
+#if defined(__FreeBSD__) || defined(__OpenBSD__)
   unsigned long hwcap;
   elf_aux_info(AT_HWCAP, &hwcap, sizeof(hwcap));
   return (hwcap & PPC_FEATURE_HAS_ALTIVEC);
@@ -1497,7 +1497,7 @@ check_power8_intrinsics() {
 #endif
 #include <sys/auxv.h>
 int main() {
-#ifdef __FreeBSD__
+#if defined(__FreeBSD__) || defined(__OpenBSD__)
   unsigned long hwcap;
   elf_aux_info(AT_HWCAP2, &hwcap, sizeof(hwcap));
   return (hwcap & PPC_FEATURE2_ARCH_2_07);
@@ -1523,7 +1523,7 @@ check_power9_intrinsics() {
 #endif
 #include <sys/auxv.h>
 int main() {
-#ifdef __FreeBSD__
+#if defined(__FreeBSD__) || defined(__OpenBSD__)
   unsigned long hwcap;
   elf_aux_info(AT_HWCAP2, &hwcap, sizeof(hwcap));
   return (hwcap & PPC_FEATURE2_ARCH_3_00);