Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 370271 - sys-libs/libstdc++-v3-3.3.6: libstdc++.so.5 does not include GLIBCPP_3.2* versions
Summary: sys-libs/libstdc++-v3-3.3.6: libstdc++.so.5 does not include GLIBCPP_3.2* ver...
Status: RESOLVED DUPLICATE of bug 304239
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Core system (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Gentoo Toolchain Maintainers
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-06-06 12:37 UTC by Andrew Hamilton
Modified: 2011-06-09 05:38 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Andrew Hamilton 2011-06-06 12:37:39 UTC
Recently, the emul maintainer Pacho Ramos (pacho@gentoo.org) removed from
app-emulation/emul-linux-x86-compat
the libraries in /usr/lib32/libstdc++-v3/, namely

/usr/lib32/libstdc++-v3
/usr/lib32/libstdc++-v3/libstdc++.so.5 -> libstdc++.so.5.0.7
/usr/lib32/libstdc++-v3/libstdc++.so.5.0.7

on the grounds that these are (or should be) duplicated by
sys-libs/libstdc++-v3-3.3.6
which provides

/usr/lib32/libstdc++.so.5 -> libstdc++.so.5.0.7
/usr/lib32/libstdc++.so.5.0.7

Unfortunately sys-libs/libstdc++-v3-3.3.6 does not contain the
full suite of libraries.  Specifically, it does not contain
the GLIBCPP_3.2* libraries.  Compare:

% strings /usr/lib32/libstdc++.so.5.0.7 | grep GLIBC
GLIBC_2.0
GLIBC_2.3
GLIBC_2.1
GLIBC_2.1.3
GLIBC_2.2
GLIBCPP_FORCE_NEW

to

% strings /usr/lib32/libstdc++-v3/libstdc++.so.5.0.7 | grep GLIBC
GLIBCPP_3.2
GLIBCPP_3.2.1
GLIBCPP_3.2.2
GLIBCPP_3.2.3
GLIBCPP_3.2.4
GLIBC_2.0
GLIBC_2.3
GLIBC_2.1
GLIBC_2.1.3
GLIBC_2.2
GLIBCPP_FORCE_NEW

The emulation libraries contain the GLIBCPP_3.2* libraries,
whereas the native libraries do not.  This is only a problem with
the 32-bit libraries.  The 64-bit libraries do contain GLIBCPP_3.2*.

As an example of how a legacy program fails to compile:

...
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../lib32/libpfutil.so: undefined reference to `vtable for std::basic_streambuf<char, std::char_traits<char> >@GLIBCPP_3.2'
...

It appears probable that the full set of libraries can be generated
by a corrected set of configure flags applied to
sys-libs/libstdc++-v3-3.3.6

Could that be done?  Pacho Ramos believes that this is the correct
solution, rather than keeping the libraries in an emulation package.

Thanks,
Andrew Hamilton
Comment 1 SpanKY gentoo-dev 2011-06-09 02:38:12 UTC
those arent libraries, they're symbol versions

gcc-3.3.6 doesnt do it either for the 32bit multilib
Comment 2 SpanKY gentoo-dev 2011-06-09 05:38:20 UTC

*** This bug has been marked as a duplicate of bug 304239 ***