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)'

I've done a revdep-rebuild to make sure things are consistent,
and it says things are OK.  Google doesn't seem to know that
error message, and I couldn't find anything relevent at
bugs.gentoo.org.

The only thing I can think of is that it has to do with some
libraries having been compiled with an older version of gcc,
but I'm not sure how to check for that...

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?

The fix is to go back and re-emerge all packages that linked against the
old libstdc++.  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

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.


Reply via email to