getauxv and ARMv7 platform detection
Jeffrey Walton
noloader@gmail.com
Tue May 21 02:52:00 GMT 2019
Hi Everyone,
I just noticed the following code was failing on ARMv7 platforms:
// For older machines, like GCC 4.3 on ARMv6
#ifndef HWCAP_ARMv7
# define HWCAP_ARMv7 (1 << 29)
#endif
inline bool CPU_QueryARMv7()
{
if (getauxval(AT_HWCAP) & HWCAP_ARMv7) != 0)
return true;
return false;
}
Looking through Torvalds GitHub [1] I don't see a reliable define for
HWCAP_ARMv7 in hwcap.h.
I know I can fallback to NEON, but that misses earlier devices that
are ARMv7 but lacks NEON.
Searching is turning up a lot of spurious noise (for Aarch64/ARMv8),
and one hit for Mozilla working around the same problem [2].
My question is, how do we use getauxval to detect ARMv7 platforms?
Thanks in advance.
[1] https://github.com/torvalds/linux/blob/master/arch/arm/include/uapi/asm/hwcap.h
[2] https://hg.mozilla.org/releases/mozilla-aurora/rev/522951ff7046fd2bdf3916c973fbfde27be0af31
More information about the Libc-help
mailing list