From 5430d82f9f75c65729fd43780ccda4035be9e23a Mon Sep 17 00:00:00 2001 From: Beman Dawes Date: Mon, 21 May 2012 13:39:58 +0000 Subject: [PATCH] System: merge trunk [SVN r78528] --- include/boost/system/config.hpp | 17 +++++++++++++++++ src/error_code.cpp | 3 ++- test/Jamfile.v2 | 1 + 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/include/boost/system/config.hpp b/include/boost/system/config.hpp index bf78051..b128717 100644 --- a/include/boost/system/config.hpp +++ b/include/boost/system/config.hpp @@ -16,6 +16,23 @@ // This header implements separate compilation features as described in // http://www.boost.org/more/separate_compilation.html +// normalize macros ------------------------------------------------------------------// + +#if !defined(BOOST_SYSTEM_DYN_LINK) && !defined(BOOST_SYSTEM_STATIC_LINK) \ + && !defined(BOOST_ALL_DYN_LINK) && !defined(BOOST_ALL_STATIC_LINK) +# define BOOST_SYSTEM_STATIC_LINK +#endif + +#if defined(BOOST_ALL_DYN_LINK) && !defined(BOOST_SYSTEM_DYN_LINK) +# define BOOST_SYSTEM_DYN_LINK +#elif defined(BOOST_ALL_STATIC_LINK) && !defined(BOOST_SYSTEM_STATIC_LINK) +# define BOOST_SYSTEM_STATIC_LINK +#endif + +#if defined(BOOST_SYSTEM_DYN_LINK) && defined(BOOST_SYSTEM_STATIC_LINK) +# error Must not define both BOOST_SYSTEM_DYN_LINK and BOOST_SYSTEM_STATIC_LINK +#endif + // enable dynamic or static linking as requested --------------------------------------// #if defined(BOOST_ALL_DYN_LINK) || defined(BOOST_SYSTEM_DYN_LINK) diff --git a/src/error_code.cpp b/src/error_code.cpp index bcdbea9..6772d15 100644 --- a/src/error_code.cpp +++ b/src/error_code.cpp @@ -74,7 +74,7 @@ namespace // strerror_r is preferred because it is always thread safe, // however, we fallback to strerror in certain cases because: // -- Windows doesn't provide strerror_r. - // -- HP and Sundo provide strerror_r on newer systems, but there is + // -- HP and Sun do provide strerror_r on newer systems, but there is // no way to tell if is available at runtime and in any case their // versions of strerror are thread safe anyhow. // -- Linux only sometimes provides strerror_r. @@ -84,6 +84,7 @@ namespace # if defined(BOOST_WINDOWS_API) || defined(__hpux) || defined(__sun)\ || (defined(__linux) && (!defined(__USE_XOPEN2K) || defined(BOOST_SYSTEM_USE_STRERROR)))\ || (defined(__osf__) && !defined(_REENTRANT))\ + || (defined(__INTEGRITY))\ || (defined(__vms))\ || (defined(__QNXNTO__)) const char * c_str = std::strerror( ev ); diff --git a/test/Jamfile.v2 b/test/Jamfile.v2 index 043a36f..1ab7442 100644 --- a/test/Jamfile.v2 +++ b/test/Jamfile.v2 @@ -16,6 +16,7 @@ project lib throw_test : throw_test.cpp : shared:BOOST_SYSTEM_DYN_LINK=1 + static:BOOST_SYSTEM_STATIC_LINK=1 ;