[scudo][standalone] Define hasHardwareCRC32 for other archs
authorKostya Kortchinsky <kostyak@google.com>
Mon, 9 Dec 2019 21:06:34 +0000 (13:06 -0800)
committerKostya Kortchinsky <kostyak@google.com>
Tue, 10 Dec 2019 15:41:46 +0000 (07:41 -0800)
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

index f713f5a..5de049a 100644 (file)
@@ -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