diff --git a/archivers/7-zip/files/patch-C_AesOpt.c b/archivers/7-zip/files/patch-C_AesOpt.c index 6366058533f0..73889f4c4266 100644 --- a/archivers/7-zip/files/patch-C_AesOpt.c +++ b/archivers/7-zip/files/patch-C_AesOpt.c @@ -1,38 +1,41 @@ ---- C/AesOpt.c.orig 2022-04-12 15:59:22 UTC +--- C/AesOpt.c.orig 2023-08-31 09:13:13 UTC +++ C/AesOpt.c -@@ -506,7 +506,7 @@ VAES_COMPAT_STUB (AesCtr_Code_HW) +@@ -554,7 +554,7 @@ VAES_COMPAT_STUB (AesCtr_Code_HW) #endif // ! USE_INTEL_VAES -#elif defined(MY_CPU_ARM_OR_ARM64) && defined(MY_CPU_LE) +#elif defined(MY_CPU_ARM64) && defined(MY_CPU_LE) #if defined(__clang__) #if (__clang_major__ >= 8) // fix that check -@@ -773,4 +773,25 @@ AES_FUNC_START2 (AesCtr_Code_HW) +@@ -828,7 +828,28 @@ AES_FUNC_START2 (AesCtr_Code_HW) #endif // USE_HW_AES -#endif // MY_CPU_ARM_OR_ARM64 +#else + +/* no USE_HW_AES */ + +#pragma message("AES HW_SW stub was used") + +#define AES_TYPE_keys UInt32 +#define AES_TYPE_data Byte + +#define AES_FUNC_START(name) \ + void MY_FAST_CALL name(UInt32 *p, Byte *data, size_t numBlocks) \ + +#define AES_COMPAT_STUB(name) \ + AES_FUNC_START(name); \ + AES_FUNC_START(name ## _HW) \ + { name(p, data, numBlocks); } + +AES_COMPAT_STUB (AesCbc_Encode) +AES_COMPAT_STUB (AesCbc_Decode) +AES_COMPAT_STUB (AesCtr_Code) + +#endif + + #undef NUM_WAYS + #undef WOP_M1 diff --git a/archivers/7-zip/files/patch-C_CpuArch.c b/archivers/7-zip/files/patch-C_CpuArch.c index be204095f526..f0c8cba0f67c 100644 --- a/archivers/7-zip/files/patch-C_CpuArch.c +++ b/archivers/7-zip/files/patch-C_CpuArch.c @@ -1,42 +1,42 @@ ---- C/CpuArch.c.orig 2021-12-12 14:45:15 UTC +--- C/CpuArch.c.orig 2023-08-31 09:13:13 UTC +++ C/CpuArch.c -@@ -417,6 +417,31 @@ BoolInt CPU_IsSupported_AES (void) { return APPLE_CRYP +@@ -762,6 +762,31 @@ BoolInt CPU_IsSupported_AES (void) { return APPLE_CRYP #include +#if defined(__FreeBSD__) +static unsigned long get_hwcap(int aux) { + unsigned long hwcap; + if (elf_aux_info(aux, &hwcap, sizeof hwcap) != 0) { + return 0; + } + return hwcap; +} + +#ifdef MY_CPU_ARM64 +BoolInt CPU_IsSupported_CRC32(void) { return get_hwcap(AT_HWCAP) & HWCAP_CRC32; } +BoolInt CPU_IsSupported_NEON(void) { return 1; } +BoolInt CPU_IsSupported_SHA1(void){ return get_hwcap(AT_HWCAP) & HWCAP_SHA1; } +BoolInt CPU_IsSupported_SHA2(void) { return get_hwcap(AT_HWCAP) & HWCAP_SHA2; } +BoolInt CPU_IsSupported_AES(void) { return get_hwcap(AT_HWCAP) & HWCAP_AES; } +#else /* MY_CPU_ARM */ +BoolInt CPU_IsSupported_CRC32(void) { return get_hwcap(AT_HWCAP2) & HWCAP2_CRC32; } +BoolInt CPU_IsSupported_NEON(void) { return get_hwcap(AT_HWCAP) & HWCAP_NEON; } +BoolInt CPU_IsSupported_SHA1(void){ return get_hwcap(AT_HWCAP2) & HWCAP2_SHA1; } +BoolInt CPU_IsSupported_SHA2(void) { return get_hwcap(AT_HWCAP2) & HWCAP2_SHA2; } +BoolInt CPU_IsSupported_AES(void) { return get_hwcap(AT_HWCAP2) & HWCAP2_AES; } +#endif + +#else // __FreeBSD__ + #define USE_HWCAP #ifdef USE_HWCAP -@@ -450,6 +475,7 @@ MY_HWCAP_CHECK_FUNC (SHA1) +@@ -795,6 +820,7 @@ MY_HWCAP_CHECK_FUNC (SHA1) MY_HWCAP_CHECK_FUNC (SHA2) MY_HWCAP_CHECK_FUNC (AES) +#endif // FreeBSD #endif // __APPLE__ #endif // _WIN32 diff --git a/archivers/7-zip/files/patch-C_Sha1Opt.c b/archivers/7-zip/files/patch-C_Sha1Opt.c index 335ae642521d..69b00669795b 100644 --- a/archivers/7-zip/files/patch-C_Sha1Opt.c +++ b/archivers/7-zip/files/patch-C_Sha1Opt.c @@ -1,11 +1,11 @@ ---- C/Sha1Opt.c.orig 2022-04-12 16:00:26 UTC +--- C/Sha1Opt.c.orig 2023-08-31 09:13:13 UTC +++ C/Sha1Opt.c -@@ -212,7 +212,7 @@ void MY_FAST_CALL Sha1_UpdateBlocks_HW(UInt32 state[5] +@@ -202,7 +202,7 @@ void Z7_FASTCALL Sha1_UpdateBlocks_HW(UInt32 state[5], #endif // USE_HW_SHA -#elif defined(MY_CPU_ARM_OR_ARM64) +#elif defined(MY_CPU_ARM64) #if defined(__clang__) #if (__clang_major__ >= 8) // fix that check diff --git a/archivers/7-zip/files/patch-C_Sha256Opt.c b/archivers/7-zip/files/patch-C_Sha256Opt.c index 3e1eaa16fe61..cfbd3dd9befa 100644 --- a/archivers/7-zip/files/patch-C_Sha256Opt.c +++ b/archivers/7-zip/files/patch-C_Sha256Opt.c @@ -1,11 +1,11 @@ ---- C/Sha256Opt.c.orig 2022-04-12 16:00:07 UTC +--- C/Sha256Opt.c.orig 2023-08-31 09:13:13 UTC +++ C/Sha256Opt.c -@@ -212,7 +212,7 @@ void MY_FAST_CALL Sha256_UpdateBlocks_HW(UInt32 state[ +@@ -202,7 +202,7 @@ void Z7_FASTCALL Sha256_UpdateBlocks_HW(UInt32 state[8 #endif // USE_HW_SHA -#elif defined(MY_CPU_ARM_OR_ARM64) +#elif defined(MY_CPU_ARM64) #if defined(__clang__) #if (__clang_major__ >= 8) // fix that check