aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorH.J. Lu <hongjiu.lu@intel.com>2010-10-13 22:12:03 -0400
committerUlrich Drepper <drepper@gmail.com>2010-10-13 22:12:03 -0400
commitf90681487d90a6eea8f1c60021bc8dd83313c59b (patch)
tree79e5d816abda65fc72f4a163e552bdac4580deb6
parentb833d51fbbf78b38c6ff68074c22d3fe3ddd0ce3 (diff)
downloadglibc-f90681487d90a6eea8f1c60021bc8dd83313c59b.tar
glibc-f90681487d90a6eea8f1c60021bc8dd83313c59b.tar.gz
glibc-f90681487d90a6eea8f1c60021bc8dd83313c59b.tar.bz2
glibc-f90681487d90a6eea8f1c60021bc8dd83313c59b.zip
Fix alignment of AVX safe area on x86-64.
-rw-r--r--NEWS5
-rw-r--r--nptl/ChangeLog7
-rw-r--r--nptl/sysdeps/x86_64/pthreaddef.h5
-rw-r--r--nptl/sysdeps/x86_64/tls.h7
4 files changed, 14 insertions, 10 deletions
diff --git a/NEWS b/NEWS
index bd0f21c451..48efcbd52e 100644
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,4 @@
-GNU C Library NEWS -- history of user-visible changes. 2010-10-11
+GNU C Library NEWS -- history of user-visible changes. 2010-10-13
Copyright (C) 1992-2009, 2010 Free Software Foundation, Inc.
See the end for copying conditions.
@@ -10,7 +10,8 @@ Version 2.13
* The following bugs are resolved with this release:
3268, 7066, 10851, 11611, 11640, 11701, 11840, 11856, 11883, 11903, 11904,
- 11968, 11979, 12005, 12037, 12067, 12077, 12078, 12092, 12093, 12107, 12108
+ 11968, 11979, 12005, 12037, 12067, 12077, 12078, 12092, 12093, 12107, 12108,
+ 12113
* New Linux interfaces: prlimit, prlimit64, fanotify_init, fanotify_mark
diff --git a/nptl/ChangeLog b/nptl/ChangeLog
index dcb94b2200..e3bfd0000b 100644
--- a/nptl/ChangeLog
+++ b/nptl/ChangeLog
@@ -1,3 +1,10 @@
+2010-10-13 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #12113]
+ * sysdeps/x86_64/pthreaddef.h (TCB_ALIGNMENT): Changed to 32.
+ * sysdeps/x86_64/tls.h (TLS_TCB_ALIGN): Defined with alignment
+ of "struct pthread".
+
2010-09-21 Andreas Schwab <schwab@redhat.com>
* sysdeps/pthread/pthread.h (pthread_cleanup_push)
diff --git a/nptl/sysdeps/x86_64/pthreaddef.h b/nptl/sysdeps/x86_64/pthreaddef.h
index be63a8c74a..8ec135c048 100644
--- a/nptl/sysdeps/x86_64/pthreaddef.h
+++ b/nptl/sysdeps/x86_64/pthreaddef.h
@@ -27,8 +27,9 @@
/* Minimal stack size after allocating thread descriptor and guard size. */
#define MINIMAL_REST_STACK 2048
-/* Alignment requirement for TCB. */
-#define TCB_ALIGNMENT 16
+/* Alignment requirement for TCB. Need to store post-AVX vector registers
+ in the TCB and we want the storage to be aligned at 32-byte. */
+#define TCB_ALIGNMENT 32
/* Location of current stack frame. The frame pointer is not usable. */
diff --git a/nptl/sysdeps/x86_64/tls.h b/nptl/sysdeps/x86_64/tls.h
index e39eb5f69d..41b5e6daa2 100644
--- a/nptl/sysdeps/x86_64/tls.h
+++ b/nptl/sysdeps/x86_64/tls.h
@@ -117,12 +117,7 @@ typedef struct
# define TLS_TCB_SIZE sizeof (struct pthread)
/* Alignment requirements for the TCB. */
-//# 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
+# define TLS_TCB_ALIGN __alignof__ (struct pthread)
/* The TCB can have any size and the memory following the address the
thread pointer points to is unspecified. Allocate the TCB there. */