summaryrefslogtreecommitdiff
path: root/boost/config/platform
diff options
context:
space:
mode:
Diffstat (limited to 'boost/config/platform')
-rw-r--r--boost/config/platform/aix.hpp2
-rw-r--r--boost/config/platform/beos.hpp2
-rw-r--r--boost/config/platform/bsd.hpp2
-rw-r--r--boost/config/platform/cray.hpp2
-rw-r--r--boost/config/platform/cygwin.hpp2
-rw-r--r--boost/config/platform/haiku.hpp2
-rw-r--r--boost/config/platform/hpux.hpp2
-rw-r--r--boost/config/platform/irix.hpp2
-rw-r--r--boost/config/platform/linux.hpp7
-rw-r--r--boost/config/platform/macos.hpp2
-rw-r--r--boost/config/platform/qnxnto.hpp2
-rw-r--r--boost/config/platform/solaris.hpp2
-rw-r--r--boost/config/platform/symbian.hpp2
-rw-r--r--boost/config/platform/vxworks.hpp41
-rw-r--r--boost/config/platform/zos.hpp32
15 files changed, 80 insertions, 24 deletions
diff --git a/boost/config/platform/aix.hpp b/boost/config/platform/aix.hpp
index 894ef42ce9..a48e232061 100644
--- a/boost/config/platform/aix.hpp
+++ b/boost/config/platform/aix.hpp
@@ -26,7 +26,7 @@
//#define BOOST_HAS_PTHREAD_YIELD
// boilerplate code:
-#include <boost/config/posix_features.hpp>
+#include <boost/config/detail/posix_features.hpp>
diff --git a/boost/config/platform/beos.hpp b/boost/config/platform/beos.hpp
index 48c3d8dc5b..6158c1c20b 100644
--- a/boost/config/platform/beos.hpp
+++ b/boost/config/platform/beos.hpp
@@ -20,7 +20,7 @@
#endif
// boilerplate code:
-#include <boost/config/posix_features.hpp>
+#include <boost/config/detail/posix_features.hpp>
diff --git a/boost/config/platform/bsd.hpp b/boost/config/platform/bsd.hpp
index a0142978eb..79e74a080a 100644
--- a/boost/config/platform/bsd.hpp
+++ b/boost/config/platform/bsd.hpp
@@ -77,7 +77,7 @@
// boilerplate code:
#define BOOST_HAS_UNISTD_H
-#include <boost/config/posix_features.hpp>
+#include <boost/config/detail/posix_features.hpp>
diff --git a/boost/config/platform/cray.hpp b/boost/config/platform/cray.hpp
index 5c476e4160..103e9c0620 100644
--- a/boost/config/platform/cray.hpp
+++ b/boost/config/platform/cray.hpp
@@ -12,7 +12,7 @@
// boilerplate code:
#define BOOST_HAS_UNISTD_H
-#include <boost/config/posix_features.hpp>
+#include <boost/config/detail/posix_features.hpp>
diff --git a/boost/config/platform/cygwin.hpp b/boost/config/platform/cygwin.hpp
index 53e23f7f08..8ecc4a4af5 100644
--- a/boost/config/platform/cygwin.hpp
+++ b/boost/config/platform/cygwin.hpp
@@ -43,7 +43,7 @@
#define BOOST_NO_FENV_H
// boilerplate code:
-#include <boost/config/posix_features.hpp>
+#include <boost/config/detail/posix_features.hpp>
//
// Cygwin lies about XSI conformance, there is no nl_types.h:
diff --git a/boost/config/platform/haiku.hpp b/boost/config/platform/haiku.hpp
index 750866c47d..04244c5677 100644
--- a/boost/config/platform/haiku.hpp
+++ b/boost/config/platform/haiku.hpp
@@ -28,4 +28,4 @@
#define BOOST_HAS_GETTIMEOFDAY
// boilerplate code:
-#include <boost/config/posix_features.hpp>
+#include <boost/config/detail/posix_features.hpp>
diff --git a/boost/config/platform/hpux.hpp b/boost/config/platform/hpux.hpp
index 19ce68e597..222622e7ee 100644
--- a/boost/config/platform/hpux.hpp
+++ b/boost/config/platform/hpux.hpp
@@ -43,7 +43,7 @@
// boilerplate code:
#define BOOST_HAS_UNISTD_H
-#include <boost/config/posix_features.hpp>
+#include <boost/config/detail/posix_features.hpp>
// the following are always available:
#ifndef BOOST_HAS_GETTIMEOFDAY
diff --git a/boost/config/platform/irix.hpp b/boost/config/platform/irix.hpp
index aeae49c8b4..0acb651552 100644
--- a/boost/config/platform/irix.hpp
+++ b/boost/config/platform/irix.hpp
@@ -25,7 +25,7 @@
// boilerplate code:
#define BOOST_HAS_UNISTD_H
-#include <boost/config/posix_features.hpp>
+#include <boost/config/detail/posix_features.hpp>
diff --git a/boost/config/platform/linux.hpp b/boost/config/platform/linux.hpp
index 8c43c7b6d3..c4eef8f80c 100644
--- a/boost/config/platform/linux.hpp
+++ b/boost/config/platform/linux.hpp
@@ -24,8 +24,9 @@
#if defined(__GLIBC__) && ((__GLIBC__ > 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ >= 1)))
// <stdint.h> defines int64_t unconditionally, but <sys/types.h> defines
// int64_t only if __GNUC__. Thus, assume a fully usable <stdint.h>
- // only when using GCC.
-# if defined __GNUC__
+ // only when using GCC. Update 2017: this appears not to be the case for
+ // recent glibc releases, see bug report: https://svn.boost.org/trac/boost/ticket/13045
+# if defined(__GNUC__) || ((__GLIBC__ > 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ >= 5)))
# define BOOST_HAS_STDINT_H
# endif
#endif
@@ -71,7 +72,7 @@
// boilerplate code:
#define BOOST_HAS_UNISTD_H
-#include <boost/config/posix_features.hpp>
+#include <boost/config/detail/posix_features.hpp>
#if defined(__USE_GNU) && !defined(__ANDROID__) && !defined(ANDROID)
#define BOOST_HAS_PTHREAD_YIELD
#endif
diff --git a/boost/config/platform/macos.hpp b/boost/config/platform/macos.hpp
index 5be4e3b3da..ed7dc15f28 100644
--- a/boost/config/platform/macos.hpp
+++ b/boost/config/platform/macos.hpp
@@ -25,7 +25,7 @@
// to replace the platform-native BSD one. G++ users
// should also always be able to do this on MaxOS X.
//
-# include <boost/config/posix_features.hpp>
+# include <boost/config/detail/posix_features.hpp>
# ifndef BOOST_HAS_STDINT_H
# define BOOST_HAS_STDINT_H
# endif
diff --git a/boost/config/platform/qnxnto.hpp b/boost/config/platform/qnxnto.hpp
index b1377c8d2c..d0298cb4ec 100644
--- a/boost/config/platform/qnxnto.hpp
+++ b/boost/config/platform/qnxnto.hpp
@@ -10,7 +10,7 @@
#define BOOST_PLATFORM "QNX"
#define BOOST_HAS_UNISTD_H
-#include <boost/config/posix_features.hpp>
+#include <boost/config/detail/posix_features.hpp>
// QNX claims XOpen version 5 compatibility, but doesn't have an nl_types.h
// or log1p and expm1:
diff --git a/boost/config/platform/solaris.hpp b/boost/config/platform/solaris.hpp
index 6e4efc9e56..51ffe67f33 100644
--- a/boost/config/platform/solaris.hpp
+++ b/boost/config/platform/solaris.hpp
@@ -14,7 +14,7 @@
// boilerplate code:
#define BOOST_HAS_UNISTD_H
-#include <boost/config/posix_features.hpp>
+#include <boost/config/detail/posix_features.hpp>
//
// pthreads don't actually work with gcc unless _PTHREADS is defined:
diff --git a/boost/config/platform/symbian.hpp b/boost/config/platform/symbian.hpp
index e02a7782de..f814d00b5b 100644
--- a/boost/config/platform/symbian.hpp
+++ b/boost/config/platform/symbian.hpp
@@ -24,7 +24,7 @@
#include <stdlib.h>
#endif// boilerplate code:
# define BOOST_HAS_UNISTD_H
-# include <boost/config/posix_features.hpp>
+# include <boost/config/detail/posix_features.hpp>
// S60 SDK defines _POSIX_VERSION as POSIX.1
# ifndef BOOST_HAS_STDINT_H
# define BOOST_HAS_STDINT_H
diff --git a/boost/config/platform/vxworks.hpp b/boost/config/platform/vxworks.hpp
index cdda0158ad..a7f571c499 100644
--- a/boost/config/platform/vxworks.hpp
+++ b/boost/config/platform/vxworks.hpp
@@ -180,7 +180,7 @@
// Luckily, at the moment there seems to be none!
#endif
-// These #defines allow posix_features to work, since vxWorks doesn't
+// These #defines allow detail/posix_features to work, since vxWorks doesn't
// #define them itself for DKMs (for RTPs on the contrary it does):
#ifdef _WRS_KERNEL
# ifndef _POSIX_TIMERS
@@ -286,10 +286,8 @@ inline ssize_t readlink(const char*, char*, size_t){
return -1;
}
-// vxWorks claims to implement gettimeofday in sys/time.h
-// but nevertheless does not provide it! See
-// https://support.windriver.com/olsPortal/faces/maintenance/techtipDetail_noHeader.jspx?docId=16442&contentId=WR_TECHTIP_006256
-// We implement a surrogate version here via clock_gettime:
+#if (_WRS_VXWORKS_MAJOR < 7)
+
inline int gettimeofday(struct timeval *tv, void * /*tzv*/) {
struct timespec ts;
clock_gettime(CLOCK_MONOTONIC, &ts);
@@ -297,6 +295,8 @@ inline int gettimeofday(struct timeval *tv, void * /*tzv*/) {
tv->tv_usec = ts.tv_nsec / 1000;
return 0;
}
+#endif
+
// vxWorks does provide neither struct tms nor function times()!
// We implement an empty dummy-function, simply setting the user
@@ -327,6 +327,7 @@ inline clock_t times(struct tms *t){
return ticks;
}
+extern void bzero (void *, size_t); // FD_ZERO uses bzero() but doesn't include strings.h
} // extern "C"
// Put the selfmade functions into the std-namespace, just in case
@@ -349,21 +350,43 @@ namespace std {
// Include signal.h which might contain a typo to be corrected here
#include <signal.h>
-#define getpagesize() sysconf(_SC_PAGESIZE) // getpagesize is deprecated anyway!
+inline int getpagesize() { return sysconf(_SC_PAGESIZE); } // getpagesize is deprecated anyway!
#ifndef S_ISSOCK
# define S_ISSOCK(mode) ((mode & S_IFMT) == S_IFSOCK) // Is file a socket?
#endif
-#define lstat(p, b) stat(p, b) // lstat() == stat(), as vxWorks has no symlinks!
+inline int lstat(p, b) { return stat(p, b); } // lstat() == stat(), as vxWorks has no symlinks!
#ifndef FPE_FLTINV
# define FPE_FLTINV (FPE_FLTSUB+1) // vxWorks has no FPE_FLTINV, so define one as a dummy
#endif
#if !defined(BUS_ADRALN) && defined(BUS_ADRALNR)
# define BUS_ADRALN BUS_ADRALNR // Correct a supposed typo in vxWorks' <signal.h>
#endif
-//typedef int locale_t; // locale_t is a POSIX-extension, currently unpresent in vxWorks!
+typedef int locale_t; // locale_t is a POSIX-extension, currently not present in vxWorks!
// #include boilerplate code:
-#include <boost/config/posix_features.hpp>
+#include <boost/config/detail/posix_features.hpp>
// vxWorks lies about XSI conformance, there is no nl_types.h:
#undef BOOST_HAS_NL_TYPES_H
+
+// vxWorks 7 adds C++11 support
+// however it is optional, and does not match exactly the support determined
+// by examining Dinkum STL version and GCC version (or ICC and DCC)
+
+#ifndef _WRS_CONFIG_LANG_LIB_CPLUS_CPLUS_USER_2011
+# define BOOST_NO_CXX11_HDR_ARRAY
+# define BOOST_NO_CXX11_HDR_TYPEINDEX
+# define BOOST_NO_CXX11_HDR_TYPE_TRAITS
+# define BOOST_NO_CXX11_HDR_TUPLE
+# define BOOST_NO_CXX11_ALLOCATOR
+# define BOOST_NO_CXX11_SMART_PTR
+# define BOOST_NO_CXX11_STD_ALIGN
+# define BOOST_NO_CXX11_HDR_UNORDERED_SET
+# define BOOST_NO_CXX11_HDR_TYPE_TRAITS
+# define BOOST_NO_CXX11_HDR_UNORDERED_MAP
+# define BOOST_NO_CXX11_HDR_FUNCTIONAL
+# define BOOST_NO_CXX11_HDR_ATOMIC
+#else
+# define BOOST_NO_CXX11_NULLPTR
+#endif
+
diff --git a/boost/config/platform/zos.hpp b/boost/config/platform/zos.hpp
new file mode 100644
index 0000000000..fa77999edc
--- /dev/null
+++ b/boost/config/platform/zos.hpp
@@ -0,0 +1,32 @@
+// Copyright (c) 2017 Dynatrace
+//
+// 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
+
+// See http://www.boost.org for most recent version.
+
+// Platform setup for IBM z/OS.
+
+#define BOOST_PLATFORM "IBM z/OS"
+
+#include <features.h> // For __UU, __C99, __TR1, ...
+
+#if defined(__UU)
+# define BOOST_HAS_GETTIMEOFDAY
+#endif
+
+#if defined(_OPEN_THREADS) || defined(__SUSV3_THR)
+# define BOOST_HAS_PTHREADS
+# define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
+# define BOOST_HAS_THREADS
+#endif
+
+#if defined(__SUSV3) || defined(__SUSV3_THR)
+# define BOOST_HAS_SCHED_YIELD
+#endif
+
+#define BOOST_HAS_SIGACTION
+#define BOOST_HAS_UNISTD_H
+#define BOOST_HAS_DIRENT_H
+#define BOOST_HAS_NL_TYPES_H