From: Nathan Moinvaziri Date: Tue, 13 Jan 2026 02:39:13 +0000 (-0800) Subject: Remove unnecessary ARM_AUXV_HAS_CRC32 preprocessor check X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=dffb03f1d97dbdb8c0a632b4b58e1d5dc6f84bb2;p=thirdparty%2Fzlib-ng.git Remove unnecessary ARM_AUXV_HAS_CRC32 preprocessor check --- diff --git a/CMakeLists.txt b/CMakeLists.txt index 2c569b6dd..2d666c278 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -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 - 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 - 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 - #include - 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 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 - 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 - 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 int main() { diff --git a/arch/arm/arm_features.c b/arch/arm/arm_features.c index 26442eb89..3f035296c 100644 --- a/arch/arm/arm_features.c +++ b/arch/arm/arm_features.c @@ -27,23 +27,11 @@ 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); diff --git a/configure b/configure index c3ef99dd0..6a4e5ffc2 100755 --- a/configure +++ b/configure @@ -2061,45 +2061,7 @@ EOF if test $LINUX -eq 1; then - if test "$ARCH" = "aarch64"; then - cat > $test.c < -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 < -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 < -#include -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 < 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 < -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 < -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 < int main() {