[AARCH64] correct alignment of TLS_TCB_ALIGN (BZ #16796)
authorKyle McMartin <kmcmarti@redhat.com>
Mon, 26 May 2014 07:03:22 +0000 (12:33 +0530)
committerSiddhesh Poyarekar <siddhesh@redhat.com>
Mon, 26 May 2014 07:07:19 +0000 (12:37 +0530)
This fixes a variety of testsuite failures for me:
tststatic.out Error 1
tststatic2.out Error 1
tst-tls9-static.out Error 1
tst-audit8.out Error 127
tst-audit9.out Error 127
tst-audit1.out Error 127
and also has the added benefit of making LD_AUDIT/sotruss work on
AArch64.

Otherwise, we bail out early in _dl_try_allocate_static_tls as the
alignment requirement of the PT_TLS section in libc is 16.

ChangeLog
NEWS
sysdeps/aarch64/nptl/tls.h

index 99d6223..0adb1a9 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2014-05-26  Kyle McMartin  <kyle@redhat.com>
+
+       [BZ #16796]
+       * sysdeps/aarch64/nptl/tls.h: increase TCB alignment to the
+       alignment of struct pthread.
+
 2014-05-26  Siddhesh Poyarekar  <siddhesh@redhat.com>
 
        [BZ #16878]
diff --git a/NEWS b/NEWS
index eaf0bc0..35914ea 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -15,10 +15,10 @@ Version 2.20
   16613, 16619, 16623, 16629, 16632, 16634, 16639, 16642, 16648, 16649,
   16670, 16674, 16677, 16680, 16683, 16689, 16695, 16701, 16706, 16707,
   16712, 16713, 16714, 16731, 16739, 16740, 16743, 16754, 16758, 16759,
-  16760, 16770, 16786, 16789, 16791, 16799, 16800, 16815, 16823, 16824,
-  16831, 16838, 16849, 16854, 16876, 16877, 16878, 16885, 16888, 16890,
-  16912, 16915, 16916, 16917, 16922, 16927, 16928, 16932, 16943, 16958,
-  16966, 16967, 16965, 16977, 16978.
+  16760, 16770, 16786, 16789, 16791, 16796, 16799, 16800, 16815, 16823,
+  16824, 16831, 16838, 16849, 16854, 16876, 16877, 16878, 16885, 16888,
+  16890, 16912, 16915, 16916, 16917, 16922, 16927, 16928, 16932, 16943,
+  16958, 16966, 16967, 16965, 16977, 16978.
 
 * The minimum Linux kernel version that this version of the GNU C Library
   can be used with is 2.6.32.
index ae2e6c4..8b260a1 100644 (file)
@@ -63,7 +63,7 @@ typedef struct
 # define TLS_INIT_TCB_SIZE     sizeof (tcbhead_t)
 
 /* Alignment requirements for the initial TCB.  */
-# define TLS_INIT_TCB_ALIGN    __alignof__ (tcbhead_t)
+# define TLS_INIT_TCB_ALIGN    __alignof__ (struct pthread)
 
 /* This is the size of the TCB.  */
 # define TLS_TCB_SIZE          sizeof (tcbhead_t)
@@ -72,7 +72,7 @@ typedef struct
 # define TLS_PRE_TCB_SIZE      sizeof (struct pthread)
 
 /* Alignment requirements for the TCB.  */
-# define TLS_TCB_ALIGN         __alignof__ (tcbhead_t)
+# define TLS_TCB_ALIGN         __alignof__ (struct pthread)
 
 /* Install the dtv pointer.  The pointer passed is to the element with
    index -1 which contain the length.  */