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 libc/16214] New: Some TLS test cases fail on s390x with -march=z10


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

            Bug ID: 16214
           Summary: Some TLS test cases fail on s390x with -march=z10
           Product: glibc
           Version: 2.18
            Status: NEW
          Severity: normal
          Priority: P2
         Component: libc
          Assignee: siddhesh at redhat dot com
          Reporter: siddhesh at redhat dot com
                CC: drepper.fsp at gmail dot com

-march=z10 eliminates GOT pointer loads for static variables whenever it can,
which exposes a bug in the TLS implementation in s390x.  The TLS implementation
assumes that the compiler will load the GOT pointer (%r12) and implements
__tls_get_offset with that assumption.  This however is true only in cases
where the compiler sets up TLS for a __thread.  For cases where we call
TLS_GET_ADDR directly (like in dl-sym.c and in some test cases), we have to
explicitly ensure that %r12 is set up.

How Reproducible:

Always

Steps to Reproduce:

1. Compile glibc --with-cpu=z10 with gcc built for --with-cpu=z10.
2. Run TLS test cases with `make subdirs=elf check`

Patch coming up.

-- 
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]