https://sourceware.org/bugzilla/show_bug.cgi?id=22721
Bug ID: 22721 Summary: [2.30, 2.31 regression] Solaris/x86 TLS transition failures with linker plugin Product: binutils Version: 2.31 (HEAD) Status: NEW Severity: normal Priority: P2 Component: ld Assignee: unassigned at sourceware dot org Reporter: ro at gcc dot gnu.org CC: hjl.tools at gmail dot com Target Milestone: --- Host: i386-pc-solaris2.11 Target: i386-pc-solaris2.11 Build: i386-pc-solaris2.11 When I recently tried a gcc mainline bootstrap on Solaris 11/x86 with gas and gld from the binutils 2.30 branch, I found a couple of gcc testsuite regressions: UNRESOLVED: gcc.dg/lto/20090210 c_lto_20090210_0.o-c_lto_20090210_1.o execute -O0 -flto -flto-partition=none -fuse-linker-plugin UNRESOLVED: gcc.dg/lto/20090210 c_lto_20090210_0.o-c_lto_20090210_1.o execute -O0 -flto -fuse-linker-plugin -fno-fat-lto-objects UNRESOLVED: gcc.dg/lto/20090210 c_lto_20090210_0.o-c_lto_20090210_1.o execute -O2 -flto -flto-partition=none -fuse-linker-plugin -fno-fat-lto-objects UNRESOLVED: gcc.dg/lto/20090210 c_lto_20090210_0.o-c_lto_20090210_1.o execute -O2 -flto -fuse-linker-plugin FAIL: gcc.dg/lto/20090210 c_lto_20090210_0.o-c_lto_20090210_1.o link, -O0 -flto -flto-partition=none -fuse-linker-plugin FAIL: gcc.dg/lto/20090210 c_lto_20090210_0.o-c_lto_20090210_1.o link, -O0 -flto -fuse-linker-plugin -fno-fat-lto-objects FAIL: gcc.dg/lto/20090210 c_lto_20090210_0.o-c_lto_20090210_1.o link, -O2 -flto -flto-partition=none -fuse-linker-plugin -fno-fat-lto-objects FAIL: gcc.dg/lto/20090210 c_lto_20090210_0.o-c_lto_20090210_1.o link, -O2 -flto -fuse-linker-plugin FAIL: gcc.dg/torture/tls/run-gd.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects (test for excess errors) WARNING: gcc.dg/torture/tls/run-gd.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects compilation failed to produce executable FAIL: gcc.dg/torture/tls/run-ld.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects (test for excess errors) WARNING: gcc.dg/torture/tls/run-ld.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects compilation failed to produce executable both for 32 and 64-bit. The regression is present on binutils mainline, too. E.g. for the run-gd.c test, the link fails with /vol/gcc/bin/gld-2.29.90: /var/tmp//ccDiJVLa.ltrans0.ltrans.o: TLS transition from R_386_TLS_GD to R_386_TLS_IE_32 against `tls_gd' at 0x15 in section `.text.startup' failed /vol/gcc/bin/gld-2.29.90: final link failed: Nonrepresentable section on output Since this only happens with -fuse-linker-plugin, I'm a bit at a loss how to produce a standalone testcase. A reghunt identified this patch as the culprit: The first bad revision is: changeset: 91181:891260873d9a user: H.J. Lu <hjl.to...@gmail.com> date: Sun Aug 06 08:40:56 2017 -0700 summary: x86: Lookup __tls_get_addr or ___tls_get_addr once Rainer -- 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