This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH][AARCH64] correct alignment of TLS_TCB_ALIGN
- From: Andrew Pinski <pinskia at gmail dot com>
- To: Kyle McMartin <kmcmarti at redhat dot com>
- Cc: GNU C Library <libc-alpha at sourceware dot org>
- Date: Mon, 12 May 2014 11:27:03 -0700
- Subject: Re: [PATCH][AARCH64] correct alignment of TLS_TCB_ALIGN
- Authentication-results: sourceware.org; auth=none
- References: <20140512174746 dot GE21081 at redacted dot bos dot redhat dot com>
On Mon, May 12, 2014 at 10:47 AM, Kyle McMartin <kmcmarti@redhat.com> wrote:
> 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.
This is already https://sourceware.org/bugzilla/show_bug.cgi?id=16796 .
It is also the same patch which I had came up when I was working on
ILP32 changes.
Thanks,
Andrew
>
> 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. */