Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 269464

Summary: sys-devel/binutils: gold linker: -shared and -r are incompatible
Product: Gentoo Linux Reporter: Alec Meyers <alecm_88>
Component: [OLD] UnspecifiedAssignee: Gentoo Toolchain Maintainers <toolchain>
Status: RESOLVED FIXED    
Severity: normal CC: ansla80, david.w.noon, tetromino
Priority: High    
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---
Bug Depends on:    
Bug Blocks: 269315    

Description Alec Meyers 2009-05-11 21:12:31 UTC
Here's the relevant output:

/usr/lib/gcc/i686-pc-linux-gnu/4.3.3/../../../../i686-pc-linux-gnu/bin/ld: -shared and -r are incompatible
collect2: ld returned 1 exit status
make[4]: *** [libschroedinger-1.0.la] Error 1
make[4]: Leaving directory `/var/tmp/portage/media-libs/schroedinger-1.0.7/work/schroedinger-1.0.7/schroedinger'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/var/tmp/portage/media-libs/schroedinger-1.0.7/work/schroedinger-1.0.7/schroedinger'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/var/tmp/portage/media-libs/schroedinger-1.0.7/work/schroedinger-1.0.7/schroedinger'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/var/tmp/portage/media-libs/schroedinger-1.0.7/work/schroedinger-1.0.7'
make: *** [all] Error 2

Reproducible: Always

Steps to Reproduce:
1. # USE=gold" emerge =binutils-2.19.51.0.4
2. # emerge =media-libs/schroedinger-1.0.7
Actual Results:  
Emerge fails
Comment 1 David W Noon 2009-05-13 13:26:28 UTC
I can confirm this with kdelibs:

/usr/lib/gcc/i686-pc-linux-gnu/4.3.2/../../../../i686-pc-linux-gnu/bin/ld: -shared and -r are incompatible
collect2: ld returned 1 exit status
make[2]: *** [kimg_xview.la] Error 1
make[2]: *** Waiting for unfinished jobs....
/usr/lib/gcc/i686-pc-linux-gnu/4.3.2/../../../../i686-pc-linux-gnu/bin/ld: -shared and -r are incompatible
collect2: ld returned 1 exit status

The package links cleanly when using the old linker.
Comment 2 Alexandre Rostovtsev (RETIRED) gentoo-dev 2009-05-16 17:03:55 UTC
Some more details about the kdelibs breakage.

For me, on kdelibs-3.5.10-r5, gold breaks here:

/bin/sh ../libtool --silent --tag=CXX --mode=link x86_64-pc-linux-gnu-g++  -Wno-long-long -Wundef -ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -DNDEBUG -DNO_DEBUG -O2 -march=native -O2 -pipe -Wformat-security -Wmissing-format-attribute -Wno-non-virtual-dtor -fno-exceptions -fno-check-new -fno-common  -DQT_CLEAN_NAMESPACE -DQT_NO_ASCII_CAST -DQT_NO_STL -DQT_NO_COMPAT -DQT_NO_TRANSLATION -fexceptions   -o kimg_eps.la -rpath /usr/kde/3.5/lib64/kde3 -module -avoid-version -export-symbols-regex 'kimgio_.*_(read|write)' -no-undefined -Wl,--no-undefined -Wl,--allow-shlib-undefined -L/usr/kde/3.5/lib64 -L/usr/qt/3/lib64 -L/usr/lib64    eps.lo ../kdecore/libkdecore.la 
/usr/lib/gcc/x86_64-pc-linux-gnu/4.3.3/../../../../x86_64-pc-linux-gnu/bin/ld: -shared and -r are incompatible
collect2: ld returned 1 exit status

Interestingly, when I remove --silent, the expanded libtool output is:

/usr/bin/x86_64-pc-linux-gnu-nm -B  .libs/eps.o  | sed -n -e 's/^.*[ 	]\([ABCDGISTW][ABCDGISTW]*\)[ 	][ 	]*\(\)\([_A-Za-z][_A-Za-z0-9]*\)$/\1 \2\3 \3/p' | /bin/sed 's/.* //' | sort | uniq > .libs/kimg_eps.exp
/bin/grep -E -e "kimgio_.*_(read|write)" ".libs/kimg_eps.exp" > ".libs/kimg_eps.expT"
mv -f ".libs/kimg_eps.expT" ".libs/kimg_eps.exp"
x86_64-pc-linux-gnu-g++ -shared -nostdlib  -march=native -Wl,--no-undefined -Wl,--allow-shlib-undefined  -Wno-long-long -Wundef -ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -DNDEBUG -DNO_DEBUG -O2 -O2 -pipe -Wformat-security -Wmissing-format-attribute -Wno-non-virtual-dtor -fno-exceptions -fno-check-new -fno-common -DQT_CLEAN_NAMESPACE -DQT_NO_ASCII_CAST -DQT_NO_STL -DQT_NO_COMPAT -DQT_NO_TRANSLATION -fexceptions /usr/lib/gcc/x86_64-pc-linux-gnu/4.3.3/../../../../lib64/crti.o /usr/lib/gcc/x86_64-pc-linux-gnu/4.3.3/crtbeginS.o  .libs/eps.o  -Wl,--rpath -Wl,/usr/kde/3.5/lib64 -Wl,--rpath -Wl,/usr/qt/3/lib64 -Wl,--rpath -Wl,/usr/lib64 -L/var/tmp/portage/kde-base/kdelibs-3.5.10-r5/work/kdelibs-3.5.10/kdefx/.libs -L/usr/X11R6/lib64 -L/usr/lib64/mysql -L/var/tmp/portage/kde-base/kdelibs-3.5.10-r5/work/kdelibs-3.5.10/dcop/.libs -L/usr/kde/3.5/lib64 -L/usr/qt/3/lib64 -L/usr/lib64 ../kdecore/.libs/libkdecore.so /var/tmp/portage/kde-base/kdelibs-3.5.10-r5/work/kdelibs-3.5.10/dcop/.libs/libDCOP.so -lresolv -lutil /usr/lib64/libart_lgpl_2.so /usr/lib64/libidn.so /var/tmp/portage/kde-base/kdelibs-3.5.10-r5/work/kdelibs-3.5.10/kdefx/.libs/libkdefx.so /usr/qt/3/lib64/libqt-mt.so /usr/lib64/libmng.so /usr/lib64/liblcms.so /usr/lib64/libjpeg.so /usr/lib64/libXi.so /usr/lib64/libXrandr.so /usr/lib64/libXcursor.so /usr/lib64/libXfixes.so /usr/lib64/libXinerama.so /usr/lib64/libXft.so /usr/lib64/libfontconfig.so /usr/lib64/libfreetype.so /usr/lib64/libexpat.so /usr/lib64/libpng12.so -lz /usr/lib64/libXext.so /usr/lib64/libSM.so -luuid /usr/lib64/libICE.so -lpthread /usr/lib64/libXrender.so /usr/lib64/libX11.so /usr/lib64/libxcb-xlib.so /usr/lib64/libxcb.so /usr/lib64/libXau.so /usr/lib64/libXdmcp.so -ldl -L/usr/lib/gcc/x86_64-pc-linux-gnu/4.3.3 -L/usr/lib/gcc/x86_64-pc-linux-gnu/4.3.3/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/usr/lib/gcc/x86_64-pc-linux-gnu/4.3.3/../../../../x86_64-pc-linux-gnu/lib -L/usr/lib/gcc/x86_64-pc-linux-gnu/4.3.3/../../.. -lstdc++ -lm -lc -lgcc_s /usr/lib/gcc/x86_64-pc-linux-gnu/4.3.3/crtendS.o /usr/lib/gcc/x86_64-pc-linux-gnu/4.3.3/../../../../lib64/crtn.o -Wl,-soname -Wl,kimg_eps.so -Wl,-retain-symbols-file -Wl,.libs/kimg_eps.exp -o .libs/kimg_eps.so
/usr/lib/gcc/x86_64-pc-linux-gnu/4.3.3/../../../../x86_64-pc-linux-gnu/bin/ld: -shared and -r are incompatible
collect2: ld returned 1 exit status

So gold terminates with "-shared and -r are incompatible" even though -r doesn't appear anywhere in the argument list!
Comment 3 Lóránt Farkas 2009-10-27 21:31:36 UTC
media-libs/schroedinger-1.0.7

compiles and installs clean with gold 2.20.51.0.2
Comment 4 SpanKY gentoo-dev 2009-10-28 02:14:03 UTC
thanks for testin