There is also the ABI breaking mess in libstdc++ to consider of course,
i.e. depending on how libstdc++ from GCC 5.1+ is installed, code
compiled with -std=c++11 may or may not link correctly with -std=c++03.
I'm coming to the conclusion that we basically punt on this, and if
users want to ensure that things work well they need to choose
up-front a suitable compiler to use for all their builds that will
satisfy all of their *_REQD. This is basically what we (Joyent) do
currently, though at some point we'll need to go to newer than GCC 4.9
for the latest C++ stuff.