libstdc++ c++98 & c++11 ABI incompatibility

Jason Merrill jason@redhat.com
Tue Jul 3 19:33:00 GMT 2012


On 07/03/2012 08:08 AM, Michael Matz wrote:
> Hi,
>
> On Mon, 2 Jul 2012, Jeff Law wrote:
>
>> On 07/02/2012 11:53 AM, Paolo Carlini wrote:
>>>
>>> I also want to mention (I don't think somebody did already in the
>>> thread) that at some point, with Jason too, we discussed the idea of
>>> adding to each binary a marker about the ABI version which then would be
>>> used by the linker to warn or error out. This vague idea goes  of course
>>> well beyond our specific needs for the C++98 conforming std::list vs the
>>> C++11 conforming version of it.
>> Yup.  I've floated this idea as well.  Some kind of note section with abi
>> information in it plus some linker magic to detect and error/warn when
>> mixing/matching bits with different abis.
>
> As we see in the PR it's also the dynamic loader that would have to
> prevent mixing any c++98 and c++11 code in the same process image :-/

We don't want to prevent mixing different versions; we want them to 
coexist as much as possible, just prevent them from being treated as the 
same.  I posted some ideas for moving forward in a new thread:

http://gcc.gnu.org/ml/gcc/2012-07/msg00031.html

Basically, I'm wondering if we can extend the compiler to use symbol 
versioning to deal with these issues.

Jason



More information about the Gcc mailing list