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-binutils mailing list bug-binutils@gnu.org https://lists.gnu.org/mailman/listinfo/bug-binutils