This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
[PATCH][AARCH64] correct alignment of TLS_TCB_ALIGN
- From: Kyle McMartin <kmcmarti at redhat dot com>
- To: libc-alpha at sourceware dot org
- Date: Mon, 12 May 2014 13:47:46 -0400
- Subject: [PATCH][AARCH64] correct alignment of TLS_TCB_ALIGN
- Authentication-results: sourceware.org; auth=none
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.
2014-05-12 Kyle McMartin <kyle@redhat.com>
* sysdeps/aarch64/nptl/tls.h: increase TCB alignment to the alignment
of struct pthread.
--- 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. */