This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
RE: Build failure for sparc-sun-solaris2.10
- From: Arthur Haas <ahaas at impactweather dot com>
- To: "gcc at gcc dot gnu dot org" <gcc at gcc dot gnu dot org>
- Cc: Rainer Orth <ro at CeBiTec dot Uni-Bielefeld dot DE>
- Date: Fri, 1 Aug 2014 15:57:28 -0500
- Subject: RE: Build failure for sparc-sun-solaris2.10
- Authentication-results: sourceware.org; auth=none
- References: <87mwbp4k4q dot fsf at impactweather dot com> <yddwqasjnmm dot fsf at lokon dot CeBiTec dot Uni-Bielefeld dot DE>
> Hi Art,
Hi. Thanks for helping me try to fix the build problem I'm seeing.
{ ... snip ... }
> Could be, see above. Apart from that, I wonder why you insist on using
> GNU ld on Solaris. install.texi strongly suggests to use the Solaris
> linker instead, and I stand by that advise.
> A couple of comments on those configure options: avoid everything not
> strictly necessary and stay with the defaults.
{ ... snip ... }
I had a small script which runs 'configure' and using GNU as/ld had worked. I've
adjusted the script so that GCC is configured to use Sun /usr/ccs/bin/ld instead
of the GNU ld binary, and I also got rid of '--enable-threads' and the
'--enable-libstdcxx-pch=no' options
With the adjustments to the configuration my build got past the 'libgcc_s.so' error
I'd been seeing, and proceeded into the 'stage2' build before it failed:
libtool: link: /export/home/arth/src/gcc-0801/./prev-gcc/xgcc -B/export/home/ar
th/src/gcc-0801/./prev-gcc/ -B/export/home/arth/local/sparc-sun-solaris2.10/bin/
-B/export/home/arth/local/sparc-sun-solaris2.10/bin/ -B/export/home/arth/local/
sparc-sun-solaris2.10/lib/ -isystem /export/home/arth/local/sparc-sun-solaris2.1
0/include -isystem /export/home/arth/local/sparc-sun-solaris2.10/sys-include
-shared .libs/lto-plugin.o -static-libgcc -static-libstdc++ -static-libgcc .
./libiberty/pic/libiberty.a -Wl,-soname -Wl,liblto_plugin.so.0 -o .libs/liblto
_plugin.so.0.0.0
ld: warning: option -o appears more than once, first setting taken
ld: fatal: file liblto_plugin.so.0: open failed: No such file or directory
ld: fatal: File processing errors. No output written to .libs/liblto_plugin.so.0
.0.0
collect2: error: ld returned 1 exit status
gmake[4]: *** [liblto_plugin.la] Error 1
gmake[4]: Leaving directory `/export/home/arth/src/gcc-0801/lto-plugin'
I copied the failing link into a script, added a '-v' option to see what was going
on, and the link command was this:
/export/home/arth/src/gcc-0801/./prev-gcc/collect2 -V -G -dy -z text -M /export/home/arth/src/gcc-0801/./prev-gcc/libgcc-unwind.map -Y P,/lib:/usr/lib -Qy -o .libs/liblto_plugin.so.0.0.0 /usr/lib/crti.o /usr/lib/values-Xa.o /export/home/arth/src/gcc-0801/./prev-gcc/crtbegin.o -L/export/home/arth/src/gcc-0801/./prev-gcc -L/export/home/arth/local/sparc-sun-solaris2.10/bin -L/export/home/arth/local/sparc-sun-solaris2.10/bin -L/export/home/arth/local/sparc-sun-solaris2.10/lib .libs/lto-plugin.o ../libiberty/pic/libiberty.a -soname liblto_plugin.so.0 -lgcc -lgcc_eh -lc -lgcc -lgcc_eh -lc /export/home/arth/src/gcc-0801/./prev-gcc/crtend.o /usr/lib/crtn.o
ld: Software Generation Utilities - Solaris Link Editors: 5.10-1.490
ld: warning: option -o appears more than once, first setting taken
ld: fatal: file liblto_plugin.so.0: open failed: No such file or directory
ld: fatal: File processing errors. No output written to .libs/liblto_plugin.so.0.0.0
collect2: error: ld returned 1 exit status
The warning about the '-o' option appearing twice was really strange until I found out through some trial and error that the '-soname' option was the cause. If I run that command above but use the '-h' option instead the shared object links successfully:
$ /export/home/arth/src/gcc-0801/./prev-gcc/collect2 -V -G -dy -z text -M /export/home/arth/src/gcc-0801/./prev-gcc/libgcc-unwind.map -Y P,/lib:/usr/lib -Qy -o ./.libs/liblto_plugin.so.0.0.0 /usr/lib/crti.o /usr/lib/values-Xa.o /export/home/arth/src/gcc-0801/./prev-gcc/crtbegin.o -L/export/home/arth/src/gcc-0801/prev-gcc -L/export/home/arth/local/sparc-sun-solaris-2.10/bin -L/export/home/arth/local/sparc-sun-solaris-2.10/bin -L/export/home/arth/local/sparc-sun-solaris-2.10/lib ./.libs/lto-plugin.o ../libiberty/pic/libiberty.a -h liblto_plugin.so.0 -lgcc -lgcc_eh -lc -lgcc -lgcc_eh -lc /export/home/arth/src/gcc-0801/prev-gcc/crtend.o /usr/lib/crtn.o
ld: Software Generation Utilities - Solaris Link Editors: 5.10-1.490
$
I guess now the trick is figuring out how to have the collect2 program use '-h' instead of '-soname' when it invokes the Sun linker. Suggestions?
Thanks in advance.
Art Haas