[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: GCC 3.2 transition



>> Steve Langasek <vorlon@netexpress.net> writes:

 > >  A large majority of C++ packages depend on libstdc++*; the ones
 > >  that doesn't are probably libraries which have been linked using
 > >  cc instead of c++.  For example libsigc++-1.1-5 and libgtkmm1.3-14
 > >  would pass unnoticed even if they are both C++ libraries.  This
 > >  *might be* symptomatic of libtool libraries, counterexamples
 > >  appreciated.  In this case you'd have to look for typical C++
 > >  symbols in the output of, say, objdump -T, e.g. __pure_virtual,
 > >  __dynamic_cast.  In general you'd have to look for traces of C++
 > >  mangling.
 > 
 > It should be easy enough to find all the C++ libraries that need to be
 > recompiled.
 
 Sure.  I was talking about the libraries that /don't/ have dependencies
 on libstdc++.  libsigc++-1.1-5 and libgtkmm1.3-14 in my example both
 use libstdc++ but they don't have a dependency on it.  The only reason
 why this has gone unnoticed is because you need to use a specific
 version of the c++ in order to be able to use these libraries.
 
 > Anything that's missed by this process is either a package that
 > requires manual intervention to get it working with gcc 3.x, or a
 > package that has no dependencies on any other C++ packages.

 That's my point.  You can't use the binaries for the libraries I
 mentioned with any other version of c++ than the one used to compile
 those binaries, yet there's no information in the library that suggest
 it is actually a C++ library.  Look:

$ readelf -d /usr/lib/libgtkmm-1.3.so.14 | grep NEEDED | tr -s ' '
 0x00000001 (NEEDED) Shared library: [libsigc-1.1.so.5]
 0x00000001 (NEEDED) Shared library: [libgtk-x11-2.0.so.0]
 0x00000001 (NEEDED) Shared library: [libgdk-x11-2.0.so.0]
 0x00000001 (NEEDED) Shared library: [libatk-1.0.so.0]
 0x00000001 (NEEDED) Shared library: [libgdk_pixbuf-2.0.so.0]
 0x00000001 (NEEDED) Shared library: [libm.so.6]
 0x00000001 (NEEDED) Shared library: [libpangoxft-1.0.so.0]
 0x00000001 (NEEDED) Shared library: [libpangox-1.0.so.0]
 0x00000001 (NEEDED) Shared library: [libpango-1.0.so.0]
 0x00000001 (NEEDED) Shared library: [libgobject-2.0.so.0]
 0x00000001 (NEEDED) Shared library: [libgmodule-2.0.so.0]
 0x00000001 (NEEDED) Shared library: [libdl.so.2]
 0x00000001 (NEEDED) Shared library: [libglib-2.0.so.0]
 0x00000001 (NEEDED) Shared library: [libc.so.6]

-- 
Marcelo             | They stared at them. Staring is one of the few things
mmagallo@debian.org | frogs are good at.  Thinking isn't.
                    |         -- (Terry Pratchett, Wings)



Reply to: