HI everyone,

I've update the c++ news item for your consideration. I incorporated suggestions, in particular a note about incompatibility between c++11 compiled with different version of gcc differing in minor number (eg 4.7 and 4.8).


--
Anthony G. Basile, Ph. D.
Chair of Information Technology
D'Youville College
Buffalo, NY 14201
(716) 829-8197
Title: GCC 4.7 Introduces New c++11 ABI 
Author: Anthony G. Basile <bluen...@gentoo.org>
Content-Type: text/plain
Posted: 2014-10-20
Revision: 1
News-Item-Format: 1.0
Display-If-Installed: >=sys-devel/gcc-4.7.0
Display-If-Keyword: amd64
Display-If-Keyword: arm
Display-If-Keyword: mips
Display-If-Keyword: ppc
Display-If-Keyword: ppc64
Display-If-Keyword: x86
Display-If-Keyword: amd64-fbsd
Display-If-Keyword: x86-fbsd

GCC 4.7 introduced the new experimental 2011 ISO C++ standard [1], along with
its GNU variant.  This new standard is not the default in GCC 4.7, 4.8 or 4.9,
the default is still gnu++98, but it can be enabled by passing -std=c++11 or
-std=gnu++11 to CXXFLAGS.

Users that wish to try c++11 should exercise caution because it is not
ABI-compatible with c++98.  Nor is c++11 code compiled with gcc-4.7 
ABI-compatible
with c++11 compiled with 4.8, and vice versa.  Thus linking c++98 and c++11, or
c++11 compiled with different versions of gcc, is likely to cause breakage.  For
packages which are self-contained or do not link against any libraries written
in C++, there is no problem.  However, switching to c++11 and then building
packages which link against any of the numerous libraries in an incompatible
ABI can lead to a broken system.

This is a precautionary news item and the typical user need not do anything.
However, as c++11 gains in popularity and the number of packages using it
increase, it is important that users understand these issues.

For an ABI compliance checker, and more information about C++ ABIs, see [2].  

Ref.
[1] http://www.stroustrup.com/C++11FAQ.html
[2] http://ispras.linuxbase.org/index.php/ABI_compliance_checker

Reply via email to