aboutsummaryrefslogtreecommitdiff
path: root/devel/boost-libs/files/patch-boost_config_compiler_clang.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'devel/boost-libs/files/patch-boost_config_compiler_clang.hpp')
-rw-r--r--devel/boost-libs/files/patch-boost_config_compiler_clang.hpp34
1 files changed, 34 insertions, 0 deletions
diff --git a/devel/boost-libs/files/patch-boost_config_compiler_clang.hpp b/devel/boost-libs/files/patch-boost_config_compiler_clang.hpp
new file mode 100644
index 000000000000..ed9ad4e0c569
--- /dev/null
+++ b/devel/boost-libs/files/patch-boost_config_compiler_clang.hpp
@@ -0,0 +1,34 @@
+--- boost/config/compiler/clang.hpp.orig 2016-09-21 14:33:21 UTC
++++ boost/config/compiler/clang.hpp
+@@ -110,6 +110,16 @@
+ # endif
+ #endif
+
++//
++// Pick up _LIBCPP_VERSION definition if we are using libc++
++// If _LIBCPP_VERSION is not defined, then we will assume that
++// we are compiling on FreeBSD 9.x and using ancient libstdc++
++// from base gcc 4.2 with limited c++11 support.
++//
++#ifdef __cplusplus
++# include <ciso646>
++#endif
++
+ #if !__has_feature(cxx_auto_type)
+ # define BOOST_NO_CXX11_AUTO_DECLARATIONS
+ # define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
+@@ -192,7 +202,13 @@
+ # define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
+ #endif
+
+-#if !__has_feature(cxx_rvalue_references)
++//
++// clang on FreeBSD 9.x uses libstdc++ from base GCC 4.2.1 which
++// does not support std::forward which this feature requires.
++// Assume that the lack of a _LIBCPP_VERSION definition indicates
++// that is our environment.
++//
++#if !__has_feature(cxx_rvalue_references) || !defined(_LIBCPP_VERSION)
+ # define BOOST_NO_CXX11_RVALUE_REFERENCES
+ #endif
+