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 |