Page MenuHomeFreeBSD

arm64: Provide ifunc HWCAP structure definitions
Needs ReviewPublic

Authored by sarah.walker2_arm.com on Thu, Jan 8, 10:51 AM.
Tags
None
Referenced Files
F141885964: D54598.diff
Mon, Jan 12, 12:19 AM
Unknown Object (File)
Fri, Jan 9, 7:18 PM
Unknown Object (File)
Thu, Jan 8, 5:37 PM
Unknown Object (File)
Thu, Jan 8, 2:18 PM
Unknown Object (File)
Thu, Jan 8, 2:16 PM
Unknown Object (File)
Thu, Jan 8, 2:07 PM
Subscribers

Details

Reviewers
andrew
manu
Summary

IFUNC structure is based on Section 9.4.1 "GNU C Library IFUNC interface"
from "System V ABI for the Arm 64-bit Architecture (AArch64)", 2025Q1.
(https://github.com/ARM-software/abi-aa/releases/download/2025Q1/sysvabi64.pdf)

Sponsored by: Arm Ltd

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Skipped
Unit
Tests Skipped
Build Status
Buildable 69759
Build 66642: arc lint + arc unit

Event Timeline

sys/arm64/include/ifunc.h
57–58

These can still be marked as __unused. It just tells the compiler to not complain if the arg isn't used in the function.

jrtc27 added inline comments.
sys/arm64/include/ifunc.h
57–58

s/can/must/ otherwise you require them to be used by everything using DEFINE_UIFUNC

sys/arm64/include/ifunc.h
32

Still no glibc-compatible typedef?

34

__size_t?

sys/arm64/include/ifunc.h
41

This is ULL but a_val is unsigned long?

41

(well, a_val is long but _hwcap is unsigned long)

sys/arm64/include/ifunc.h
34

_size is unsigned long in the ABI spec. Do you want me to deviate from that for this definition?

41

Again, this is 1ULL in the ABI spec.

sys/arm64/include/ifunc.h
34

Hm, ok

41

That's a strange spec. Presumably that was done for ILP32, but that doesn't make any sense with auxargs and __ifunc_arg_t members being unsigned long. But ok, if that's the nonsense it says then we go with that...