From b36b16372d5f3aa0d1390eeaefd3600595b22e6d Mon Sep 17 00:00:00 2001 From: Kostya Kortchinsky Date: Mon, 9 Dec 2019 13:06:34 -0800 Subject: [PATCH] [scudo][standalone] Define hasHardwareCRC32 for other archs Summary: The function was only defined for x86 and arm families, which ends up being an issue for PPC in g3. Define the function, simply returning `false` for "other" architectures. Reviewers: hctim, pcc, cferris, eugenis, vitalybuka Subscribers: kristof.beyls, #sanitizers, llvm-commits Tags: #sanitizers, #llvm Differential Revision: https://reviews.llvm.org/D71223 --- compiler-rt/lib/scudo/standalone/checksum.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/compiler-rt/lib/scudo/standalone/checksum.cpp b/compiler-rt/lib/scudo/standalone/checksum.cpp index f713f5a..5de049a 100644 --- a/compiler-rt/lib/scudo/standalone/checksum.cpp +++ b/compiler-rt/lib/scudo/standalone/checksum.cpp @@ -44,7 +44,6 @@ bool hasHardwareCRC32() { __get_cpuid(1, &Eax, &Ebx, &Ecx, &Edx); return !!(Ecx & bit_SSE4_2); } - #elif defined(__arm__) || defined(__aarch64__) #ifndef AT_HWCAP #define AT_HWCAP 16 @@ -65,6 +64,9 @@ bool hasHardwareCRC32() { return !!(getauxval(AT_HWCAP) & HWCAP_CRC32); #endif // SCUDO_FUCHSIA } +#else +// No hardware CRC32 implemented in Scudo for other architectures. +bool hasHardwareCRC32() { return false; } #endif // defined(__x86_64__) || defined(__i386__) } // namespace scudo -- 2.7.4