The linker is looking for libgcc_s in the wrong places. Either the gcc-3.4.3 ebuild put it in the wrong place, or /etc/ld.so.conf needs a different location listed. The files were placed in: /usr/lib64/gcc-lib/x86_64-pc-linux-gnu/lib64 /etc/ld.so.conf has these GCC library locations: /usr/lib/gcc/x86_64-pc-linux-gnu/3.4.3 /usr/lib/gcc-lib/x86_64-pc-linux-gnu/3.3.4 /usr/lib/gcc-lib/x86_64-pc-linux-gnu/3.4.2 /usr/lib/gcc-lib/x86_64-pc-linux-gnu/3.4.2 /usr/lib/gcc-lib/x86_64-pc-linux-gnu/3.4.2 /usr/lib/gcc/x86_64-pc-linux-gnu/3.4.3 /usr/lib/gcc/x86_64-pc-linux-gnu/3.4.3 I was able to work around the problem by moving the libgcc_s files into /usr/lib/gcc/x86_64-pc-linux-gnu/3.4.3 Reproducible: Always Steps to Reproduce: 1. Make a simple c++ test program. 2. Try to compile it. Actual Results: g++ t.cc /usr/lib/gcc/x86_64-pc-linux-gnu/3.4.3/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lgcc_s collect2: ld returned 1 exit status Expected Results: Compiled the C++ program. Portage 2.0.51-r3 (default-linux/amd64/2004.3, gcc-3.4.3, glibc-2.3.4.20041102-r0, 2.6.10-rc1 x86_64) ================================================================= System uname: 2.6.10-rc1 x86_64 AMD Athlon(tm) 64 Processor 3400+ Gentoo Base System version 1.6.5 Autoconf: sys-devel/autoconf-2.59-r5 Automake: sys-devel/automake-1.8.5-r1 Binutils: sys-devel/binutils-2.15.92.0.2-r1 Headers: sys-kernel/linux26-headers-2.6.8.1-r1 Libtools: sys-devel/libtool-1.5.2-r6 ACCEPT_KEYWORDS="amd64 ~amd64" AUTOCLEAN="yes" CFLAGS="-march=k8 -O3 -funit-at-a-time -ffast-math -pipe" CHOST="x86_64-pc-linux-gnu" COMPILER="" CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config /usr/kde/3.3/env /usr/kde/3.3/share/config /usr/kde/3.3/shutdown /usr/kde/3/share/config /usr/lib/mozilla/defaults/pref /usr/share/config /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-march=k8 -O3 -funit-at-a-time -ffast-math -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs autoconfig buildpkg ccache distlocks fixpackages sandbox" GENTOO_MIRRORS="http://gentoo.llarian.net/ http://gentoo.ccccom.com http://128.213.5.34/gentoo/ http://gentoo.osuosl.org/ http://cudlug.cudenver.edu/gentoo/ http://gentoo.mirrors.pair.com/ http://csociety-ftp.ecn.purdue.edu/pub/gentoo/" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/portage/local" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="amd64 X acpi alsa avi berkdb bonobo cdr crypt cups dmx dv dvd dvdr edl eds encode esd evo f77 faac faad fam flac fortran gcj gdbm gif gnome gpm gstreamer gtk gtk2 guile hal imagemagick imap imlib ipv6 java jp2 jpeg junit kde libgda lzw lzw-tiff mad mikmod mozdevelop mozilla mozsvg mpeg ncurses nls nomultilib nptl nptlonly nvidia offensive oggvorbis openal opengl pam pcmcia perl png python qt quicktime readline rtc samba sdl slang ssl svg tcpd theora tiff truetype unicode usb userlocales wmf xml2 xmms xpm xprint xrandr xscreensaver xv xvid xvmc yv12 zlib"
This is not just a amd64 issue. In addition I am not able to run any programs lin nked to libc++: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory [~]$ epm -ql gcc |grep 'libstdc++.so.6' /usr/lib/gcc-lib/i686-pc-linux-gnu/3.4.3/libstdc++.so.6.0.3 /usr/lib/gcc-lib/i686-pc-linux-gnu/3.4.3/libstdc++.so.6 I think the problem is that /usr/lib/gcc-lib/i686-pc-linux-gnu/3.4.3 isn't added to /etc/ld.so.conf. Everything is fine when added manually.
Experiencing the same Bug. Mozilla and friends wont start anymore. Reverted back to gcc-3.4.2-r2
It appears like the ebuild doesn't run gcc-config <new version> after building this version. For me it was enough to run gcc-config on the new version and everything worked just fine.
the libgcc_s bug is now fixed. everything else here is unrelated... sync in 15-30 minutes and re-emerge
I did a routing emerge -uD world, and gcc was updated, and the next emerge told me that gcc was not able to make binaries. So I made a helloworld program, and compiling that gives me: # gcc hello.c gcc: /usr/lib/gcc-lib/i686-pc-linux-gnu/3.4.2/specs: No such file or directory I did gcc-config i686-pc-linux-gnu-3.4.3 and it switched, ran source /etc/profile to use gcc in this session, but still the same error... Why does it still want 3.4.2? I think this is the same bug we are talking about? What can I do to remedy this? Do I have to revert?
Sorry, my bug was unrelated - It was bug 68799 and the fix was easy, just unset GCC_SPECS...
Travis Tilley said the original issue of this bug is fixed, for the unrelated other stuff in here this might be what you other guys are looking for: http://bugs.gentoo.org/show_bug.cgi?id=68799#c14 roger
Sorry, I am not convinced that this bug is indeed fixed. I switched my amd64 to profile 2005.0. I now have /usr/lib/gcc-lib/x86_64-pc-linux-gnu/lib64/libgcc_s.so.1 However this path is not in ld.so.conf (and if I add it manually and run ldconfig it keeps getting removed after a whiel by something). This is an up-to-date ~amd64 box.
sebastian, please open another bug as it's probably a different issue. Did you emerge gcc before or after switching to 2005.0? What version of gcc did you emerge that had this problem?