This is the mail archive of the glibc-bugs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug nptl/23403] Wrong alignment of TLS variables


https://sourceware.org/bugzilla/show_bug.cgi?id=23403

--- Comment #4 from cvs-commit at gcc dot gnu.org <cvs-commit at gcc dot gnu.org> ---
The release/2.28/master branch has been updated by DJ Delorie
<dj@sourceware.org>:

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=cedb3e47c68d319607736a820da2d5b3b8ddff6f

commit cedb3e47c68d319607736a820da2d5b3b8ddff6f
Author: Stefan Liebler <stli@linux.ibm.com>
Date:   Wed Feb 6 09:06:34 2019 +0100

    Fix alignment of TLS variables for tls variant TLS_TCB_AT_TP [BZ #23403]

    The alignment of TLS variables is wrong if accessed from within a thread
    for architectures with tls variant TLS_TCB_AT_TP.
    For the main thread the static tls data is properly aligned.
    For other threads the alignment depends on the alignment of the thread
    pointer as the static tls data is located relative to this pointer.

    This patch adds this alignment for TLS_TCB_AT_TP variants in the same way
    as it is already done for TLS_DTV_AT_TP. The thread pointer is also already
    properly aligned if the user provides its own stack for the new thread.

    This patch extends the testcase nptl/tst-tls1.c in order to check the
    alignment of the tls variables and it adds a pthread_create invocation
    with a user provided stack.
    The test itself is migrated from test-skeleton.c to test-driver.c
    and the missing support functions xpthread_attr_setstack and
xposix_memalign
    are added.

    ChangeLog:

        [BZ #23403]
        * nptl/allocatestack.c (allocate_stack): Align pointer pd for
        TLS_TCB_AT_TP tls variant.
        * nptl/tst-tls1.c: Migrate to support/test-driver.c.
        Add alignment checks.
        * support/Makefile (libsupport-routines): Add xposix_memalign and
        xpthread_setstack.
        * support/support.h: Add xposix_memalign.
        * support/xthread.h: Add xpthread_attr_setstack.
        * support/xposix_memalign.c: New File.
        * support/xpthread_attr_setstack.c: Likewise.

    (cherry picked from commit bc79db3fd487daea36e7c130f943cfb9826a41b4)

-- 
You are receiving this mail because:
You are on the CC list for the bug.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]