https://sourceware.org/bugzilla/show_bug.cgi?id=13671
--- Comment #30 from Rainer Orth <ro at gcc dot gnu.org> ---
(In reply to H.J. Lu from comment #28)
> (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)
Ah, I misunderstood. Patch updated.
> > /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.
I don't think so. On the contrary, I'd expect an assertion
BFD_ASSERT (r_type == R_386_TLS_LE_32)'
to trigger on Solaris with a patch whose primary purpose is to avoid the
emission
of R_386_TLS_LE_32. I've adjusted the assertion to
BFD_ASSERT (r_type == expected_tls_le);
and now (with ld-i386/tls.exp enabled on Solaris), all those tests PASS there
and still do on Linux/i686.
--
You are receiving this mail because:
You are on the CC list for the bug.