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