mirror of
https://git.freebsd.org/ports.git
synced 2025-04-28 17:46:38 -04:00
If CPU flags crc or crytpo are set, e.g. -march=armv8-a+crc+crypto, build would fail with missing headers because this was only implemented for glibc and Apple. Reported by: Mark Millard <marklmi@yahoo.com> Obtained from: https://cgit.freebsd.org/ports/commit/?id=96e53c0c65faa691e18c0a5558d8f445e6010a70
24 lines
869 B
C++
24 lines
869 B
C++
--- third_party/unrar/src/rijndael.cpp.orig 2025-02-21 07:49:13 UTC
|
|
+++ third_party/unrar/src/rijndael.cpp
|
|
@@ -116,7 +116,7 @@ void Rijndael::Init(bool Encrypt,const byte *key,uint
|
|
#endif
|
|
|
|
#elif defined(USE_NEON_AES)
|
|
- #ifdef _APPLE
|
|
+ #if defined(_APPLE)
|
|
// getauxval isn't available in OS X
|
|
uint Value=0;
|
|
size_t Size=sizeof(Value);
|
|
@@ -126,6 +126,12 @@ void Rijndael::Init(bool Encrypt,const byte *key,uint
|
|
// because "hw.optional.arm.FEAT_AES" was missing in OS X 11, but AES
|
|
// still was supported by Neon.
|
|
AES_Neon=RetCode!=0 || Value!=0;
|
|
+ #elif defined(__FreeBSD__)
|
|
+ // getauxval isn't available on FreeBSD
|
|
+ uint64 Reg=READ_SPECIALREG(id_aa64isar0_el1);
|
|
+ if (ID_AA64ISAR0_AES_VAL(Reg) == ID_AA64ISAR0_AES_BASE) {
|
|
+ AES_Neon=true;
|
|
+ }
|
|
#else
|
|
AES_Neon=(getauxval(AT_HWCAP) & HWCAP_AES)!=0;
|
|
#endif
|