diff --git a/include/boost/config/stdlib/stlport.hpp b/include/boost/config/stdlib/stlport.hpp index d97f3160..fdfe7005 100644 --- a/include/boost/config/stdlib/stlport.hpp +++ b/include/boost/config/stdlib/stlport.hpp @@ -22,6 +22,16 @@ # define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS #endif +// +// STLPort's header #defines ULONGLONG_MAX in this case, +// which can cause us confusion later if we don't accept its word that +// long long is available. Note that #include may not be +// sufficient to see the definition. +// +#ifdef _STLP_LONG_LONG +# define BOOST_HAS_LONG_LONG +#endif + // // If STLport thinks that there is no partial specialisation, then there is no // std::iterator traits: diff --git a/include/boost/config/suffix.hpp b/include/boost/config/suffix.hpp index 7175f80b..1e74088b 100644 --- a/include/boost/config/suffix.hpp +++ b/include/boost/config/suffix.hpp @@ -28,7 +28,8 @@ // no namespace issues from this. // #include -# if !defined(BOOST_MSVC) && !defined(__BORLANDC__) \ +# if !defined(BOOST_HAS_LONG_LONG) \ + && !(defined(BOOST_MSVC) && BOOST_MSVC <=1300) && !defined(__BORLANDC__) \ && (defined(ULLONG_MAX) || defined(ULONG_LONG_MAX) || defined(ULONGLONG_MAX)) # define BOOST_HAS_LONG_LONG #endif