https://sourceware.org/bugzilla/show_bug.cgi?id=13671
--- Comment #28 from H.J. Lu <hjl.tools at gmail dot com> --- (In reply to Rainer Orth from comment #27) > Created attachment 14577 [details] > Augmented patch, incorporating review comments expected_tls_le should be unsigned int. The check will be if (r_type_tls == expected_tls_le) > Like so? I wonder if it would be possible to move the declaration of > expected_tls_le to its use. Given that binutils now requires C99, that would > certainly be clearer, but differ in style from the rest of the file. > > Tested on i386-pc-solaris2.11 and i686-pc-linux-gnu as well as a full > all-languages > gcc bootstrap. > > As an additional experiment, I've enabled ld-i386/tls.exp on Solaris/x86. > Before > this patch, only two tests FAIL: > > FAIL: TLS GD/LD -> IE transition without PLT > FAIL: TLS GD/LD -> IE transition without PLT (-z now) > > The error is the expected > > Running: tmpdir/tls-1d > tmpdir/tls-1d.out > ld.so.1: tls-1d: fatal: relocation error: R_386_UNKNOWN37: file > tmpdir/tls-1d: symbol gd: offset size (0 bytes) is not supported > > With the patch, those two tests continue to FAIL. However, the error is > different: > > /var/gcc/binutils/i386/obj/binutils-2.40-branch-local/ld/tmpdir/ld/collect- > ld: warning: /usr/lib/crtn.o: missing .note.GNU-stack section implies > executable stack > /var/gcc/binutils/i386/obj/binutils-2.40-branch-local/ld/tmpdir/ld/collect- > ld: NOTE: This behaviour is deprecated and will be removed in a future > version of the linker > /var/gcc/binutils/i386/obj/binutils-2.40-branch-local/ld/tmpdir/ld/collect- > ld: BFD (GNU Binutils) 2.39.90.20230111 assertion fail > /vol/src/gnu/binutils/hg/binutils-2.40-branch/local/bfd/elf32-i386.c:3377 > /var/gcc/binutils/i386/obj/binutils-2.40-branch-local/ld/tmpdir/ld/collect- > ld: BFD (GNU Binutils) 2.39.90.20230111 assertion fail > /vol/src/gnu/binutils/hg/binutils-2.40-branch/local/bfd/elf32-i386.c:3377 > /var/gcc/binutils/i386/obj/binutils-2.40-branch-local/ld/tmpdir/ld/collect- > ld: BFD (GNU Binutils) 2.39.90.20230111 assertion fail > /vol/src/gnu/binutils/hg/binutils-2.40-branch/local/bfd/elf32-i386.c:3377 > collect2: error: ld returned 1 exit status > > On top of that, there are four new failures > > +FAIL: TLS GD/LD -> LE transition without PLT (dynamic) > +FAIL: TLS GD/LD -> LE transition without PLT (dynamic, -z now) > +FAIL: TLS GD/LD -> LE transition without PLT (PIE) > +FAIL: TLS GD/LD -> LE transition without PLT (PIE, -z now) > > which show the same error. So TLS doesn't work for Solaris. -- You are receiving this mail because: You are on the CC list for the bug.