This is the mail archive of the
libstdc++@gcc.gnu.org
mailing list for the libstdc++ project.
Re: EEEEKS! The mangling changed!
- From: Loren James Rittle <rittle at latour dot rsch dot comm dot mot dot com>
- To: libstdc++ at gcc dot gnu dot org
- Cc: aoliva at redhat dot com
- Date: Thu, 4 Dec 2003 16:22:45 -0600 (CST)
- Subject: Re: EEEEKS! The mangling changed!
- Organization: Networks and Infrastructure Lab (IL02/2240), Motorola Labs
- References: <20031130021827.GA20476@alinoe.com><m3ad6ewq0i.fsf@uniton.integrable-solutions.net><orllpw3aih.fsf@free.redhat.lsd.ic.unicamp.br><m3he0ky6ok.fsf@uniton.integrable-solutions.net>
> Except that the mangled name is not what one would be entitled to
> expect. If the Standard says something is in namespace std, it had
> better be, and its name mangling should reflect that, otherwise we're
> defeating a major point of the multi-vendor C++ ABI. [...]
> Am I missing anything?
I think you are missing the following point: No standard (including
the multi-vendor C++ ABI) dictates the precise contents of standard
library headers. There is absolutely nothing which states how things
must get into those std namespaces (and how may affect how it is
mangled). I can understand how a user would arrive at the conclusion,
but users are not entitled to expect your expectation IMHO (at least,
clearly not with the current implementations ;-).
To allow that user entitlement means violation of ODR or extra levels
of indirection, if one wants to allow multiple concrete
implementations of library features. Does the multi-vendor C++ ABI
even discuss the issue of multiple concrete implementations, standard
ways to key between them, and separation of headers from implementations
(a topic not even raised by the C++ standard itself), etc?
Regards,
Loren