diff --git a/include/boost/detail/container_fwd.hpp b/include/boost/detail/container_fwd.hpp index 659e428..7df7ccb 100644 --- a/include/boost/detail/container_fwd.hpp +++ b/include/boost/detail/container_fwd.hpp @@ -38,7 +38,11 @@ # define BOOST_DETAIL_NO_CONTAINER_FWD # elif defined(__GLIBCPP__) || defined(__GLIBCXX__) // GNU libstdc++ 3 -# if defined(_GLIBCXX_DEBUG) \ + // + // Disable forwarding for all recent versions, as the library has a + // versioned namespace mode, and I don't know how to detect it. +# if __GLIBCXX__ >= 20070513 \ + || defined(_GLIBCXX_DEBUG) \ || defined(_GLIBCXX_PARALLEL) \ || defined(_GLIBCXX_PROFILE) # define BOOST_DETAIL_NO_CONTAINER_FWD diff --git a/include/boost/detail/fenv.hpp b/include/boost/detail/fenv.hpp index 1ba8833..f048706 100644 --- a/include/boost/detail/fenv.hpp +++ b/include/boost/detail/fenv.hpp @@ -16,9 +16,10 @@ /* If we're using clang + glibc, we have to get hacky. * See http://llvm.org/bugs/show_bug.cgi?id=6907 */ -#if defined(__clang__) && \ +#if defined(__clang__) && (__clang_major__ < 3) && \ defined(__GNU_LIBRARY__) && /* up to version 5 */ \ - defined(__GLIBC__) /* version 6 + */ + defined(__GLIBC__) && /* version 6 + */ \ + !defined(_FENV_H) #define _FENV_H #include