linux: use auxv for CPU detection
With the notable exception of x86, CPU capabilities on Linux are passed in auxv, which is readily accessible with the proprietary getauxval()
function call. This ensures that we agree with the kernel on the supported features (and avoid depending on /proc
).
Fixes #26638 (closed)
Note: x86 does pass some capabilities that way too. But glibc support on x86 is lacking, and there are too many capabilities to fit in the AT_HWCAP
field.
Edited by Rémi Denis-Courmont