[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: |
hjl.tools at gmail dot com |
Subject: |
[Bug ld/22721] [2.30, 2.31 regression] Solaris/x86 TLS transition failures with linker plugin |
Date: |
Thu, 18 Jan 2018 13:58:25 +0000 |
https://sourceware.org/bugzilla/show_bug.cgi?id=22721
--- Comment #3 from H.J. Lu <hjl.tools at gmail dot com> ---
(In reply to Rainer Orth from comment #2)
> > --- 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.
Please open a bug report.
> 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?
Can you add -fomit-frame-pointer to i386.exp to see if it works?
> 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.
Please do
1. Get users/hjl/lto-mixed/master branch and build/install it.
2. Pass -v -save-temps -Wl,-plugin-save-temps to gcc
This should save all temporary files used by ld LTO.
3. Create .gdbinit to set environment variables used by ld LTO with
output from "gcc -v".
4. Capture the failed ld LTO command line option.
5. Run ld under gdb to investigate why ld fails.
--
You are receiving this mail because:
You are on the CC list for the bug.
- [Bug ld/22721] New: [2.30, 2.31 regression] Solaris/x86 TLS transition failures with linker plugin, ro at gcc dot gnu.org, 2018/01/17
- [Bug ld/22721] [2.30, 2.31 regression] Solaris/x86 TLS transition failures with linker plugin, ro at gcc dot gnu.org, 2018/01/17
- [Bug ld/22721] [2.30, 2.31 regression] Solaris/x86 TLS transition failures with linker plugin, hjl.tools at gmail dot com, 2018/01/17
- [Bug ld/22721] [2.30, 2.31 regression] Solaris/x86 TLS transition failures with linker plugin, ro at CeBiTec dot Uni-Bielefeld.DE, 2018/01/18
- [Bug ld/22721] [2.30, 2.31 regression] Solaris/x86 TLS transition failures with linker plugin,
hjl.tools at gmail dot com <=
- [Bug ld/22721] [2.30, 2.31 regression] Solaris/x86 TLS transition failures with linker plugin, ro at CeBiTec dot Uni-Bielefeld.DE, 2018/01/19
- [Bug ld/22721] [2.30, 2.31 regression] Solaris/x86 TLS transition failures with linker plugin, hjl.tools at gmail dot com, 2018/01/19
- [Bug ld/22721] [2.30, 2.31 regression] Solaris/x86 TLS transition failures with linker plugin, ro at CeBiTec dot Uni-Bielefeld.DE, 2018/01/19
- [Bug ld/22721] [2.30, 2.31 regression] Solaris/x86 TLS transition failures with linker plugin, hjl.tools at gmail dot com, 2018/01/19
- [Bug ld/22721] [2.30, 2.31 regression] Solaris/x86 TLS transition failures with linker plugin, ro at CeBiTec dot Uni-Bielefeld.DE, 2018/01/19
- [Bug ld/22721] [2.30, 2.31 regression] Solaris/x86 TLS transition failures with linker plugin, hjl.tools at gmail dot com, 2018/01/19
- [Bug ld/22721] [2.30, 2.31 regression] Solaris/x86 TLS transition failures with linker plugin, hjl.tools at gmail dot com, 2018/01/19
- [Bug ld/22721] [2.30, 2.31 regression] Solaris/x86 TLS transition failures with linker plugin, ro at CeBiTec dot Uni-Bielefeld.DE, 2018/01/19
- [Bug ld/22721] [2.30, 2.31 regression] Solaris/x86 TLS transition failures with linker plugin, cvs-commit at gcc dot gnu.org, 2018/01/20
- [Bug ld/22721] [2.30, 2.31 regression] Solaris/x86 TLS transition failures with linker plugin, cvs-commit at gcc dot gnu.org, 2018/01/20