On 2009-09-28, walt <w41...@gmail.com> wrote: > On 09/27/2009 09:38 PM, Grant Edwards wrote: >> I tried doing an upgrade (the usual emerge -auvND world), and >> it choked on glibmm 2.20.1. The compile failed the basic error >> seems to be this: >> >> generate_defs_glib.o: In function `main': >> generate_defs_glib.cc:(.text+0x6b): undefined reference to >> `std::basic_ostream<char, std::char_traits<char> >& >> std::__ostream_insert<char, std::char_traits<char> >> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, int)'
[...] > Those undefined references are supplied by libstdc++, so it > looks like you have a classic case of duelling library > versions. > > The error messages mention gcc-3.4.6, which is actually quite > old now, so perhaps you've switched to gcc-4.x.x now? Yes! I suspected that was the issue, but I had missed noticing the 3.4.6 in some of the libstdc++ paths. > The fix is to go back and re-emerge all packages that linked > against the old libstdc++. Thanks. I figured it was something like that. > One way to find them is to run fix_libtool_files.sh and note > which ones get fixed. You still need to re-emerge those > packages, though, if you're now using gcc-4.x Yes, I'm now using gcc 4. > I would actually just grep through all the .la files for > "3.4.6" (assuming that's your *old* version of gcc) and > re-emerge the packages that own those files. Maybe someone > else knows an easier way. I'll try fix_libtool_files.sh first, then go from there. -- Grant