Philipp Thomas wrote:
On Wed, 25 Nov 2009 11:40:25 +0100, Christian Schaubschlaeger wrote:
root:# objdump -p libstdc++.so.6.0.8
libstdc++.so.6.0.8: file format elf32-i386
ldconfig did find the library, but could not extract the version info
(regarding CXXABI and GLIBCXX), since it's obviously not there. And
I don't know why.
If there is no version info, you'll have to examine the build log of
your gcc (or start a new build and log that) and search for the
line(s) where libstdc+ is itself linked. I haven't looked at gcc
makefiles for a long time but ld should be passed a version script
that contains the versioning info ld will then put into the library.
Examining the 'libstdc++-v3/config.log' alone would tell the possible
reason. My (re)build of
cross-gcc-4.1.2 for SuSE 10.3 (no version info there earlier) told in
the $target/libstdc++-v3/config.log :
configure:87446: WARNING: === Linker version 1750 is too old for
configure:87448: WARNING: === full symbol versioning support in this
release of GCC.
configure:87450: WARNING: === You would need to upgrade your binutils to
version
configure:87452: WARNING: === 21400 or later and rebuild GCC.
configure:87454: WARNING: === Symbol versioning will be disabled.
The case really was that the earlier buggy gcc-4.1.2 toolchain had
the :
[root@Dell i686-suse-linux10.3]# bin/ld -V
GNU ld (Linux/GNU Binutils) 2.17.50.0.16.20070511
Supported emulations:
elf_i386
i386linux
Earlier there were no dot but a space between the version string and the
date string. Downgrading
the target binutils to 2.15.94 was my first workaround and with them the
version info was added.
Also the more uptodate binutils like 2.19.51 have this dot there so
either it should be fixed away
in the binutils sources or the gcc-4.1.2/libstdc++-v3/configure* stuff
be fixed to accept the dot
and interpret the binutils version right... The newer GCCs seem to
interpret this ok so looking at
the diffs could tell the patch....