The problem seems to be that gcc will build successfully /initially/ but fails to rebuild itself. Reproducible: Always Steps to Reproduce: This is the command I used to run this just to automate the initial building process so that I didn't have to be awake for it (I've used it before quite a few times...although the chmod 766 was an odd step that I didn't understand why I needed it but I did....thats a different story though) emerge sync && chmod 766 /usr/portage/scripts/* && /usr/portage/scripts/bootstrap.sh && cp /make.conf /etc/make.conf && emerge system && emerge -eb world Actual Results: make.conf: # These settings were set by the catalyst build script that automatically built this stage CFLAGS="-O3 -pipe -ftracer" #CFLAGS="-O3 -pipe" #CFLAGS="-O3 -pipe" CHOST="x86_64-pc-linux-gnu" USE="multilib arts alsa cdr crypt dvd dvdr encode faad gif -java jpeg kde mpeg ncurses -pcmcia pdflib qt theora tiff truetype X xine xml xml2 zlib" CXXFLAGS="${CFLAGS}" MAKEOPTS="-j2" GENTOO_MIRRORS="ftp://gentoo.mirrors.pair.com" #GENTOO_MIRRORS="ftp://ibiblio.org" PORTDIR_OVERLAY=/usr/local/portage ACCEPT_KEYWORDS="~amd64" #FEATURES="-sandbox" make[4]: Entering directory `/var/tmp/portage/gcc-3.3.3/work/build/gcc' ./xgcc -B./ -B/usr/x86_64-pc-linux-gnu/bin/ -isystem /usr/x86_64-pc-linux-gnu/include -isystem /usr/x86_64-pc-linux-gnu/sys-include -O2 -DIN_GCC -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -isystem ./include -I. -I32 -I/var/tmp/portage/gcc-3.3.3/work/gcc-3.3.3/gcc -I/var/tmp/portage/gcc-3.3.3/work/gcc-3.3.3/gcc/32 -I/var/tmp/portage/gcc-3.3.3/work/gcc-3.3.3/gcc/config -I/var/tmp/portage/gcc-3.3.3/work/gcc-3.3.3/gcc/../include -m32 -g0 -finhibit-size-directive -fno-inline-functions -fno-exceptions -fno-zero-initialized-in-bss -fno-omit-frame-pointer -fno-asynchronous-unwind-tables -fPIC \ -c /var/tmp/portage/gcc-3.3.3/work/gcc-3.3.3/gcc/crtstuff.c -DCRT_END -DCRTSTUFFS_O \ -o 32/crtendS.o ./xgcc -B./ -B/usr/x86_64-pc-linux-gnu/bin/ -isystem /usr/x86_64-pc-linux-gnu/include -isystem /usr/x86_64-pc-linux-gnu/sys-include -O2 -DIN_GCC -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -isystem ./include -I. -I32 -I/var/tmp/portage/gcc-3.3.3/work/gcc-3.3.3/gcc -I/var/tmp/portage/gcc-3.3.3/work/gcc-3.3.3/gcc/32 -I/var/tmp/portage/gcc-3.3.3/work/gcc-3.3.3/gcc/config -I/var/tmp/portage/gcc-3.3.3/work/gcc-3.3.3/gcc/../include -m32 -g0 -finhibit-size-directive -fno-inline-functions -fno-exceptions -fno-zero-initialized-in-bss -fno-omit-frame-pointer -fno-asynchronous-unwind-tables \ -c /var/tmp/portage/gcc-3.3.3/work/gcc-3.3.3/gcc/crtstuff.c -DCRT_BEGIN -DCRTSTUFFT_O \ -o 32/crtbeginT.o /var/tmp/portage/gcc-3.3.3/work/gcc-3.3.3/gcc/crtstuff.c: In function `__do_global_dtors_aux': /var/tmp/portage/gcc-3.3.3/work/gcc-3.3.3/gcc/crtstuff.c:280: warning: passing arg 1 of `__deregister_frame_info' discards qualifiers from pointer target type /var/tmp/portage/gcc-3.3.3/work/gcc-3.3.3/gcc/crtstuff.c: In function `frame_dummy': /var/tmp/portage/gcc-3.3.3/work/gcc-3.3.3/gcc/crtstuff.c:316: warning: passing arg 1 of `__register_frame_info' discards qualifiers from pointer target type make[4]: Leaving directory `/var/tmp/portage/gcc-3.3.3/work/build/gcc' make[4]: Leaving directory `/var/tmp/portage/gcc-3.3.3/work/build/gcc' rm -rf ./libgcc_eh.a ar rc ./libgcc_eh.a libgcc/./unwind-dw2.o libgcc/./unwind-dw2-fde-glibc.o libgcc/./unwind-sjlj.o libgcc/./unwind-c.o if [ -f ranlib ] || ( [ x86_64-pc-linux-gnu = x86_64-pc-linux-gnu ] && [ -f /usr/bin/ranlib -o -f /bin/ranlib ] ) ; then \ ranlib ./libgcc_eh.a ; \ else true; fi; { nm -pg libgcc/./_muldi3.o libgcc/./_negdi2.o libgcc/./_lshrdi3.o libgcc/./_ashldi3.o libgcc/./_ashrdi3.o libgcc/./_cmpdi2.o libgcc/./_ucmpdi2.o libgcc/./_floatdidf.o libgcc/./_floatdisf.o libgcc/./_fixunsdfsi.o libgcc/./_fixunssfsi.o libgcc/./_fixunsdfdi.o libgcc/./_fixdfdi.o libgcc/./_fixunssfdi.o libgcc/./_fixsfdi.o libgcc/./_fixxfdi.o libgcc/./_fixunsxfdi.o libgcc/./_floatdixf.o libgcc/./_fixunsxfsi.o libgcc/./_fixtfdi.o libgcc/./_fixunstfdi.o libgcc/./_floatditf.o libgcc/./_clear_cache.o libgcc/./_trampoline.o libgcc/./__main.o libgcc/./_exit.o libgcc/./_absvsi2.o libgcc/./_absvdi2.o libgcc/./_addvsi3.o libgcc/./_addvdi3.o libgcc/./_subvsi3.o libgcc/./_subvdi3.o libgcc/./_mulvsi3.o libgcc/./_mulvdi3.o libgcc/./_negvsi2.o libgcc/./_negvdi2.o libgcc/./_ctors.o libgcc/./_stack_smash_handler.o libgcc/./_ffssi2.o libgcc/./_ffsdi2.o libgcc/./_clz.o libgcc/./_clzsi2.o libgcc/./_clzdi2.o libgcc/./_ctzsi2.o libgcc/./_ctzdi2.o libgcc/./_popcount_tab.o libgcc/./_popcountsi2.o libgcc/./_popcountdi2.o libgcc/./_paritysi2.o libgcc/./_paritydi2.o libgcc/./_divdi3.o libgcc/./_moddi3.o libgcc/./_udivdi3.o libgcc/./_umoddi3.o libgcc/./_udiv_w_sdiv.o libgcc/./_udivmoddi4.o libgcc/./unwind-dw2.o libgcc/./unwind-dw2-fde-glibc.o libgcc/./unwind-sjlj.o libgcc/./unwind-c.o; echo %%; \ cat /var/tmp/portage/gcc-3.3.3/work/gcc-3.3.3/gcc/libgcc-std.ver /var/tmp/portage/gcc-3.3.3/work/gcc-3.3.3/gcc/config/i386/libgcc-x86_64-glibc.ver | sed -e "/^[ ]*#/d" -e 's/^%\(if\|else\|elif\|endif\|define\)/#\1/' \ | ./xgcc -B./ -B/usr/x86_64-pc-linux-gnu/bin/ -isystem /usr/x86_64-pc-linux-gnu/include -isystem /usr/x86_64-pc-linux-gnu/sys-include -O2 -DIN_GCC -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -isystem ./include -fPIC -DHAVE_SYSLOG -g -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -D_LIBC_PROVIDES_SSP_ -I. -I. -I/var/tmp/portage/gcc-3.3.3/work/gcc-3.3.3/gcc -I/var/tmp/portage/gcc-3.3.3/work/gcc-3.3.3/gcc/. -I/var/tmp/portage/gcc-3.3.3/work/gcc-3.3.3/gcc/config -I/var/tmp/portage/gcc-3.3.3/work/gcc-3.3.3/gcc/../include -E -xassembler-with-cpp -; \ } | gawk -f /var/tmp/portage/gcc-3.3.3/work/gcc-3.3.3/gcc/mkmap-symver.awk > libgcc/./tmp-libgcc.map mv libgcc/./tmp-libgcc.map libgcc/./libgcc.map rm -rf 32/libgcc_eh.a ar rc 32/libgcc_eh.a libgcc/32/unwind-dw2.o libgcc/32/unwind-dw2-fde-glibc.o libgcc/32/unwind-sjlj.o libgcc/32/unwind-c.o if [ -f ranlib ] || ( [ x86_64-pc-linux-gnu = x86_64-pc-linux-gnu ] && [ -f /usr/bin/ranlib -o -f /bin/ranlib ] ) ; then \ ranlib 32/libgcc_eh.a ; \ else true; fi; { nm -pg libgcc/32/_muldi3.o libgcc/32/_negdi2.o libgcc/32/_lshrdi3.o libgcc/32/_ashldi3.o libgcc/32/_ashrdi3.o libgcc/32/_cmpdi2.o libgcc/32/_ucmpdi2.o libgcc/32/_floatdidf.o libgcc/32/_floatdisf.o libgcc/32/_fixunsdfsi.o libgcc/32/_fixunssfsi.o libgcc/32/_fixunsdfdi.o libgcc/32/_fixdfdi.o libgcc/32/_fixunssfdi.o libgcc/32/_fixsfdi.o libgcc/32/_fixxfdi.o libgcc/32/_fixunsxfdi.o libgcc/32/_floatdixf.o libgcc/32/_fixunsxfsi.o libgcc/32/_fixtfdi.o libgcc/32/_fixunstfdi.o libgcc/32/_floatditf.o libgcc/32/_clear_cache.o libgcc/32/_trampoline.o libgcc/32/__main.o libgcc/32/_exit.o libgcc/32/_absvsi2.o libgcc/32/_absvdi2.o libgcc/32/_addvsi3.o libgcc/32/_addvdi3.o libgcc/32/_subvsi3.o libgcc/32/_subvdi3.o libgcc/32/_mulvsi3.o libgcc/32/_mulvdi3.o libgcc/32/_negvsi2.o libgcc/32/_negvdi2.o libgcc/32/_ctors.o libgcc/32/_stack_smash_handler.o libgcc/32/_ffssi2.o libgcc/32/_ffsdi2.o libgcc/32/_clz.o libgcc/32/_clzsi2.o libgcc/32/_clzdi2.o libgcc/32/_ctzsi2.o libgcc/32/_ctzdi2.o libgcc/32/_popcount_tab.o libgcc/32/_popcountsi2.o libgcc/32/_popcountdi2.o libgcc/32/_paritysi2.o libgcc/32/_paritydi2.o libgcc/32/_divdi3.o libgcc/32/_moddi3.o libgcc/32/_udivdi3.o libgcc/32/_umoddi3.o libgcc/32/_udiv_w_sdiv.o libgcc/32/_udivmoddi4.o libgcc/32/unwind-dw2.o libgcc/32/unwind-dw2-fde-glibc.o libgcc/32/unwind-sjlj.o libgcc/32/unwind-c.o; echo %%; \ cat /var/tmp/portage/gcc-3.3.3/work/gcc-3.3.3/gcc/libgcc-std.ver /var/tmp/portage/gcc-3.3.3/work/gcc-3.3.3/gcc/config/i386/libgcc-x86_64-glibc.ver | sed -e "/^[ ]*#/d" -e 's/^%\(if\|else\|elif\|endif\|define\)/#\1/' \ | ./xgcc -B./ -B/usr/x86_64-pc-linux-gnu/bin/ -isystem /usr/x86_64-pc-linux-gnu/include -isystem /usr/x86_64-pc-linux-gnu/sys-include -O2 -DIN_GCC -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -isystem ./include -fPIC -DHAVE_SYSLOG -g -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -D_LIBC_PROVIDES_SSP_ -I. -I. -I/var/tmp/portage/gcc-3.3.3/work/gcc-3.3.3/gcc -I/var/tmp/portage/gcc-3.3.3/work/gcc-3.3.3/gcc/. -I/var/tmp/portage/gcc-3.3.3/work/gcc-3.3.3/gcc/config -I/var/tmp/portage/gcc-3.3.3/work/gcc-3.3.3/gcc/../include -m32 -E -xassembler-with-cpp -; \ } | gawk -f /var/tmp/portage/gcc-3.3.3/work/gcc-3.3.3/gcc/mkmap-symver.awk > libgcc/32/tmp-libgcc.map rm -rf ./libgcc.a ar rc ./libgcc.a libgcc/./_muldi3.oS libgcc/./_negdi2.oS libgcc/./_lshrdi3.oS libgcc/./_ashldi3.oS libgcc/./_ashrdi3.oS libgcc/./_cmpdi2.oS libgcc/./_ucmpdi2.oS libgcc/./_floatdidf.oS libgcc/./_floatdisf.oS libgcc/./_fixunsdfsi.oS libgcc/./_fixunssfsi.oS libgcc/./_fixunsdfdi.oS libgcc/./_fixdfdi.oS libgcc/./_fixunssfdi.oS libgcc/./_fixsfdi.oS libgcc/./_fixxfdi.oS libgcc/./_fixunsxfdi.oS libgcc/./_floatdixf.oS libgcc/./_fixunsxfsi.oS libgcc/./_fixtfdi.oS libgcc/./_fixunstfdi.oS libgcc/./_floatditf.oS libgcc/./_clear_cache.oS libgcc/./_trampoline.oS libgcc/./__main.oS libgcc/./_exit.oS libgcc/./_absvsi2.oS libgcc/./_absvdi2.oS libgcc/./_addvsi3.oS libgcc/./_addvdi3.oS libgcc/./_subvsi3.oS libgcc/./_subvdi3.oS libgcc/./_mulvsi3.oS libgcc/./_mulvdi3.oS libgcc/./_negvsi2.oS libgcc/./_negvdi2.oS libgcc/./_ctors.oS libgcc/./_stack_smash_handler.oS libgcc/./_ffssi2.oS libgcc/./_ffsdi2.oS libgcc/./_clz.oS libgcc/./_clzsi2.oS libgcc/./_clzdi2.oS libgcc/./_ctzsi2.oS libgcc/./_ctzdi2.oS libgcc/./_popcount_tab.oS libgcc/./_popcountsi2.oS libgcc/./_popcountdi2.oS libgcc/./_paritysi2.oS libgcc/./_paritydi2.oS libgcc/./_divdi3.oS libgcc/./_moddi3.oS libgcc/./_udivdi3.oS libgcc/./_umoddi3.oS libgcc/./_udiv_w_sdiv.oS libgcc/./_udivmoddi4.oS libgcc/./_eprintf.oS libgcc/./_bb.oS libgcc/./__gcc_bcmp.oS if [ -f ranlib ] || ( [ x86_64-pc-linux-gnu = x86_64-pc-linux-gnu ] && [ -f /usr/bin/ranlib -o -f /bin/ranlib ] ) ; then \ ranlib ./libgcc.a ; \ else true; fi; mv libgcc/32/tmp-libgcc.map libgcc/32/libgcc.map ./xgcc -B./ -B/usr/x86_64-pc-linux-gnu/bin/ -isystem /usr/x86_64-pc-linux-gnu/include -isystem /usr/x86_64-pc-linux-gnu/sys-include -O2 -DIN_GCC -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -isystem ./include -fPIC -DHAVE_SYSLOG -g -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -D_LIBC_PROVIDES_SSP_ -shared -nodefaultlibs -Wl,--soname=libgcc_s.so.1 -Wl,--version-script=libgcc/./libgcc.map -o libgcc_s.so.1 libgcc/./_muldi3.o libgcc/./_negdi2.o libgcc/./_lshrdi3.o libgcc/./_ashldi3.o libgcc/./_ashrdi3.o libgcc/./_cmpdi2.o libgcc/./_ucmpdi2.o libgcc/./_floatdidf.o libgcc/./_floatdisf.o libgcc/./_fixunsdfsi.o libgcc/./_fixunssfsi.o libgcc/./_fixunsdfdi.o libgcc/./_fixdfdi.o libgcc/./_fixunssfdi.o libgcc/./_fixsfdi.o libgcc/./_fixxfdi.o libgcc/./_fixunsxfdi.o libgcc/./_floatdixf.o libgcc/./_fixunsxfsi.o libgcc/./_fixtfdi.o libgcc/./_fixunstfdi.o libgcc/./_floatditf.o libgcc/./_clear_cache.o libgcc/./_trampoline.o libgcc/./__main.o libgcc/./_exit.o libgcc/./_absvsi2.o libgcc/./_absvdi2.o libgcc/./_addvsi3.o libgcc/./_addvdi3.o libgcc/./_subvsi3.o libgcc/./_subvdi3.o libgcc/./_mulvsi3.o libgcc/./_mulvdi3.o libgcc/./_negvsi2.o libgcc/./_negvdi2.o libgcc/./_ctors.o libgcc/./_stack_smash_handler.o libgcc/./_ffssi2.o libgcc/./_ffsdi2.o libgcc/./_clz.o libgcc/./_clzsi2.o libgcc/./_clzdi2.o libgcc/./_ctzsi2.o libgcc/./_ctzdi2.o libgcc/./_popcount_tab.o libgcc/./_popcountsi2.o libgcc/./_popcountdi2.o libgcc/./_paritysi2.o libgcc/./_paritydi2.o libgcc/./_divdi3.o libgcc/./_moddi3.o libgcc/./_udivdi3.o libgcc/./_umoddi3.o libgcc/./_udiv_w_sdiv.o libgcc/./_udivmoddi4.o libgcc/./unwind-dw2.o libgcc/./unwind-dw2-fde-glibc.o libgcc/./unwind-sjlj.o libgcc/./unwind-c.o -lc && rm -f libgcc_s.so && ln -s libgcc_s.so.1 libgcc_s.so rm -rf 32/libgcc.a ar rc 32/libgcc.a libgcc/32/_muldi3.oS libgcc/32/_negdi2.oS libgcc/32/_lshrdi3.oS libgcc/32/_ashldi3.oS libgcc/32/_ashrdi3.oS libgcc/32/_cmpdi2.oS libgcc/32/_ucmpdi2.oS libgcc/32/_floatdidf.oS libgcc/32/_floatdisf.oS libgcc/32/_fixunsdfsi.oS libgcc/32/_fixunssfsi.oS libgcc/32/_fixunsdfdi.oS libgcc/32/_fixdfdi.oS libgcc/32/_fixunssfdi.oS libgcc/32/_fixsfdi.oS libgcc/32/_fixxfdi.oS libgcc/32/_fixunsxfdi.oS libgcc/32/_floatdixf.oS libgcc/32/_fixunsxfsi.oS libgcc/32/_fixtfdi.oS libgcc/32/_fixunstfdi.oS libgcc/32/_floatditf.oS libgcc/32/_clear_cache.oS libgcc/32/_trampoline.oS libgcc/32/__main.oS libgcc/32/_exit.oS libgcc/32/_absvsi2.oS libgcc/32/_absvdi2.oS libgcc/32/_addvsi3.oS libgcc/32/_addvdi3.oS libgcc/32/_subvsi3.oS libgcc/32/_subvdi3.oS libgcc/32/_mulvsi3.oS libgcc/32/_mulvdi3.oS libgcc/32/_negvsi2.oS libgcc/32/_negvdi2.oS libgcc/32/_ctors.oS libgcc/32/_stack_smash_handler.oS libgcc/32/_ffssi2.oS libgcc/32/_ffsdi2.oS libgcc/32/_clz.oS libgcc/32/_clzsi2.oS libgcc/32/_clzdi2.oS libgcc/32/_ctzsi2.oS libgcc/32/_ctzdi2.oS libgcc/32/_popcount_tab.oS libgcc/32/_popcountsi2.oS libgcc/32/_popcountdi2.oS libgcc/32/_paritysi2.oS libgcc/32/_paritydi2.oS libgcc/32/_divdi3.oS libgcc/32/_moddi3.oS libgcc/32/_udivdi3.oS libgcc/32/_umoddi3.oS libgcc/32/_udiv_w_sdiv.oS libgcc/32/_udivmoddi4.oS libgcc/32/_eprintf.oS libgcc/32/_bb.oS libgcc/32/__gcc_bcmp.oS if [ -f ranlib ] || ( [ x86_64-pc-linux-gnu = x86_64-pc-linux-gnu ] && [ -f /usr/bin/ranlib -o -f /bin/ranlib ] ) ; then \ ranlib 32/libgcc.a ; \ else true; fi; ./xgcc -B./ -B/usr/x86_64-pc-linux-gnu/bin/ -isystem /usr/x86_64-pc-linux-gnu/include -isystem /usr/x86_64-pc-linux-gnu/sys-include -O2 -DIN_GCC -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -isystem ./include -fPIC -DHAVE_SYSLOG -g -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -D_LIBC_PROVIDES_SSP_ -shared -nodefaultlibs -Wl,--soname=libgcc_s.so.1 -Wl,--version-script=libgcc/32/libgcc.map -o 32/libgcc_s.so.1 -m32 libgcc/32/_muldi3.o libgcc/32/_negdi2.o libgcc/32/_lshrdi3.o libgcc/32/_ashldi3.o libgcc/32/_ashrdi3.o libgcc/32/_cmpdi2.o libgcc/32/_ucmpdi2.o libgcc/32/_floatdidf.o libgcc/32/_floatdisf.o libgcc/32/_fixunsdfsi.o libgcc/32/_fixunssfsi.o libgcc/32/_fixunsdfdi.o libgcc/32/_fixdfdi.o libgcc/32/_fixunssfdi.o libgcc/32/_fixsfdi.o libgcc/32/_fixxfdi.o libgcc/32/_fixunsxfdi.o libgcc/32/_floatdixf.o libgcc/32/_fixunsxfsi.o libgcc/32/_fixtfdi.o libgcc/32/_fixunstfdi.o libgcc/32/_floatditf.o libgcc/32/_clear_cache.o libgcc/32/_trampoline.o libgcc/32/__main.o libgcc/32/_exit.o libgcc/32/_absvsi2.o libgcc/32/_absvdi2.o libgcc/32/_addvsi3.o libgcc/32/_addvdi3.o libgcc/32/_subvsi3.o libgcc/32/_subvdi3.o libgcc/32/_mulvsi3.o libgcc/32/_mulvdi3.o libgcc/32/_negvsi2.o libgcc/32/_negvdi2.o libgcc/32/_ctors.o libgcc/32/_stack_smash_handler.o libgcc/32/_ffssi2.o libgcc/32/_ffsdi2.o libgcc/32/_clz.o libgcc/32/_clzsi2.o libgcc/32/_clzdi2.o libgcc/32/_ctzsi2.o libgcc/32/_ctzdi2.o libgcc/32/_popcount_tab.o libgcc/32/_popcountsi2.o libgcc/32/_popcountdi2.o libgcc/32/_paritysi2.o libgcc/32/_paritydi2.o libgcc/32/_divdi3.o libgcc/32/_moddi3.o libgcc/32/_udivdi3.o libgcc/32/_umoddi3.o libgcc/32/_udiv_w_sdiv.o libgcc/32/_udivmoddi4.o libgcc/32/unwind-dw2.o libgcc/32/unwind-dw2-fde-glibc.o libgcc/32/unwind-sjlj.o libgcc/32/unwind-c.o -lc && rm -f libgcc_s_32.so && ln -s 32/libgcc_s.so.1 libgcc_s_32.so /usr/x86_64-pc-linux-gnu/bin/ld: skipping incompatible /usr/lib/gcc-lib/x86_64-pc-linux-gnu/3.3.3/../../../libc.so when searching for -lc /usr/x86_64-pc-linux-gnu/bin/ld: skipping incompatible /usr/lib/gcc-lib/x86_64-pc-linux-gnu/3.3.3/../../../libc.a when searching for -lc /usr/x86_64-pc-linux-gnu/bin/ld: skipping incompatible /usr/lib/libc.so when searching for -lc /usr/x86_64-pc-linux-gnu/bin/ld: skipping incompatible /usr/lib/libc.a when searching for -lc /usr/x86_64-pc-linux-gnu/bin/ld: cannot find -lc collect2: ld returned 1 exit status make[3]: *** [32/libgcc_s_32.so] Error 1 make[3]: *** Waiting for unfinished jobs.... make[3]: Leaving directory `/var/tmp/portage/gcc-3.3.3/work/build/gcc' make[2]: *** [stmp-multilib] Error 2 make[2]: Leaving directory `/var/tmp/portage/gcc-3.3.3/work/build/gcc' make[1]: *** [stage1_build] Error 2 make[1]: Leaving directory `/var/tmp/portage/gcc-3.3.3/work/build/gcc' make: *** [bootstrap-lean] Error 2 !!! ERROR: sys-devel/gcc-3.3.3 failed. !!! Function src_compile, Line 465, Exitcode 2 !!! (no error message)
EDIT: This is what I should have said: The problem seems to be that gcc will build successfully /initially/ with multilib enabled but fails to rebuild itself afterwards with multilib enabled.
can you cat /usr/lib/libc.so and give us the output? or attach it to the bug?
it seems that during the process of upgrade you might have upgraded the 32bit umul libs to a new version, which may be responsible for your problem and explain why gcc was able to compile the first time.
As per request: weakest-link / # cat /usr/lib/libc.so /* GNU ld script Use the shared library, but some functions are only in the static library, so try that secondarily. */ OUTPUT_FORMAT(elf64-x86-64) GROUP ( /lib/libc.so.6 /usr/lib/libc_nonshared.a )
Please compare the follwoing output with that you get on your system: phi chroot # cat /usr/lib32/libc.so /* GNU ld script Use the shared library, but some functions are only in the static library, so try that secondarily. */ OUTPUT_FORMAT(elf32-i386) GROUP ( /lib32/libc.so.6 /usr/lib32/libc_nonshared.a ) If it differs from mine (/lib/ instead /lib32/, you have to blame me (welcome to the club ;-) and remerge app-emulation/emul-linux-x86-baselibs-1.1. app-emulation/emul-linux-
I noticed that it failed even without multilib in my USE flags just recently, so I'm going to test out a theory. I'll post the results after Itest it.
Well, it appears that -ftracer is what broke everything. I rebuilt everything without -ftracer and it all worked. Someone suggested that it might have been binutils that was breaking with the aggressive optimizations, so this may warrent some further looking in to.
i'd say that the mix of -O3 and -ftracer broke it. -ftracer is incredibly safe when used with -O2, i have it in my CFLAGS and never has anything broken.