summaryrefslogtreecommitdiff
blob: 762476a10184fb2a916f9b2d6183109367439c9a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Don't assume all ARM CPUs have crypto extensions.

Requires an accompanying change in the ebuild to disable crypto
extensions (by passing -DABSL_ARCH_ARM_NO_CRYPTO). This could
be done by the build system instead in future.

https://bugs.gentoo.org/778926
--- /absl/random/internal/randen_hwaes.cc
+++ /absl/random/internal/randen_hwaes.cc
@@ -50,8 +50,11 @@
     (defined(__ARM_NEON) && defined(__ARM_FEATURE_CRYPTO))
 #define ABSL_RANDEN_HWAES_IMPL 1
 
-#elif ABSL_RANDOM_INTERNAL_AES_DISPATCH && !defined(__APPLE__) && \
-    (defined(__GNUC__) && __GNUC__ > 4 || __GNUC__ == 4 && __GNUC_MINOR__ > 9)
+// When ABSL_ARCH_ARM_NO_CRYPTO is defined, then ARM CPU without
+// crypto extension is assumed.
+#elif !defined(ABSL_ARCH_ARM_NO_CRYPTO) && \
+    (ABSL_RANDOM_INTERNAL_AES_DISPATCH && !defined(__APPLE__) && \
+    (defined(__GNUC__) && __GNUC__ > 4 || __GNUC__ == 4 && __GNUC_MINOR__ > 9))
 // ...or, on GCC, we can use an ASM directive to
 // instruct the assember to allow crypto instructions.
 #define ABSL_RANDEN_HWAES_IMPL 1