Prohibit enum <-> int mixup

Kevin P. Fleming kpfleming@digium.com
Tue Feb 1 13:11:00 GMT 2011


On 01/31/2011 05:56 PM, Ian Lance Taylor wrote:
> Jonathan Wakely<jwakely.gcc@gmail.com>  writes:
>
>> On 31 January 2011 19:16, Ian Lance Taylor wrote:
>>>
>>> Using -std=c++0x will cause libstdc++ to build in C++0x mode, which last
>>> time I checked was not strictly ABI compatible with libstdc++ not built
>>> in C++0x mode.  So if you link with a dynamic libstdc++.so, you may get
>>> in trouble in some complex scenarios.
>>
>> Do you remember the details?  I thought we'd done a good job of not
>> breaking the ABI, and have avoided making some changes required by
>> C+0x because they change the ABI.  I'd like to document the potential
>> problems if you can remember where the incompatibilities are.
>
> http://gcc.gnu.org/PR45093

Well... based on Paolo's reply, that's quite concerning. Does this mean 
that distros need to provide two compiled versions of libstdc++ and the 
compiler wrapper will need to select the proper one to link against 
based on whether --std=c++0x was used or not? This could have major 
ripple effects as well, as various other C++ libraries (Boost, etc) will 
have to be compiled in both modes as well.

-- 
Kevin P. Fleming
Digium, Inc. | Director of Software Technologies
445 Jan Davis Drive NW - Huntsville, AL 35806 - USA
skype: kpfleming | jabber: kfleming@digium.com
Check us out at www.digium.com & www.asterisk.org



More information about the Gcc-help mailing list