[Patch] libstdc++/14493
Benjamin Kosnik
bkoz@redhat.com
Thu Feb 1 11:18:00 GMT 2007
> 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
More information about the Libstdc++
mailing list