bug-binutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug ld/13671] gld creates i386 relocations not supported by Solaris ld.


From: ro at gcc dot gnu.org
Subject: [Bug ld/13671] gld creates i386 relocations not supported by Solaris ld.so.1
Date: Fri, 13 Jan 2023 12:27:44 +0000

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.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]