From 44bb804570f1efc9d72f503149e512719a8e4441 Mon Sep 17 00:00:00 2001 From: Derek Mauro Date: Thu, 10 Nov 2022 15:28:48 -0800 Subject: CRC: Ensure SupportsArmCRC32PMULL() is defined This fixes the build on arm64 macOS. Note that hardware acceleration is not yet enabled on arm64 when not running under Linux. Addresses the report from https://github.com/abseil/abseil-cpp/commit/1687dbf814eceb93de2d93f91b31acaab404091c#commitcomment-89529264 PiperOrigin-RevId: 487655295 Change-Id: I168dfc863c960d0b694b26dfcb85ff0fd0e95a1e --- absl/crc/internal/cpu_detect.cc | 4 ++++ absl/crc/internal/cpu_detect.h | 2 -- 2 files changed, 4 insertions(+), 2 deletions(-) (limited to 'absl') diff --git a/absl/crc/internal/cpu_detect.cc b/absl/crc/internal/cpu_detect.cc index e10c7ac0..339b7cc7 100644 --- a/absl/crc/internal/cpu_detect.cc +++ b/absl/crc/internal/cpu_detect.cc @@ -206,6 +206,8 @@ CpuType GetCpuType() { } } +bool SupportsArmCRC32PMULL() { return false; } + #elif defined(__aarch64__) && defined(__linux__) #define ABSL_INTERNAL_AARCH64_ID_REG_READ(id, val) \ @@ -240,6 +242,8 @@ bool SupportsArmCRC32PMULL() { CpuType GetCpuType() { return CpuType::kUnknown; } +bool SupportsArmCRC32PMULL() { return false; } + #endif } // namespace crc_internal diff --git a/absl/crc/internal/cpu_detect.h b/absl/crc/internal/cpu_detect.h index 54cb328a..6054f696 100644 --- a/absl/crc/internal/cpu_detect.h +++ b/absl/crc/internal/cpu_detect.h @@ -43,14 +43,12 @@ enum class CpuType { // the host CPU is of unknown type, or if detection otherwise fails. CpuType GetCpuType(); -#if defined(__aarch64__) // Returns whether the host CPU supports the CPU features needed for our // accelerated implementations. The CpuTypes enumerated above apart from // kUnknown support the required features. On unknown CPUs, we can use // this to see if it's safe to use hardware acceleration, though without any // tuning. bool SupportsArmCRC32PMULL(); -#endif } // namespace crc_internal ABSL_NAMESPACE_END -- cgit v1.2.3