Hi everyone,
I debated about whether to write a news item about c++11 abi. Usually
our news items are about some change which requires user intervention.
But this is just precautionary. With more packages needing c++11
because of source changes, we may want to inform users about breakage at
the ABI level in case they do something like add -std=c++11 to their
global CXXFLAGS.
Let me know if you think its worth sending out and/or any other suggestions.
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. Thus linking c++98 and c++11 objects is
likely to
cause breakage. For packages which are self-contained and 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 still
in the older ABI, can lead to a crippled 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 precautions.
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
--
Anthony G. Basile, Ph.D.
Gentoo Linux Developer [Hardened]
E-Mail : bluen...@gentoo.org
GnuPG FP : 1FED FAD9 D82C 52A5 3BAB DC79 9384 FA6E F52D 4BBA
GnuPG ID : F52D4BBA