summaryrefslogtreecommitdiff
path: root/boost/config
diff options
context:
space:
mode:
authorDongHun Kwak <dh0128.kwak@samsung.com>2016-10-06 10:33:54 +0900
committerDongHun Kwak <dh0128.kwak@samsung.com>2016-10-06 10:36:09 +0900
commitd9ec475d945d3035377a0d89ed42e382d8988891 (patch)
tree34aff2cee4b209906243ab5499d61f3edee2982f /boost/config
parent71d216b90256936a9638f325af9bc69d720e75de (diff)
downloadboost-d9ec475d945d3035377a0d89ed42e382d8988891.tar.gz
boost-d9ec475d945d3035377a0d89ed42e382d8988891.tar.bz2
boost-d9ec475d945d3035377a0d89ed42e382d8988891.zip
Imported Upstream version 1.60.0
Change-Id: Ie709530d6d5841088ceaba025cbe175a4ef43050 Signed-off-by: DongHun Kwak <dh0128.kwak@samsung.com>
Diffstat (limited to 'boost/config')
-rw-r--r--boost/config/compiler/clang.hpp22
-rw-r--r--boost/config/compiler/gcc.hpp20
-rw-r--r--boost/config/compiler/intel.hpp6
-rw-r--r--boost/config/compiler/sunpro_cc.hpp10
-rw-r--r--boost/config/compiler/visualc.hpp1
-rw-r--r--boost/config/platform/cloudabi.hpp18
-rw-r--r--boost/config/platform/macos.hpp2
-rw-r--r--boost/config/platform/win32.hpp8
-rw-r--r--boost/config/select_platform_config.hpp4
-rw-r--r--boost/config/stdlib/dinkumware.hpp11
-rw-r--r--boost/config/stdlib/libstdcpp3.hpp4
-rw-r--r--boost/config/suffix.hpp20
12 files changed, 105 insertions, 21 deletions
diff --git a/boost/config/compiler/clang.hpp b/boost/config/compiler/clang.hpp
index 47ea65b0a2..5481e5ee62 100644
--- a/boost/config/compiler/clang.hpp
+++ b/boost/config/compiler/clang.hpp
@@ -23,6 +23,10 @@
#define __has_extension __has_feature
#endif
+#ifndef __has_attribute
+#define __has_attribute(x) 0
+#endif
+
#if !__has_feature(cxx_exceptions) && !defined(BOOST_NO_EXCEPTIONS)
# define BOOST_NO_EXCEPTIONS
#endif
@@ -58,9 +62,11 @@
// even though it defines __SIZEOF_INT128__.
// See https://svn.boost.org/trac/boost/ticket/10418
// Only re-enable this for nvcc if you're absolutely sure
-// of the circumstances under which it's supported:
+// of the circumstances under which it's supported.
+// Similarly __SIZEOF_INT128__ is defined when targetting msvc
+// compatibility even though the required support functions are absent.
//
-#if defined(__SIZEOF_INT128__) && !defined(__CUDACC__)
+#if defined(__SIZEOF_INT128__) && !defined(__CUDACC__) && !defined(_MSC_VER)
# define BOOST_HAS_INT128
#endif
@@ -255,13 +261,15 @@
// All versions with __cplusplus above this value seem to support this:
# define BOOST_NO_CXX14_DIGIT_SEPARATORS
#endif
-
-
-// Unused attribute:
-#if defined(__GNUC__) && (__GNUC__ >= 4)
-# define BOOST_ATTRIBUTE_UNUSED __attribute__((unused))
+//
+// __builtin_unreachable:
+#if defined(__has_builtin) && __has_builtin(__builtin_unreachable)
+#define BOOST_UNREACHABLE_RETURN(x) __builtin_unreachable();
#endif
+// Clang has supported the 'unused' attribute since the first release.
+#define BOOST_ATTRIBUTE_UNUSED __attribute__((__unused__))
+
#ifndef BOOST_COMPILER
# define BOOST_COMPILER "Clang version " __clang_version__
#endif
diff --git a/boost/config/compiler/gcc.hpp b/boost/config/compiler/gcc.hpp
index 41705df039..d9dd59dc5f 100644
--- a/boost/config/compiler/gcc.hpp
+++ b/boost/config/compiler/gcc.hpp
@@ -143,6 +143,19 @@
#if defined(__SIZEOF_INT128__) && !defined(__CUDACC__)
# define BOOST_HAS_INT128
#endif
+//
+// Recent GCC versions have a __float128 native type, we need to
+// include a std lib header to detect this - not ideal, but we'll
+// be including <cstddef> later anyway when we select the std lib.
+//
+#ifdef __cplusplus
+#include <cstddef>
+#else
+#include <stddef.h>
+#endif
+#if defined(_GLIBCXX_USE_FLOAT128) && !defined(__STRICT_ANSI__)
+# define BOOST_HAS_FLOAT128
+#endif
// C++0x features in 4.3.n and later
//
@@ -263,7 +276,12 @@
//
// Unused attribute:
#if __GNUC__ >= 4
-# define BOOST_ATTRIBUTE_UNUSED __attribute__((unused))
+# define BOOST_ATTRIBUTE_UNUSED __attribute__((__unused__))
+#endif
+//
+// __builtin_unreachable:
+#if BOOST_GCC_VERSION >= 40800
+#define BOOST_UNREACHABLE_RETURN(x) __builtin_unreachable();
#endif
#ifndef BOOST_COMPILER
diff --git a/boost/config/compiler/intel.hpp b/boost/config/compiler/intel.hpp
index ecfacc5e70..7789b94464 100644
--- a/boost/config/compiler/intel.hpp
+++ b/boost/config/compiler/intel.hpp
@@ -20,6 +20,9 @@
#include <boost/config/compiler/visualc.hpp>
+#undef BOOST_MSVC
+#undef BOOST_MSVC_FULL_VER
+
#if (__INTEL_COMPILER >= 1500) && (_MSC_VER >= 1900)
//
// These appear to be supported, even though VC++ may not support them:
@@ -36,6 +39,9 @@
#include <boost/config/compiler/gcc.hpp>
+#undef BOOST_GCC_VERSION
+#undef BOOST_GCC_CXX11
+
#endif
#undef BOOST_COMPILER
diff --git a/boost/config/compiler/sunpro_cc.hpp b/boost/config/compiler/sunpro_cc.hpp
index 2fd6d3ece0..6017660cbb 100644
--- a/boost/config/compiler/sunpro_cc.hpp
+++ b/boost/config/compiler/sunpro_cc.hpp
@@ -125,19 +125,15 @@
#define BOOST_NO_CXX11_FINAL
#endif
-//
-// Issues that effect all known versions:
-//
-// Variadic templates pass our test case, but enabling this
-// causes the compiler to issue a signal 11 and bail out
-// in various libraries. The others fail our test cases.
-//
+#if (__SUNPRO_CC < 0x5140) || (__cplusplus < 201103)
#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
#define BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS
#define BOOST_NO_CXX11_DECLTYPE_N3276
#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
#define BOOST_NO_CXX11_REF_QUALIFIERS
+#endif
+
#define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
//
// C++0x features
diff --git a/boost/config/compiler/visualc.hpp b/boost/config/compiler/visualc.hpp
index 93908cea50..baaab589ef 100644
--- a/boost/config/compiler/visualc.hpp
+++ b/boost/config/compiler/visualc.hpp
@@ -55,6 +55,7 @@
# define BOOST_NO_CXX11_EXTERN_TEMPLATE
// Variadic macros do not exist for VC7.1 and lower
# define BOOST_NO_CXX11_VARIADIC_MACROS
+# define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
#endif
#if _MSC_VER < 1500 // 140X == VC++ 8.0
diff --git a/boost/config/platform/cloudabi.hpp b/boost/config/platform/cloudabi.hpp
new file mode 100644
index 0000000000..bed7b6318d
--- /dev/null
+++ b/boost/config/platform/cloudabi.hpp
@@ -0,0 +1,18 @@
+// Copyright Nuxi, https://nuxi.nl/ 2015.
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#define BOOST_PLATFORM "CloudABI"
+
+#define BOOST_HAS_DIRENT_H
+#define BOOST_HAS_STDINT_H
+#define BOOST_HAS_UNISTD_H
+
+#define BOOST_HAS_CLOCK_GETTIME
+#define BOOST_HAS_EXPM1
+#define BOOST_HAS_GETTIMEOFDAY
+#define BOOST_HAS_LOG1P
+#define BOOST_HAS_NANOSLEEP
+#define BOOST_HAS_PTHREADS
+#define BOOST_HAS_SCHED_YIELD
diff --git a/boost/config/platform/macos.hpp b/boost/config/platform/macos.hpp
index 6d876b12db..5be4e3b3da 100644
--- a/boost/config/platform/macos.hpp
+++ b/boost/config/platform/macos.hpp
@@ -47,7 +47,7 @@
# define BOOST_NO_STDC_NAMESPACE
# endif
-# if (__GNUC__ == 4)
+# if (__GNUC__ >= 4)
// Both gcc and intel require these.
# define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
diff --git a/boost/config/platform/win32.hpp b/boost/config/platform/win32.hpp
index 60a29abe83..450158fbaa 100644
--- a/boost/config/platform/win32.hpp
+++ b/boost/config/platform/win32.hpp
@@ -74,6 +74,14 @@
# define BOOST_HAS_GETSYSTEMTIMEASFILETIME
#endif
+//
+// Windows Runtime
+//
+#if defined(WINAPI_FAMILY) && \
+ (WINAPI_FAMILY == WINAPI_FAMILY_APP || WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP)
+# define BOOST_NO_ANSI_APIS
+#endif
+
#ifndef BOOST_DISABLE_WIN32
// WEK: Added
#define BOOST_HAS_FTIME
diff --git a/boost/config/select_platform_config.hpp b/boost/config/select_platform_config.hpp
index acd1409ebc..62fd818b93 100644
--- a/boost/config/select_platform_config.hpp
+++ b/boost/config/select_platform_config.hpp
@@ -80,6 +80,10 @@
#elif defined(__VMS)
// VMS:
# define BOOST_PLATFORM_CONFIG "boost/config/platform/vms.hpp"
+
+#elif defined(__CloudABI__)
+// Nuxi CloudABI:
+# define BOOST_PLATFORM_CONFIG "boost/config/platform/cloudabi.hpp"
#else
# if defined(unix) \
diff --git a/boost/config/stdlib/dinkumware.hpp b/boost/config/stdlib/dinkumware.hpp
index 90c45c6c23..af8ddda528 100644
--- a/boost/config/stdlib/dinkumware.hpp
+++ b/boost/config/stdlib/dinkumware.hpp
@@ -172,10 +172,19 @@
// Bug specific to VC14,
// See https://connect.microsoft.com/VisualStudio/feedback/details/1348277/link-error-when-using-std-codecvt-utf8-utf16-char16-t
// and discussion here: http://blogs.msdn.com/b/vcblog/archive/2014/11/12/visual-studio-2015-preview-now-available.aspx?PageIndex=2
-#if _CPPLIB_VER == 650
+#if defined(_CPPLIB_VER) && (_CPPLIB_VER == 650)
# define BOOST_NO_CXX11_HDR_CODECVT
#endif
+#if defined(_CPPLIB_VER) && (_CPPLIB_VER >= 650)
+// If _HAS_AUTO_PTR_ETC is defined to 0, std::auto_ptr is not available.
+// See https://www.visualstudio.com/en-us/news/vs2015-vs.aspx#C++
+// and http://blogs.msdn.com/b/vcblog/archive/2015/06/19/c-11-14-17-features-in-vs-2015-rtm.aspx
+# if defined(_HAS_AUTO_PTR_ETC) && (_HAS_AUTO_PTR_ETC == 0)
+# define BOOST_NO_AUTO_PTR
+# endif
+#endif
+
#ifdef _CPPLIB_VER
# define BOOST_DINKUMWARE_STDLIB _CPPLIB_VER
#else
diff --git a/boost/config/stdlib/libstdcpp3.hpp b/boost/config/stdlib/libstdcpp3.hpp
index 7d27b0cc0c..9718bedcf2 100644
--- a/boost/config/stdlib/libstdcpp3.hpp
+++ b/boost/config/stdlib/libstdcpp3.hpp
@@ -251,6 +251,10 @@
#define BOOST_NO_CXX11_HDR_FUTURE
#define BOOST_NO_CXX11_HDR_FORWARD_LIST
#define BOOST_NO_CXX11_HDR_ATOMIC
+// shared_ptr is present, but is not convertible to bool
+// which causes all kinds of problems especially in Boost.Thread
+// but probably elsewhere as well.
+#define BOOST_NO_CXX11_SMART_PTR
#endif
#if (!defined(_GLIBCXX_HAS_GTHREADS) || !defined(_GLIBCXX_USE_C99_STDINT_TR1))
diff --git a/boost/config/suffix.hpp b/boost/config/suffix.hpp
index c0ba333918..17bf1020f5 100644
--- a/boost/config/suffix.hpp
+++ b/boost/config/suffix.hpp
@@ -444,10 +444,12 @@ namespace std {
// is defined, in which case it evaluates to return x; Use when you have a return
// statement that can never be reached.
-#ifdef BOOST_NO_UNREACHABLE_RETURN_DETECTION
-# define BOOST_UNREACHABLE_RETURN(x) return x;
-#else
-# define BOOST_UNREACHABLE_RETURN(x)
+#ifndef BOOST_UNREACHABLE_RETURN
+# ifdef BOOST_NO_UNREACHABLE_RETURN_DETECTION
+# define BOOST_UNREACHABLE_RETURN(x) return x;
+# else
+# define BOOST_UNREACHABLE_RETURN(x)
+# endif
#endif
// BOOST_DEDUCED_TYPENAME workaround ------------------------------------------//
@@ -501,6 +503,16 @@ namespace boost{
# endif
}
#endif
+// same again for __float128:
+#if defined(BOOST_HAS_FLOAT128) && defined(__cplusplus)
+namespace boost {
+# ifdef __GNUC__
+ __extension__ typedef __float128 float128_type;
+# else
+ typedef __float128 float128_type;
+# endif
+}
+#endif
// BOOST_[APPEND_]EXPLICIT_TEMPLATE_[NON_]TYPE macros --------------------------//