[COMMITTED PATCH] BZ#18383: Add test case for large alignment in TLS blocks.
Roland McGrath
roland@hack.frob.com
Wed Jun 10 00:13:00 GMT 2015
> [BZ #18383]
> * csu/libc-tls.c (__libc_setup_tls): Align TCB offset to the
> maximum alignment for TLS_TCB_AT_TP targets.
* csu/libc-tls.c (__libc_setup_tls) [TLS_TCB_AT_TP]:
Align TCB_OFFSET to MAX_ALIGN, not just TCBALIGN. Add comment.
> @@ -138,7 +138,9 @@ __libc_setup_tls (size_t tcbsize, size_t tcbalign)
> to request some surplus that permits dynamic loading of modules with
> IE-model TLS. */
> #if TLS_TCB_AT_TP
> - tcb_offset = roundup (memsz + GL(dl_tls_static_size), tcbalign);
> + /* Align the TCB offset to the maximum alignment, similar to what
> + _dl_allocate_tls_storage in elf/dl-tls.c does. */
> + tcb_offset = roundup (memsz + GL(dl_tls_static_size), max_align);
This would be yet more clear if it said:
/* Align the TCB offset to the maximum alignment, as
_dl_allocate_tls_storage (in elf/dl-tls.c) does using __libc_memalign
and dl_tls_static_align. */
The patch should also remove the XFAIL for tst-align-extern-static
and update the comment on the XFAILs for tst-tlsalign{,-static}
not to say that x86 is broken.
OK with those details.
Thanks,
Roland
More information about the Libc-alpha
mailing list