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 1687dbf814 (commitcomment-89529264)

PiperOrigin-RevId: 487655295
Change-Id: I168dfc863c960d0b694b26dfcb85ff0fd0e95a1e
pull/1272/merge
Derek Mauro 2 years ago committed by Copybara-Service
parent 0465837711
commit 44bb804570
  1. 4
      absl/crc/internal/cpu_detect.cc
  2. 2
      absl/crc/internal/cpu_detect.h

@ -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

@ -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

Loading…
Cancel
Save