This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Dealing with C++98/11 ABI incompatibilities


On Wed, Jul 4, 2012 at 3:22 PM, Michael Matz <matz@suse.de> wrote:
> Hi,
>
> On Wed, 4 Jul 2012, Richard Guenther wrote:
>
>> > [... mangling change ...]
>>
>> That would not address the issue of interoperability of a C++03 library
>> with a C++11 program or vice versa if they are using any of the changed
>> interfaces for interoperability.  Passing pointers to such objects still
>> would work and break unnoticed.
>
> But it's the best we can possibly do _if_ we want to conform to c++11 in
> the v6 ABI.  IMHO we want to, so we have to at least make 98/11 code
> coexist in the same process image, which means mangling changes.  That the
> code can't interoperate is understood.
>
> It will by the way not break unnoticed: interfaces using the problematic
> types would be mangled differently, and hence c++98 code would silently be
> resolved to a c++11 variant expecting a different layout.

Hmm, ok.  I can see people wanting to use C++11 as implementation language
but interfacing with C++98, thus have a way to use the C++98 std::list from
C++11 code.

Btw, why use a bitmask?  Isn't it enough to have a single number, viewed
as an ABI suffix?

Richard.

>
> Ciao,
> Michael.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]