]> git.ipfire.org Git - thirdparty/zlib-ng.git/commitdiff
Remove unnecessary ARM_AUXV_HAS_CRC32 preprocessor check
authorNathan Moinvaziri <nathan@nathanm.com>
Tue, 13 Jan 2026 02:39:13 +0000 (18:39 -0800)
committerHans Kristian Rosbach <hk-github@circlestorm.org>
Thu, 22 Jan 2026 00:16:07 +0000 (01:16 +0100)
CMakeLists.txt
arch/arm/arm_features.c
configure

index 2c569b6dd848ec41247f10b5599541c871a465df..2d666c278f3c1dc23e353d7564612e9769ec4698 100644 (file)
@@ -743,44 +743,7 @@ if(WITH_OPTIM)
     if(BASEARCH_ARM_FOUND)
         add_definitions(-DARM_FEATURES)
         if(${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
-            if(ARCH_64BIT)
-                check_c_source_compiles(
-                    "#include <sys/auxv.h>
-                    int main() {
-                        return (getauxval(AT_HWCAP) & HWCAP_CRC32);
-                    }"
-                    ARM_AUXV_HAS_CRC32
-                )
-                if(ARM_AUXV_HAS_CRC32)
-                    add_definitions(-DARM_AUXV_HAS_CRC32)
-                else()
-                   message(STATUS "HWCAP_CRC32 not present in sys/auxv.h; cannot detect support at runtime.")
-                endif()
-            else()
-                check_c_source_compiles(
-                    "#include <sys/auxv.h>
-                    int main() {
-                        return (getauxval(AT_HWCAP2) & HWCAP2_CRC32);
-                    }"
-                    ARM_AUXV_HAS_CRC32
-                )
-                if(ARM_AUXV_HAS_CRC32)
-                    add_definitions(-DARM_AUXV_HAS_CRC32)
-                else()
-                    check_c_source_compiles(
-                        "#include <sys/auxv.h>
-                        #include <asm/hwcap.h>
-                        int main() {
-                            return (getauxval(AT_HWCAP2) & HWCAP2_CRC32);
-                        }"
-                        ARM_HWCAP_HAS_CRC32
-                    )
-                    if (ARM_HWCAP_HAS_CRC32)
-                        add_definitions(-DARM_AUXV_HAS_CRC32 -DARM_ASM_HWCAP)
-                    else()
-                        message(STATUS "HWCAP2_CRC32 not present in sys/auxv.h; cannot detect support at runtime.")
-                    endif()
-                endif()
+            if(ARCH_32BIT)
                 check_c_source_compiles(
                     "#include <sys/auxv.h>
                     int main() {
@@ -808,36 +771,7 @@ if(WITH_OPTIM)
         endif()
         if(${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD" OR
            ${CMAKE_SYSTEM_NAME} STREQUAL "OpenBSD")
-            if(ARCH_64BIT)
-                check_c_source_compiles(
-                    "#include <sys/auxv.h>
-                    int main() {
-                        unsigned long hwcap;
-                        elf_aux_info(AT_HWCAP, &hwcap, sizeof(hwcap));
-                        return (hwcap & HWCAP_CRC32);
-                    }"
-                    ARM_AUXV_HAS_CRC32
-                )
-                if(ARM_AUXV_HAS_CRC32)
-                    add_definitions(-DARM_AUXV_HAS_CRC32)
-                else()
-                    message(STATUS "HWCAP_CRC32 not present in sys/auxv.h; cannot detect support at runtime.")
-                endif()
-            else()
-                check_c_source_compiles(
-                    "#include <sys/auxv.h>
-                    int main() {
-                        unsigned long hwcap2;
-                        elf_aux_info(AT_HWCAP2, &hwcap2, sizeof(hwcap2));
-                        return (hwcap2 & HWCAP2_CRC32);
-                    }"
-                    ARM_AUXV_HAS_CRC32
-                )
-                if(ARM_AUXV_HAS_CRC32)
-                    add_definitions(-DARM_AUXV_HAS_CRC32)
-                else()
-                    message(STATUS "HWCAP2_CRC32 not present in sys/auxv.h; cannot detect support at runtime.")
-                endif()
+            if(ARCH_32BIT)
                 check_c_source_compiles(
                     "#include <sys/auxv.h>
                     int main() {
index 26442eb8999dd0801053349e8ace03e0e2e75d83..3f035296cfcbbb261b8b025b43762efa8f825d5d 100644 (file)
 
 static int arm_has_crc32(void) {
     int has_crc32 = 0;
-#if defined(ARM_AUXV_HAS_CRC32)
-#  if defined(__FreeBSD__) || defined(__OpenBSD__)
-#    ifdef HWCAP_CRC32
-       unsigned long hwcap = 0;
-       elf_aux_info(AT_HWCAP, &hwcap, sizeof(hwcap));
-       has_crc32 = (hwcap & HWCAP_CRC32) != 0;
-#    else
-       unsigned long hwcap2 = 0;
-       elf_aux_info(AT_HWCAP2, &hwcap2, sizeof(hwcap2));
-       has_crc32 = (hwcap2 & HWCAP2_CRC32) != 0;
-#    endif
-#  else
-#    ifdef HWCAP_CRC32
-       has_crc32 = (getauxval(AT_HWCAP) & HWCAP_CRC32) != 0;
-#    else
-       has_crc32 = (getauxval(AT_HWCAP2) & HWCAP2_CRC32) != 0;
-#    endif
+#if defined(__linux__) && defined(HAVE_SYS_AUXV_H)
+#  ifdef HWCAP_CRC32
+    has_crc32 = (getauxval(AT_HWCAP) & HWCAP_CRC32) != 0;
+#  elif defined(HWCAP2_CRC32)
+    has_crc32 = (getauxval(AT_HWCAP2) & HWCAP2_CRC32) != 0;
 #  endif
 #elif defined(__FreeBSD__) && defined(ARCH_64BIT)
     has_crc32 = getenv("QEMU_EMULATING") == NULL
@@ -55,6 +43,16 @@ static int arm_has_crc32(void) {
     if (sysctl(isar0_mib, 2, &isar0, &len, NULL, 0) != -1) {
       has_crc32 = ID_AA64ISAR0_CRC32(isar0) >= ID_AA64ISAR0_CRC32_BASE;
     }
+#elif defined(__FreeBSD__) || defined(__OpenBSD__)
+#  ifdef HWCAP_CRC32
+    unsigned long hwcap = 0;
+    elf_aux_info(AT_HWCAP, &hwcap, sizeof(hwcap));
+    has_crc32 = (hwcap & HWCAP_CRC32) != 0;
+#  elif defined(HWCAP2_CRC32)
+    unsigned long hwcap2 = 0;
+    elf_aux_info(AT_HWCAP2, &hwcap2, sizeof(hwcap2));
+    has_crc32 = (hwcap2 & HWCAP2_CRC32) != 0;
+#  endif
 #elif defined(__APPLE__)
     int has_feat = 0;
     size_t size = sizeof(has_feat);
index c3ef99dd0d8371adafe9ff117eb23d25acbf39b2..6a4e5ffc2a6cbcd230beab97c9dc0d6917b9b0c3 100755 (executable)
--- a/configure
+++ b/configure
@@ -2061,45 +2061,7 @@ EOF
 
 
             if test $LINUX -eq 1; then
-                if test "$ARCH" = "aarch64"; then
-                    cat > $test.c <<EOF
-#include <sys/auxv.h>
-int main() {
-    return (getauxval(AT_HWCAP) & HWCAP_CRC32);
-}
-EOF
-                    if try $CC -c $CFLAGS $test.c; then
-                        CFLAGS="${CFLAGS} -DARM_AUXV_HAS_CRC32"
-                        SFLAGS="${SFLAGS} -DARM_AUXV_HAS_CRC32"
-                    else
-                        echo "HWCAP_CRC32 not present in sys/auxv.h; cannot detect support at runtime." | tee -a configure.log
-                    fi
-                else
-                    cat > $test.c <<EOF
-#include <sys/auxv.h>
-int main() {
-    return (getauxval(AT_HWCAP2) & HWCAP2_CRC32);
-}
-EOF
-                    if try $CC -c $CFLAGS $test.c; then
-                        CFLAGS="${CFLAGS} -DARM_AUXV_HAS_CRC32"
-                        SFLAGS="${SFLAGS} -DARM_AUXV_HAS_CRC32"
-                    else
-                        cat > $test.c <<EOF
-#include <sys/auxv.h>
-#include <asm/hwcap.h>
-int main() {
-    return (getauxval(AT_HWCAP2) & HWCAP2_CRC32);
-}
-EOF
-                        if try $CC -c $CFLAGS $test.c; then
-                            CFLAGS="${CFLAGS} -DARM_AUXV_HAS_CRC32 -DARM_ASM_HWCAP"
-                            SFLAGS="${SFLAGS} -DARM_AUXV_HAS_CRC32 -DARM_ASM_HWCAP"
-                        else
-                            echo "HWCAP2_CRC32 not present in sys/auxv.h; cannot detect support at runtime." | tee -a configure.log
-                        fi
-                    fi
-
+                if test "$ARCH" != "aarch64"; then
                     cat > $test.c <<EOF
 #include <sys/auxv.h>
 int main() {
@@ -2127,37 +2089,7 @@ EOF
             fi
 
             if test $FREEBSD -eq 1 -o $OPENBSD -eq 1; then
-                if test "$ARCH" = "aarch64"; then
-                    cat > $test.c <<EOF
-#include <sys/auxv.h>
-int main() {
-    unsigned long hwcap;
-    elf_aux_info(AT_HWCAP, &hwcap, sizeof(hwcap));
-    return (hwcap & HWCAP_CRC32);
-}
-EOF
-                    if try $CC -c $CFLAGS $test.c; then
-                        CFLAGS="${CFLAGS} -DARM_AUXV_HAS_CRC32"
-                        SFLAGS="${SFLAGS} -DARM_AUXV_HAS_CRC32"
-                    else
-                        echo "HWCAP_CRC32 not present in sys/auxv.h; cannot detect support at runtime." | tee -a configure.log
-                    fi
-                else
-                    cat > $test.c <<EOF
-#include <sys/auxv.h>
-int main() {
-    unsigned long hwcap2;
-    elf_aux_info(AT_HWCAP2, &hwcap2, sizeof(hwcap2));
-    return (hwcap2 & HWCAP2_CRC32);
-}
-EOF
-                    if try $CC -c $CFLAGS $test.c; then
-                        CFLAGS="${CFLAGS} -DARM_AUXV_HAS_CRC32"
-                        SFLAGS="${SFLAGS} -DARM_AUXV_HAS_CRC32"
-                    else
-                        echo "HWCAP2_CRC32 not present in sys/auxv.h; cannot detect support at runtime." | tee -a configure.log
-                    fi
-
+                if test "$ARCH" != "aarch64"; then
                     cat > $test.c <<EOF
 #include <sys/auxv.h>
 int main() {