diff --git a/include/boost/config/compiler/comeau.hpp b/include/boost/config/compiler/comeau.hpp index d2dd2dc0..4d5eb796 100644 --- a/include/boost/config/compiler/comeau.hpp +++ b/include/boost/config/compiler/comeau.hpp @@ -11,7 +11,7 @@ #if (__COMO_VERSION__ <= 4245) || !defined(BOOST_STRICT_CONFIG) # define BOOST_FUNCTION_USE_VIRTUAL_FUNCTIONS -# if defined(_MSC_VER) && _MSC_VER <= 1200 +# if defined(_MSC_VER) && _MSC_VER <= 1300 # define BOOST_NO_STDC_NAMESPACE # define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP # define BOOST_NO_SWPRINTF diff --git a/include/boost/config/platform/win32.hpp b/include/boost/config/platform/win32.hpp index cdad4c93..1c7ac59e 100644 --- a/include/boost/config/platform/win32.hpp +++ b/include/boost/config/platform/win32.hpp @@ -24,7 +24,13 @@ # define BOOST_NO_SWPRINTF #endif -#define BOOST_HAS_WINTHREADS +// +// Win32 will normally be using native Win32 threads, +// but there is a pthread library avaliable as an option: +// +#ifndef BOOST_HAS_PTHREADS +# define BOOST_HAS_WINTHREADS +#endif // WEK: Added #define BOOST_HAS_FTIME diff --git a/include/boost/config/posix_features.hpp b/include/boost/config/posix_features.hpp index e8e23912..7a4a4591 100644 --- a/include/boost/config/posix_features.hpp +++ b/include/boost/config/posix_features.hpp @@ -26,7 +26,7 @@ // Strictly speaking this may catch platforms with a // non-functioning stub , but such occurrences should // occur very rarely if at all. -# if defined(_POSIX_THREADS) && (_POSIX_THREADS+0 >= 0) +# if defined(_POSIX_THREADS) && (_POSIX_THREADS+0 >= 0) && !defined(BOOST_HAS_WINTHREADS) # define BOOST_HAS_PTHREADS # endif diff --git a/include/boost/config/suffix.hpp b/include/boost/config/suffix.hpp index c52593cf..b8596b74 100644 --- a/include/boost/config/suffix.hpp +++ b/include/boost/config/suffix.hpp @@ -146,6 +146,14 @@ # undef BOOST_HAS_THREADS #endif +// +// Turn threading support off if we don't recognise the threading API: +// +#if defined(BOOST_HAS_THREADS) && !defined(BOOST_HAS_PTHREADS)\ + && !defined(BOOST_HAS_WINTHREADS) && !defined(BOOST_HAS_BETHREADS) +# undef BOOST_HAS_THREADS +#endif + // // If the compiler claims to be C99 conformant, then it had better // have a :