diff options
author | Ulrich Drepper <drepper@redhat.com> | 2009-07-29 09:01:04 -0700 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2009-07-29 09:01:04 -0700 |
commit | 586fa886ad1473759cddf897691fd3c63a6d2360 (patch) | |
tree | cdf7ee2bdd0e4276d16c5feec9fed0a5dc9e783f | |
parent | 649bf1332071954cbae3e9159708aea1b7c9ae31 (diff) | |
download | glibc-586fa886ad1473759cddf897691fd3c63a6d2360.zip glibc-586fa886ad1473759cddf897691fd3c63a6d2360.tar.gz glibc-586fa886ad1473759cddf897691fd3c63a6d2360.tar.bz2 |
Fix x86-64 TCB alignment for future processor versions.
-rw-r--r-- | ChangeLog | 3 | ||||
-rw-r--r-- | nptl/ChangeLog | 10 | ||||
-rw-r--r-- | nptl/sysdeps/x86_64/tls.h | 7 |
3 files changed, 14 insertions, 6 deletions
@@ -1,7 +1,6 @@ 2009-07-29 Ulrich Drepper <drepper@redhat.com> - * sysdeps/x86_64/dl-trampoline.S (_dl_runtime_profile): Improve CFI - information. + * sysdeps/x86_64/dl-trampoline.S (_dl_runtime_profile): Improve CFI. 2009-07-28 H.J. Lu <hongjiu.lu@intel.com> diff --git a/nptl/ChangeLog b/nptl/ChangeLog index 24fd28a..20031b5 100644 --- a/nptl/ChangeLog +++ b/nptl/ChangeLog @@ -1,9 +1,13 @@ 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 - dynamic linker might have to save. Define RTLD_CHECK_FOREIGN_CALL, - RTLD_ENABLE_FOREIGN_CALL, RTLD_PREPARE_FOREIGN_CALL, and - RTLD_FINALIZE_FOREIGN_CALL. Pretty printing. + dynamic linker might have to save. + Define RTLD_CHECK_FOREIGN_CALL, RTLD_ENABLE_FOREIGN_CALL, + RTLD_PREPARE_FOREIGN_CALL, and RTLD_FINALIZE_FOREIGN_CALL. Pretty + printing. + * sysdeps/x86_64/tcb-offsets.sym: Add RTLD_SAVESPACE_SSE. 2009-07-28 Ulrich Drepper <drepper@redhat.com> diff --git a/nptl/sysdeps/x86_64/tls.h b/nptl/sysdeps/x86_64/tls.h index a51b770..4212038 100644 --- a/nptl/sysdeps/x86_64/tls.h +++ b/nptl/sysdeps/x86_64/tls.h @@ -117,7 +117,12 @@ typedef struct # define TLS_TCB_SIZE sizeof (struct pthread) /* 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 thread pointer points to is unspecified. Allocate the TCB there. */ |