--- multiarc/src/formats/7z/C/7zCrc.c.orig 2023-01-14 23:53:02 UTC +++ multiarc/src/formats/7z/C/7zCrc.c @@ -86,7 +86,7 @@ UInt32 MY_FAST_CALL CrcUpdateT1(UInt32 v, const void * #if !defined(__ARM_FEATURE_CRC32) #define __ARM_FEATURE_CRC32 1 #if (!defined(__clang__) || (__clang_major__ > 3)) // fix these numbers - #define ATTRIB_CRC __attribute__((__target__("arch=armv8-a+crc"))) + #define ATTRIB_CRC __attribute__((__target__("crc"))) #endif #endif #if defined(__ARM_FEATURE_CRC32) --- multiarc/src/formats/7z/C/CpuArch.c.orig 2023-01-14 23:53:02 UTC +++ multiarc/src/formats/7z/C/CpuArch.c @@ -422,7 +422,16 @@ BoolInt CPU_IsSupported_AES (void) { return APPLE_CRYP #ifdef USE_HWCAP +#ifdef __FreeBSD__ +static unsigned long getauxval(int aux) +{ + unsigned long auxval = 0; + elf_aux_info(aux, &auxval, sizeof(auxval)); + return auxval; +} +#else #include +#endif #define MY_HWCAP_CHECK_FUNC_2(name1, name2) \ BoolInt CPU_IsSupported_ ## name1() { return (getauxval(AT_HWCAP) & (HWCAP_ ## name2)) ? 1 : 0; } --- multiarc/src/formats/7z/C/Sha1Opt.c.orig 2023-01-14 23:53:02 UTC +++ multiarc/src/formats/7z/C/Sha1Opt.c @@ -234,7 +234,8 @@ void MY_FAST_CALL Sha1_UpdateBlocks_HW(UInt32 state[5] #if defined(__clang__) || defined(__GNUC__) #ifdef MY_CPU_ARM64 - #define ATTRIB_SHA __attribute__((__target__("+crypto"))) + #define __ARM_FEATURE_SHA2 + #define ATTRIB_SHA __attribute__((__target__("sha2"))) #else #define ATTRIB_SHA __attribute__((__target__("fpu=crypto-neon-fp-armv8"))) #endif --- multiarc/src/formats/7z/C/Sha256Opt.c.orig 2023-01-14 23:53:02 UTC +++ multiarc/src/formats/7z/C/Sha256Opt.c @@ -234,7 +234,8 @@ void MY_FAST_CALL Sha256_UpdateBlocks_HW(UInt32 state[ #if defined(__clang__) || defined(__GNUC__) #ifdef MY_CPU_ARM64 - #define ATTRIB_SHA __attribute__((__target__("+crypto"))) + #define __ARM_FEATURE_SHA2 + #define ATTRIB_SHA __attribute__((__target__("sha2"))) #else #define ATTRIB_SHA __attribute__((__target__("fpu=crypto-neon-fp-armv8"))) #endif