This is the mail archive of the
libstdc++@gcc.gnu.org
mailing list for the libstdc++ project.
Re: [Patch] libstdc++/14493
- From: Benjamin Kosnik <bkoz at redhat dot com>
- To: Paolo Carlini <pcarlini at suse dot de>
- Cc: libstdc++ <libstdc++ at gcc dot gnu dot org>
- Date: Thu, 01 Feb 2007 12:18:11 +0100
- Subject: Re: [Patch] libstdc++/14493
- References: <45BF8A15.90604@suse.de>
this is the result of the recent discussions in mailing list and audit
trail, pretty straightforward at this point. I'm going to wait a bit in
case there are better options for gnu.ver: not knowing well the
rationale behind the CXXABI tag, I was rather surprised to find
std::bad_alloc::~bad_alloc exported as a generic library, not libsupc++
symbol (it belongs to the latter, strictly speaking). In the below I'm
simply continuing the tradition, adjusting the existing exports and
adding some for the what method (at 3.4.11, because we may want to
commit the debug-mode thread safety fixes separately in 4_2-branch).
Hey Paolo. Sorry for the delay.
First off: I think the non-versioning parts of this patch are great.
Kudos for fixing this long-standing issue in a consistent way. (As an
aside, reading through that bug report: I miss Phil! His email is always
quite funny, and intentionally so.)
Clearly, as a QoI issue, users like demangled strings in error messages.
We opened the door a bit with __verbose_terminate_handler and clearly
that set expectations for everybody for demangled names. (And I prefer
them too.) So, verbosity wins.
We should remember this when doing future work.
To address your question about libsupc++ symbols exported in GLIBCXX
instead of CXXABI, the answer is pretty simple: the symbols in question
are in namespace std. I can see where you are coming from, but I think
the current behavior is defensible. We're trying to keep namespaces as
the notation for versioning, and I think this is being done consistently
with all the various versioning options.
Anyway, on to the versioning issue.
The last released libstdc++ is 6.0.8 in gcc-4.1.1. It looks like
gcc-4.1.2 will also have this version, which corresponds to GLIBCXX_3.4.8.
The versioning for all unreleased gcc's should all be equivalent, and
start with
GLIBCXX_3.4.9
Therefore, it looks like mainline is currently wrong: what's in
GLIBCXX_3.4.10 should be in GLIBCXX_3.4.9 (and those changes should go
to gcc-4_2-branch) and the new changes that you propose should also go
in GLIBCXX_3.4.9 (and also go in gcc-4_2-branch.)
Capiche?
Then everything will be in sync again. The goal is to keep mainline and
gcc-4_2-branch in sync, symbol-wise until gcc-4.2.0 is officially
released. (And after that, in sync for as long as possible.)
-benjamin