bug-binutils
[Top][All Lists]
Advanced

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

[Bug ld/22721] [2.30, 2.31 regression] Solaris/x86 TLS transition failur


From: ro at CeBiTec dot Uni-Bielefeld.DE
Subject: [Bug ld/22721] [2.30, 2.31 regression] Solaris/x86 TLS transition failures with linker plugin
Date: Thu, 18 Jan 2018 13:40:22 +0000

https://sourceware.org/bugzilla/show_bug.cgi?id=22721

--- Comment #2 from Rainer Orth <ro at CeBiTec dot Uni-Bielefeld.DE> ---
> --- Comment #1 from H.J. Lu <hjl.tools at gmail dot com> ---
> A couple questions:
>
> 1. Do all tests under ld/testsuite/ld-i386 pass on Solaris?

No, but that's a preexisting condition:

FAIL: Build libno-plt-1b.so
FAIL: No PLT (dynamic 1a)
FAIL: No PLT (dynamic 1b)
FAIL: No PLT (dynamic 1c)
FAIL: No PLT (static 1d)
FAIL: No PLT (PIE 1e)
FAIL: No PLT (PIE 1f)
FAIL: No PLT (PIE 1g)
FAIL: No PLT (static 1j)
FAIL: No PLT (static 1d)
FAIL: No PLT (static 1j)

The static tests fail because there are no libc.a and libm.a on Solaris,
so full-static linking just isn't possible.  Testing static linking when
the platform doesn't support it is a testsuite bug. 

All other failures follow the same pattern:

regexp_diff match failure
regexp "^ +[a-f0-9]+:   8b 80 ([0-9a-f]{2} ){4}[        ]+mov
+-0x[a-f0-9]+\(%eax\),%eax$"
line   " 52a:   8b 80 10 00 00 00       mov    0x10(%eax),%eax"
regexp_diff match failure
regexp "^ +[a-f0-9]+:   ff a0 ([0-9a-f]{2} ){4}[        ]+jmp
+\*-0x[0-9a-f]+\(%eax\)$"
line   " 54a:   ff a0 10 00 00 00       jmp    *0x10(%eax)"
FAIL: Build libno-plt-1b.so

where i686-pc-linux-gnu has

 48a:   8b 80 f8 ff ff ff       mov    -0x8(%eax),%eax

 4aa:   ff a0 f8 ff ff ff       jmp    *-0x8(%eax)

Maybe an -fno-omit-frame-pointer thing?

The tls.exp tests there are only run on Linux/x86 at the moment.

> 2. Does Solaris use the same TLS code sequences as Linux?

Mostly.  See HAVE_AS_IX86_TLSGDPLT and HAVE_AS_IX86_TLSLDMPLT in gcc's
i386.md.  They are only used if both assembler and linker support those
relocs, which means when using as and ld only, so they are not relevant
to this bug.

For full documentation, see
https://docs.oracle.com/cd/E53394_01/html/E54813/chapter8-1.html#scrolltoc

> 3. Does GCC generate different TLS code sequences on Solaris?

Not as far as the present bug is concerned, I believe.

> 4. If GCC generate different TLS code sequences on Solaris,
>    a. Did GNU ld ever support Solaris TLS code sequences?
>    b. If yes, are there any linker testcases for Solaris TLS code sequences?

No to both: I think I once tried to teach gas and gld about them.  gas
was reasonably easy, but I totally failed for gld, so I gave up.

        Rainer

-- 
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]