PATCH: Add x32 support to tcbhead_t

Roland McGrath roland@hack.frob.com
Tue May 15 02:37:00 GMT 2012


> -# if __WORDSIZE == 64
>    int rtld_must_xmm_save;
> -# endif
>    /* Reservation of some values for the TM ABI.  */
>    void *__private_tm[5];
> -# if __WORDSIZE == 64
>    long int __unused2;
>    /* Have space for the post-AVX register size.  */
> -  __m128 rtld_savespace_sse[8][4];
> +  __m128 rtld_savespace_sse[8][4] __attribute__((aligned(32)));

Space between 'aligned' and paren.

>    void *__padding[8];

With the space nit this change is OK.  

But while we're here, does anyone know why we have __private_tm, __unused2,
and __padding fields here at all??

This is a private internal structure, not part of the real ABI.  (Unless
I'm confused, it's only part of the GLIBC_PRIVATE ABI between libc and
libpthread.)  Only the first word is part of the TLS ABI, so why do we have
all these apparent attempts at future-proofing in the rest of the
structure?


Thanks,
Roland



More information about the Libc-alpha mailing list