Skip to content

Commit f96afec

Browse files
committed
Fixes
1 parent 1ebfb8b commit f96afec

File tree

4 files changed

+13
-3
lines changed

4 files changed

+13
-3
lines changed

CMakeLists.txt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1379,6 +1379,13 @@ if(XZ_ARM64_CRC32)
13791379
check_symbol_exists(getauxval sys/auxv.h HAVE_GETAUXVAL)
13801380
tuklib_add_definition_if(liblzma HAVE_GETAUXVAL)
13811381

1382+
# With getauxval() we also need HWCAP_CRC32 which was
1383+
# added in glibc 2.24.
1384+
if(HAVE_GETAUXVAL)
1385+
check_symbol_exists(HWCAP_CRC32 sys/auxv.h HAVE_HWCAP_CRC32)
1386+
tuklib_add_definition_if(liblzma HAVE_HWCAP_CRC32)
1387+
endif()
1388+
13821389
# elf_aux_info() is supported on FreeBSD and OpenBSD >= 7.6.
13831390
check_symbol_exists(elf_aux_info sys/auxv.h HAVE_ELF_AUX_INFO)
13841391
tuklib_add_definition_if(liblzma HAVE_ELF_AUX_INFO)

configure.ac

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1180,6 +1180,9 @@ int main(void)
11801180
#
11811181
AS_IF([test "x$enable_arm64_crc32" = xyes], [
11821182
AC_CHECK_FUNCS([getauxval elf_aux_info sysctlbyname], [break])
1183+
AC_CHECK_DECL([HWCAP_CRC32], [AC_DEFINE([HAVE_HWCAP_CRC32], [1],
1184+
[Define to 1 if 'HWCAP_CRC32' is declared in <sys/auxv.h>.])],
1185+
[], [[#include <sys/auxv.h>]])
11831186
])
11841187

11851188

src/liblzma/check/crc32_arm64.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
// If both versions are going to be built, we need runtime detection
2424
// to check if the instructions are supported.
2525
#if defined(CRC32_GENERIC) && defined(CRC32_ARCH_OPTIMIZED)
26-
# if (defined(HAVE_GETAUXVAL) && defined(HWCAP_CRC32)) \
26+
# if (defined(HAVE_GETAUXVAL) && defined(HAVE_HWCAP_CRC32)) \
2727
|| defined(HAVE_ELF_AUX_INFO)
2828
# include <sys/auxv.h>
2929
# elif defined(_WIN32)
@@ -104,7 +104,7 @@ crc32_arch_optimized(const uint8_t *buf, size_t size, uint32_t crc)
104104
static inline bool
105105
is_arch_extension_supported(void)
106106
{
107-
#if defined(HAVE_GETAUXVAL) && defined(HWCAP_CRC32)
107+
#if defined(HAVE_GETAUXVAL) && defined(HAVE_HWCAP_CRC32)
108108
#error "test"
109109
return (getauxval(AT_HWCAP) & HWCAP_CRC32) != 0;
110110

src/liblzma/check/crc_common.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ extern const uint64_t lzma_crc64_table[4][256];
9090
//
9191
// Keep this in sync with changes to crc32_arm64.h
9292
#if defined(_WIN32) \
93-
|| (defined(HAVE_GETAUXVAL) && defined(HWCAP_CRC32)) \
93+
|| (defined(HAVE_GETAUXVAL) && defined(HAVE_HWCAP_CRC32)) \
9494
|| defined(HAVE_ELF_AUX_INFO) \
9595
|| (defined(__APPLE__) && defined(HAVE_SYSCTLBYNAME))
9696
# define CRC_ARM64_RUNTIME_DETECTION 1

0 commit comments

Comments
 (0)