Re: git: 96e53c0c65fa - main - archivers/libunrar: Support crc and crypto flags on aarch64
Date: Wed, 19 Feb 2025 09:34:28 UTC
Hi Jason,
Am Wed, Feb 19, 2025 at 08:37:36AM +0000 schrieb Jason E. Hale:
> The branch main has been updated by jhale:
>
> URL: https://cgit.FreeBSD.org/ports/commit/?id=96e53c0c65faa691e18c0a5558d8f445e6010a70
>
> commit 96e53c0c65faa691e18c0a5558d8f445e6010a70
> Author: Jason E. Hale <jhale@FreeBSD.org>
> AuthorDate: 2025-02-19 07:09:07 +0000
> Commit: Jason E. Hale <jhale@FreeBSD.org>
> CommitDate: 2025-02-19 08:36:56 +0000
>
> archivers/libunrar: Support crc and crypto flags on aarch64
>
> 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.
> ---
> archivers/libunrar/files/patch-crc.cpp | 22 ++++++++++++++++
> archivers/libunrar/files/patch-os.hpp | 25 ++++++++++++++----
> archivers/libunrar/files/patch-rijndael.cpp | 40 ++++++++++++++++++++++-------
> 3 files changed, 73 insertions(+), 14 deletions(-)
>
> diff --git a/archivers/libunrar/files/patch-crc.cpp b/archivers/libunrar/files/patch-crc.cpp
> new file mode 100644
> index 000000000000..131c7dc158fb
> --- /dev/null
> +++ b/archivers/libunrar/files/patch-crc.cpp
> @@ -0,0 +1,22 @@
> +--- crc.cpp.orig 2025-02-12 14:05:26 UTC
> ++++ crc.cpp
> +@@ -42,12 +42,18 @@ void InitCRC32(uint *CRCTab)
> + }
> +
> + #ifdef USE_NEON_CRC32
> +- #ifdef _APPLE
> ++ #if defined(_APPLE)
> + // getauxval isn't available in OS X
> + uint Value=0;
> + size_t Size=sizeof(Value);
> + int RetCode=sysctlbyname("hw.optional.armv8_crc32",&Value,&Size,NULL,0);
> + CRC_Neon=RetCode==0 && Value!=0;
> ++ #elif defined(__FreeBSD__)
> ++ // getauxval isn't available on FreeBSD
> ++ uint64 Reg=READ_SPECIALREG(id_aa64isar0_el1);
> ++ if (ID_AA64ISAR0_CRC32_VAL(Reg) == ID_AA64ISAR0_CRC32_BASE) {
> ++ CRC_Neon=true;
> ++ }
> + #else
> + CRC_Neon=(getauxval(AT_HWCAP) & HWCAP_CRC32)!=0;
> + #endif
Note that we do have the same interface, the function is just spelled
elf_aux_info() and has a slightly different interface.
Yours,
Robert Clausecker
--
() ascii ribbon campaign - for an encoding-agnostic world
/\ - against html email - against proprietary attachments