http://sourceware.org/bugzilla/show_bug.cgi?id=14940
Bug #: 14940 Summary: -pie issues with TLS relocations Product: binutils Version: unspecified Status: NEW Severity: normal Priority: P2 Component: ld AssignedTo: unassig...@sourceware.org ReportedBy: ja...@redhat.com CC: bug-binutils@gnu.org, drepper....@gmail.com, hjl.to...@gmail.com Depends on: 6443 Classification: Unclassified +++ This bug was initially created as a clone of Bug #6443 +++ __thread int a; __thread int b __attribute((tls_model ("local-exec"))); __thread int c __attribute((tls_model ("initial-exec"))); __thread int d __attribute((tls_model ("local-dynamic"))); __thread int e __attribute((tls_model ("global-dynamic"))); int main (void) { return a + b + c + d + e; } compiled/linked with -O2 -pie -fpie on various arches either doesn't link at all, or makes completely unnecessarily a DT_TEXTREL PIE. Tried x86_64, i386, ppc, ppc64. For the TLS transitions and relocations, PIEs should be handled like other executables, so many info->shared checks need to be replaced with !info->executable. For the TLS relocations, even when the executable is position independent, the offsets within the PIE's TLS block are known at link time and so relocations like R_X86_64_TPOFF32 can be relocated fully at link time. While this is now fixed on i?86/x86_64 and perhaps ppc/ppc64, it isn't fixed on s390/s390x. See https://bugzilla.redhat.com/show_bug.cgi?id=872148 -- Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. _______________________________________________ bug-binutils mailing list bug-binutils@gnu.org https://lists.gnu.org/mailman/listinfo/bug-binutils