about summary refs log tree commit diff
path: root/sysdeps
diff options
context:
space:
mode:
authorKyle McMartin <kmcmarti@redhat.com>2014-05-26 12:33:22 +0530
committerSiddhesh Poyarekar <siddhesh@redhat.com>2014-05-26 12:37:19 +0530
commit75f11331f98ebf3873e887a683add944a1aec0fd (patch)
treebb6dc563bd6071ee2f9f325f39f6df37e6be8a5b /sysdeps
parentc3ec475c5dd16499aa040908e11d382c3ded9692 (diff)
downloadglibc-75f11331f98ebf3873e887a683add944a1aec0fd.tar.gz
glibc-75f11331f98ebf3873e887a683add944a1aec0fd.tar.xz
glibc-75f11331f98ebf3873e887a683add944a1aec0fd.zip
[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.
Diffstat (limited to 'sysdeps')
-rw-r--r--sysdeps/aarch64/nptl/tls.h4
1 files changed, 2 insertions, 2 deletions
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.  */