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

Reply via email to