On Thu, Jan 9, 2025 at 6:18 PM Jessica Clarke <jrt...@jrtc27.com> wrote: > On 9 Jan 2025, at 15:12, Diego Nieto Cid <dnie...@gmail.com> wrote: > > Looking at the types.h header, I see there are HWCAP2_* definitions for > > bits above 32. Since hwcaps_t is an uint32_t and the defs file claims to > > return two values (I assume the first for HWCAP_* and the second for > > HWCAP2_*), I don't see how to get the higher bits of HWCAP2_*. > > > > How does that work? > > On Linux, FreeBSD and any other OS that implements AT_HWCAP(2), you get > hwcaps via auxv, and Elf_Auxinfo’s a_un.a_val is a long, so it’s 64-bit > on 64-bit architectures, which aarch64 is. Making hwcaps_t a uint32_t > on aarch64 is a mistake.
Hmm. Indeed, that looks like an oversight, indeed both Linux and glibc define hwcaps to be 64-bit. Let's say that aarch64-gnu is experimental enough that it's fine to just change the RPC ABI. I'll remember to switch it to uint64_t the next time I get to it, or perhaps you want to post a patch now? Sergey