This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: PATCH: Add x32 support to tcbhead_t


> -# 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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]