[PATCH] powerpc: New feature - HWCAP/HWCAP2 bits in the TCB
Szabolcs Nagy
szabolcs.nagy@arm.com
Tue Jun 9 16:02:00 GMT 2015
On 09/06/15 16:06, Steven Munroe wrote:
> On Tue, 2015-06-09 at 15:47 +0100, Szabolcs Nagy wrote:
>> i assume this is for multi-versioning.
>
> The intent is for the compiler to implement the equivalent of
> __builtin_cpu_supports("feature"). X86 has the cpuid instruction, POWER
> is RISC so we use the HWCAP. The trick to access the HWCAP[2]
> efficiently as getauxv and scanning the auxv is too slow for inline
> optimizations.
i think getauxv is not usable by the compiler anyway,
it's not a standard api.
>> i dont see how the compiler can generate code to access the
>> hwcap bits currently (without making assumptions about libc
>> interfaces).
>>
> These offset will become a durable part the PowerPC 64-bit ELF V2 ABI.
>
> The TCB offsets are already fixed and can not change from release to
> release.
hard coded arch specific tcb offsets make sure that
targets need different tcb layout which means more
target specific maintainance instead of common c code.
>> if hwcap is useful abi between compiler and libc
>> then why is this done in a powerpc specific way?
>
> Other platform are free use this technique.
i think this is not a sustainable approach for
compiler abi extensions.
(it means juggling with magic offsets on the order
of compilers * libcs * targets).
unfortunately accessing the ssp canary is already
broken this way, i'm not sure what's a better abi,
but it's probably worth thinking about one before
the tcb code gets too messy.
More information about the Libc-alpha
mailing list