I have never been entirely clear on the details, but Joerg is pointing out that mixing compilers doesn't work very well. My impression is that each compiler version has its own private C++ ABI, compared to C where there is a defined API and you can link code from multiple compilers. Last time we had this discussion, we got to about here, with the other proposal being that C++11 was almost sufficiently common that asking for C++ at all should set GCC_REQD to 4.8, more or less. This would then sort of ensure that all C++ code was built with the same compiler. Now, C++11 is more normal, and building signficant amount of C++ code of which *none* requires C++11 is unusual. So, we could make c++ require 4.8, and c++11 require 4.8 and add --std=c++11, and punt on c++14 for now. I am curious what you think of that (plus anyone else with suggestions and accompanying rationale as to which of the suboptimal choices we should make). I am also curious if other packaging systems have useful approaches we can learn from.
Attachment:
signature.asc
Description: PGP signature