Joerg Sonnenberger <joerg%bec.de@localhost> writes:
That sounds like a framework bug. USE_LANGUAGES=c++11 is supposed to
ensure that the complier used is capable of c++11.
No, it doesn't. That wouldn't work as it results in random mixing of GCC
versions used with different ABIs. You have to preselect a version that
supports all the C++ ABIs you need.
I agree with you about the ABI issue, and have said that before. But, I
remembered that the last big discussion of this did not have full
consensus, and misremembered the outcome, thinking that we had put in
requiring newish gcc for c++11, realizing that it would add ABI issues
while maybe fixing some builds.
I just went and looked at mk/, and see that what actually happened was
simply setting --std for the various USE_LANGUAGES flavors, with no
influence on compiler selection.
I think pkgsrc should have a better default for c++ than using base 4.4.
So I think this is still a framework bug, just one that we know about
and didn't reach consensus to fix :-)
So trying to find a way forward:
1) Jason should set GCC_REQD=4.8 in mk.conf for his entire build. This
is not something to adjust in individual packages because of the ABI
issue. But, this solution is not entirely ok because the default
build with no patches/settings will not work.
2) We should consider changing mk/ somehow so that platforms with old
compilers (<4.8?) GCC_REQD is forced to something that at least
supports c++11 for either 1) all builds or 2) all builds with c++. I
thought we had almost consensus on this.
and explicitly not endorsing
3) Change mk/ so that c++11 sets newish GCC_REQD and c++ does not.
I am now thinking that there was disagreement between 2 and 3.
Option 1 doesn't involve changing pkgsrc so Jason can do that during the
freeze :-)
The other changes are obviously too big in freeze. But it would be
really good to fix this early in the next quarter.