On 01/31/2011 05:56 PM, Ian Lance Taylor wrote:
Jonathan Wakely<jwakely.gcc@xxxxxxxxx> 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@xxxxxxxxxx
Check us out at www.digium.com & www.asterisk.org