Gentoo Archives: gentoo-dev

From: "Anthony G. Basile" <blueness@g.o>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] RFC: News item regarding c++98 vs c++11
Date: Mon, 20 Oct 2014 11:29:00
Message-Id: 5444F23A.8070403@gentoo.org
In Reply to: Re: [gentoo-dev] RFC: News item regarding c++98 vs c++11 by Alex Xu
1 On 10/19/14 19:08, Alex Xu wrote:
2 > On 19/10/14 06:53 PM, Anthony G. Basile wrote:
3 >> the default is still gnu++98
4 > what does this mean, how does it differ from c++98?
5
6 Its a gnu dialect. I'm not sure of the details of how it deviates from
7 the strict standard. I'm more familiar with how c++11 differs from
8 c++98. Google around and let me know what you find.
9
10 >
11 >> in the older ABI, can lead to a crippled system.
12 > what do you mean, will other packages break too? maybe "may lead to
13 > non-functioning or possibly broken packages". adjust as necessary; I am
14 > not familiar with what may break if incompatible libraries are linked
15 > together.
16
17 If you build a library in the "other" abi, then executables which link
18 against it may fail. I say "may" because you might get lucky and just
19 miss one of the changes. See
20 https://gcc.gnu.org/wiki/Cxx11AbiCompatibility. That's only for gcc-4.7
21 though. I got a feeling that list is not complete.
22
23 >
24 >> However, as c++11 gains in popularity and the number of packages using it
25 >> increase, it is important that users understand these precautions.
26 > what precautions? what am I supposed to do? is there a option to warn me
27 > if I try to do something stupid? should I check some packages on my system?
28
29 Do nothing. A careful reading implies that you should not just add
30 -std=c++11 or gnu++11 to your compiler flags without knowing that things
31 can break. I can emphasis that at this point.
32
33 >
34 > remember that gcc-4.7 is literally all (standard) gentoo users, so a
35 > news item needs to be clear about who exactly needs to care about the
36 > issue, which here appears to be a small subset of "all (standard) gentoo
37 > users"; namely, those who specifically opt in to using C++11 (or are
38 > compiling such packages manually).
39
40 User fool around with stuff all the time which I like. This is a
41 cautionary note which increases awareness especially when we get bug
42 reports. The real question to my colleagues is whether they think this
43 is news worthy or not. I don't want to turn it into a c++11 gentoo howto.
44
45 >
46 > also, strictly speaking, last I checked, the name of the standard is
47 > C++11; c++11 is just what gcc takes.
48 >
49 > and maybe some links about what could break if I link incompatible
50 > libraries together would be helpful, since the links don't seem to go
51 > over that (at least apparently; I did not read the entire contents).
52 >
53
54 Basically what happens is you get unresolved symbols. You will know them
55 because of the charactarist c++ mangled names which you can demangle
56 with c++filt.
57
58 --
59 Anthony G. Basile, Ph.D.
60 Gentoo Linux Developer [Hardened]
61 E-Mail : blueness@g.o
62 GnuPG FP : 1FED FAD9 D82C 52A5 3BAB DC79 9384 FA6E F52D 4BBA
63 GnuPG ID : F52D4BBA