[PATCH] powerpc: New feature - HWCAP/HWCAP2 bits in the TCB
Rich Felker
dalias@libc.org
Mon Jul 6 02:13:00 GMT 2015
On Sun, Jul 05, 2015 at 08:16:44PM -0500, Steven Munroe wrote:
> > I've suggested to Carlos that this is a problem with the use of the
> > TCB. If one uses the TCB, one should add a dummy symbol that is versioned
> > and tracks when you added the feature, and thus you can depend upon it,
> > but not call it, and that way you get the right versioning. The same
> > problem happened with stack canaries and it's still painfully annoying
> > at the distribution level.
>
> This is completely unnecessary. The load associated with
> __builtin_cpu_supports() will work with any GLIBC what support TLS and
> the worst that will happen is it will load zeros.
That's bad enough -- there are applications of hwcap where you NEED
the correct value, not some (possibly empty) subset of the bits. For
example if you need to know which registers to save/restore in an aync
context-switching setup (rolling your own makecontext/swapcontext) or
if you're implementing a function which has a special calling
convention with a contract not to clobber any but a small fixed set of
registers, but it might callback to arbitrary code in a rare case (ala
__tls_get_addr or tls descriptor functions).
However I don't even see how you can be confident that you'll read
zeros. Is the TCB field before this new field you're adding
always-zero?
Rich
More information about the Libc-alpha
mailing list