John Maddock wrote:
I've just added travis support to Boost.Config, the problem is that there are a large number of clang failures that I simply don't know how to fix, see: https://travis-ci.org/boostorg/config
The errors occur because clang chokes on libstdc++ code, so while <regex> exists (for example), clang won't parse it. Any ideas anyone?
The configuration with the built-in clang++ in C++11 mode should just be disabled; the default libstdc++ on Travis is 4.6 and is too broken for any serious C++11 work. Clang 3.5 uses libstdc++ 4.8, for which Config probably disables <regex> as known non-working, which is why it passes. Clang 3.6 and above on that configuration use libstdc++ 4.9, which we probably assume is working, but apparently not on Clang (it doesn't like the constant expression 1 << 32.) So we should disable <regex> 4.9 on Clang. This: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78905 says that _GLIBCXX_REGEX_STATE_LIMIT is defined on 5 and _GLIBCXX_RELEASE is defined on 7, although I see that we have our own macro BOOST_LIBSTDCXX_VERSION, so we could just use that.