[cfe-dev] RFC: We should take a more conservative approach to libstdc++ compatibility...

Chris Lattner clattner at apple.com
Thu Jan 10 21:39:13 PST 2013


On Jan 10, 2013, at 7:34 PM, Chandler Carruth <chandlerc at gmail.com> wrote:

> Greetings all! This is the result of a chat between Richard and myself just now.
> 
> These days Clang does a great job of detecting GCC and libstdc++ installations and using them... such a great job that Clang installed today will work with GCC 4.9 if such a thing existed and were installed.
> 
> As we've noticed recently, this can cause problems, and now that we have clang releases and GCC releases with decent compatibility out in the wild (3.2 and 4.{6,7} resp.), I think we should take a different approach:
> 
> 1) Set a max GCC version we use, and on trunk have it be silly (v99.99.99).
> 2) On the release branch, lower this to the highest GCC version we test that release against. This protects a released clang from using newer GCC libstdc++ which is both good and bad -- no improvements from updates, but no breakage from updates.
> 3) Teach the driver about incompatible versions of GCC and libstdc++, and have it try to find a different version when available. (Mostly relevant to 4.4 and 4.5 and C++11 headers...)
> 4) Teach Clang itself to warn on a libstdc++ version macro which is one of the versions that has incompatibilities so users understand what is happening.

Makes sense to me, though I don't want to make the release process unreasonably complicated.  Should we have the week before the release branch figure out #2 and (temporarily) set it on mainline?

-Chris




More information about the cfe-dev mailing list