From 75f11331f98ebf3873e887a683add944a1aec0fd Mon Sep 17 00:00:00 2001 From: Kyle McMartin Date: Mon, 26 May 2014 12:33:22 +0530 Subject: [PATCH] [AARCH64] correct alignment of TLS_TCB_ALIGN (BZ #16796) 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 | 6 ++++++ NEWS | 8 ++++---- sysdeps/aarch64/nptl/tls.h | 4 ++-- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index 99d6223133..0adb1a9f0a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2014-05-26 Kyle McMartin + + [BZ #16796] + * sysdeps/aarch64/nptl/tls.h: increase TCB alignment to the + alignment of struct pthread. + 2014-05-26 Siddhesh Poyarekar [BZ #16878] diff --git a/NEWS b/NEWS index eaf0bc0331..35914ea09a 100644 --- 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. diff --git a/sysdeps/aarch64/nptl/tls.h b/sysdeps/aarch64/nptl/tls.h index ae2e6c4fae..8b260a1c69 100644 --- a/sysdeps/aarch64/nptl/tls.h +++ b/sysdeps/aarch64/nptl/tls.h @@ -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. */