aboutsummaryrefslogtreecommitdiff
path: root/devel/electron38/files/patch-third__party_unrar_src_rijndael.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'devel/electron38/files/patch-third__party_unrar_src_rijndael.cpp')
-rw-r--r--devel/electron38/files/patch-third__party_unrar_src_rijndael.cpp24
1 files changed, 24 insertions, 0 deletions
diff --git a/devel/electron38/files/patch-third__party_unrar_src_rijndael.cpp b/devel/electron38/files/patch-third__party_unrar_src_rijndael.cpp
new file mode 100644
index 000000000000..c01e3b9817bc
--- /dev/null
+++ b/devel/electron38/files/patch-third__party_unrar_src_rijndael.cpp
@@ -0,0 +1,24 @@
+--- 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