Fix x86-64 TCB alignment for future processor versions.

This commit is contained in:
Ulrich Drepper 2009-07-29 09:01:04 -07:00
parent 649bf13320
commit 586fa886ad
3 changed files with 14 additions and 6 deletions

View File

@ -1,7 +1,6 @@
2009-07-29 Ulrich Drepper <drepper@redhat.com> 2009-07-29 Ulrich Drepper <drepper@redhat.com>
* sysdeps/x86_64/dl-trampoline.S (_dl_runtime_profile): Improve CFI * sysdeps/x86_64/dl-trampoline.S (_dl_runtime_profile): Improve CFI.
information.
2009-07-28 H.J. Lu <hongjiu.lu@intel.com> 2009-07-28 H.J. Lu <hongjiu.lu@intel.com>

View File

@ -1,9 +1,13 @@
2009-07-29 Ulrich Drepper <drepper@redhat.com> 2009-07-29 Ulrich Drepper <drepper@redhat.com>
* sysdeps/x86_64/tls.h (TLS_TCB_ALIGN): Define explicitly to 32.
* sysdeps/x86_64/tls.h (tcbhead_t): Add room for SSE registers the * sysdeps/x86_64/tls.h (tcbhead_t): Add room for SSE registers the
dynamic linker might have to save. Define RTLD_CHECK_FOREIGN_CALL, dynamic linker might have to save.
RTLD_ENABLE_FOREIGN_CALL, RTLD_PREPARE_FOREIGN_CALL, and Define RTLD_CHECK_FOREIGN_CALL, RTLD_ENABLE_FOREIGN_CALL,
RTLD_FINALIZE_FOREIGN_CALL. Pretty printing. RTLD_PREPARE_FOREIGN_CALL, and RTLD_FINALIZE_FOREIGN_CALL. Pretty
printing.
* sysdeps/x86_64/tcb-offsets.sym: Add RTLD_SAVESPACE_SSE. * sysdeps/x86_64/tcb-offsets.sym: Add RTLD_SAVESPACE_SSE.
2009-07-28 Ulrich Drepper <drepper@redhat.com> 2009-07-28 Ulrich Drepper <drepper@redhat.com>

View File

@ -117,7 +117,12 @@ typedef struct
# define TLS_TCB_SIZE sizeof (struct pthread) # define TLS_TCB_SIZE sizeof (struct pthread)
/* Alignment requirements for the TCB. */ /* Alignment requirements for the TCB. */
# define TLS_TCB_ALIGN __alignof__ (struct pthread) //# define TLS_TCB_ALIGN __alignof__ (struct pthread)
// Normally the above would be correct But we have to store post-AVX
// vector registers in the TCB and we want the storage to be aligned.
// unfortunately there isn't yet a type for these values and hence no
// 32-byte alignment requirement. Make this explicit, for now.
# define TLS_TCB_ALIGN 32
/* The TCB can have any size and the memory following the address the /* The TCB can have any size and the memory following the address the
thread pointer points to is unspecified. Allocate the TCB there. */ thread pointer points to is unspecified. Allocate the TCB there. */