This is the mail archive of the
mailing list for the GCC project.
[Bug libstdc++/24660] New: versioning weak symbols in libstdc++
- From: "bkoz at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 3 Nov 2005 19:06:48 -0000
- Subject: [Bug libstdc++/24660] New: versioning weak symbols in libstdc++
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
This is an experiment in versioning the vague parts of libstdc++. It is
apparent that some kind of control over weak symbols is necessary for accurate
versioning of C++ constructs WRT shared libraries.
To that end, the obvious point of influence is the namespace name itself, since
it is part of the mangled symbol name.
When trying to version with namespace names, there are a couple of problems.
See Sutter, N1344 for more details and a general problem statement. There
appear to be two general solutions.
One, relax specialization rules WRT declared namespace. Motivations for the
current rules appear somewhat vague, but are best described here:
Two, invent a mechanism to allow lookup and specialization. This was done for
g++ as part of the debug mode work, and is called namespace association.
This patch uses approach two. This was anticipated and discussed as part of the
Kona discussion, and was also subject of a paper at last year's GCC summit.
There are a couple of outstanding issues with this patch.
1) --disable-symvers for the time being
2) ext, "C" headers, and libsupc++ bits need to be thought through
3) longstanding issues with things like std::swap, see other PR's
4) new issues with mainline. See attached for problem statement.
This bug report is really just a convenience for me.
Summary: versioning weak symbols in libstdc++
AssignedTo: bkoz at gcc dot gnu dot org
ReportedBy: bkoz at gcc dot gnu dot org