Gentoo Archives: gentoo-dev

From: "Jan Kundrát" <jkt@g.o>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] How to support C++11 in libraries?
Date: Thu, 19 Dec 2013 08:43:50
Message-Id: fa67a901-39b8-4a6b-8d95-13e34c84d42d@gentoo.org
In Reply to: Re: [gentoo-dev] How to support C++11 in libraries? by heroxbd@gentoo.org
1 On Thursday, 19 December 2013 02:41:55 CEST, heroxbd@g.o wrote:
2 > I'd like to make an analogy to the version bump of gcc[1]. We (gentoo)
3 > decide to support c++11 officially or not. If so, open a tracker bug to
4 > push it globally. If not, patch lldb to support non-c++11, or leave it
5 > up to the user to fiddle with the CXXFLAGS, where we only point the user
6 > by to proper docs.
7
8 To be honest, I do not really see a link between the "let's bring in a new
9 version of compiler, it is a bit stricter in some situations, but these
10 were bugs anyway, like missing headers or unfounded assumptions about
11 memcpy()" with "let's support a new version of language which produces
12 object files with different ABI". Perhaps a Python 2.6 vs. Python 3.3 is a
13 better analogy?
14
15 Anyway, GCC 4.8 is pretty clear that the C++11's support is still
16 experimental [1] and subject to change [2]. The upstream developers have
17 announced that they plan to break the ABI of the code using C++11 features
18 in 4.9 [3].
19
20 Please also note that this is a very complicated problem, much more
21 difficult than "code uses C++11's features -> it is incompatible". So far,
22 the only known incompatibility is in the way STL is built. The impact of
23 the other changes like the modified signatures of a couple of STL methods
24 is not clear to me (and I did search for an ultimate answer). Even the
25 document listing the breakage [4] does not provide a clear message "if you
26 do $FOO, stuff breaks, but $BAR is completely safe".
27
28 For example, there is no reason for not building e.g. Qt5 with C++11
29 support. In fact, limiting it to use just the C++98 features would be
30 considered a regression from the perspective of a developer using Qt.
31
32 Right now, it seems that we shall wait at least for GCC 4.9 to come and for
33 upstream to decide how to solve this properly.
34
35 Cheers,
36 Jan
37
38 [1] http://gcc.gnu.org/gcc-4.8/cxx0x_status.html
39 [2] https://lwn.net/Articles/552831/
40 [3] https://lwn.net/Articles/552750/
41 [4] http://gcc.gnu.org/wiki/Cxx11AbiCompatibility

Replies

Subject Author
Re: [gentoo-dev] How to support C++11 in libraries? "Michał Górny" <mgorny@g.o>