This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug lto/50935] New: All slim LTO tests FAIL on 32-bit Solaris
- From: "ro at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Mon, 31 Oct 2011 15:53:30 +0000
- Subject: [Bug lto/50935] New: All slim LTO tests FAIL on 32-bit Solaris
- Auto-submitted: auto-generated
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50935
Bug #: 50935
Summary: All slim LTO tests FAIL on 32-bit Solaris
Classification: Unclassified
Product: gcc
Version: 4.7.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: lto
AssignedTo: unassigned@gcc.gnu.org
ReportedBy: ro@gcc.gnu.org
CC: jh@suse.cz
Host: *-*-solaris2*
Target: *-*-solaris2*
Build: *-*-solaris2.*
All slim LTO tests fail on 32-bit Solaris with gld 2.21.1 and 2.21.90:
spawn /vol/gcc/obj/regression/trunk/11-gcc-gas-gld/build/gcc/xgcc
-B/vol/gcc/obj/regression/trunk/11-gcc-gas-gld/build/gcc/
/vol/gcc/src/hg/trunk/local/gcc/testsuite/gcc.c-torture/execute/builtins/20010124-1.c
/vol/gcc/src/hg/trunk/local/gcc/testsuite/gcc.c-torture/execute/builtins/20010124-1-lib.c
/vol/gcc/src/hg/trunk/local/gcc/testsuite/gcc.c-torture/execute/builtins/lib/main.c
-w -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects -lm -o
/var/gcc/regression/trunk/11-gcc-gas-gld/build/gcc/testsuite/gcc5/20010124-1.x7
/usr/lib/crt1.o: In function `_start':
fsr.s:(.text+0x7f): undefined reference to `main'
collect2: error: ld returned 1 exit status
compiler exited with status 1
output is:
/usr/lib/crt1.o: In function `_start':
fsr.s:(.text+0x7f): undefined reference to `main'
collect2: error: ld returned 1 exit status
FAIL: gcc.c-torture/execute/builtins/20010124-1.c compilation, -O2 -flto
-fuse-linker-plugin -fno-fat-lto-objects
UNRESOLVED: gcc.c-torture/execute/builtins/20010124-1.c execution, -O2 -flto
-fuse-linker-plugin -fno-fat-lto-objects
If turns out that there's a range of issues here:
* Unlike fat LTO, which needs only a gld or gold binary with linker plugin
support, slim LTO needs corresponding binutils nm, ar, and ranlib. For a
64-bit default gcc, one needs 64-bit nm etc. in particular, where otherwise
there would be no reason at all to have 64-bit commands.
* For 32-bit binutils, BFD_SUPPORTS_PLUGINS is off by default, as described
in config/largefile.m4:
changequote(,)dnl
sparc-*-solaris*|i[3-7]86-*-solaris*)
changequote([,])dnl
# On native 32bit sparc and ia32 solaris, large-file and procfs support
# are mutually exclusive; and without procfs support, the bfd/ elf module
# cannot provide certain routines such as elfcore_write_prpsinfo
# or elfcore_write_prstatus. So unless the user explicitly requested
# large-file support through the --enable-largefile switch, disable
# large-file support in favor of procfs support.
For those reasons, it's much more work to provide a working slim LTO
environment
(and that's not only true on Solaris, but also on Linux where I often test a
recent gas/gld which is newer than what's bundled with the distribution), so
the testsuite *must* test for working slim LTO support before using
-fno-fat-lto-objects, otherwise one gets hundreds of testsuite failures.
Rainer