libstdcpp3.hpp

Go to the documentation of this file.
00001 //  (C) Copyright John Maddock 2001. 
00002 //  (C) Copyright Jens Maurer 2001. 
00003 //  Use, modification and distribution are subject to the 
00004 //  Boost Software License, Version 1.0. (See accompanying file 
00005 //  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
00006 
00007 //  See http://www.boost.org for most recent version.
00008 
00009 //  config for libstdc++ v3
00010 //  not much to go in here:
00011 
00012 #ifdef __GLIBCXX__
00013 #define BOOST_STDLIB "GNU libstdc++ version " BOOST_STRINGIZE(__GLIBCXX__)
00014 #else
00015 #define BOOST_STDLIB "GNU libstdc++ version " BOOST_STRINGIZE(__GLIBCPP__)
00016 #endif
00017 
00018 #if !defined(_GLIBCPP_USE_WCHAR_T) && !defined(_GLIBCXX_USE_WCHAR_T)
00019 #  define BOOST_NO_CWCHAR
00020 #  define BOOST_NO_CWCTYPE
00021 #  define BOOST_NO_STD_WSTRING
00022 #  define BOOST_NO_STD_WSTREAMBUF
00023 #endif
00024 
00025 #if defined(__osf__) && !defined(_REENTRANT) \
00026   && ( defined(_GLIBCXX_HAVE_GTHR_DEFAULT) || defined(_GLIBCPP_HAVE_GTHR_DEFAULT) )
00027 // GCC 3 on Tru64 forces the definition of _REENTRANT when any std lib header
00028 // file is included, therefore for consistency we define it here as well.
00029 #  define _REENTRANT
00030 #endif
00031 
00032 #ifdef __GLIBCXX__ // gcc 3.4 and greater:
00033 #  if defined(_GLIBCXX_HAVE_GTHR_DEFAULT) \
00034     || defined(_GLIBCXX__PTHREADS) 
00035       // 
00036       // If the std lib has thread support turned on, then turn it on in Boost
00037       // as well.  We do this because some gcc-3.4 std lib headers define _REENTANT
00038       // while others do not...
00039       // 
00040 #     define BOOST_HAS_THREADS
00041 #  else
00042 #     define BOOST_DISABLE_THREADS
00043 #  endif
00044 #elif defined(__GLIBCPP__) \
00045     && !defined(_GLIBCPP_HAVE_GTHR_DEFAULT) \
00046     && !defined(_GLIBCPP__PTHREADS)
00047    // disable thread support if the std lib was built single threaded:
00048 #  define BOOST_DISABLE_THREADS
00049 #endif
00050 
00051 #if (defined(linux) || defined(__linux) || defined(__linux__)) && defined(__arm__) && defined(_GLIBCPP_HAVE_GTHR_DEFAULT)
00052 // linux on arm apparently doesn't define _REENTRANT 
00053 // so just turn on threading support whenever the std lib is thread safe:
00054 #  define BOOST_HAS_THREADS
00055 #endif
00056 
00057  
00058 #if !defined(_GLIBCPP_USE_LONG_LONG) \
00059     && !defined(_GLIBCXX_USE_LONG_LONG)\
00060     && defined(BOOST_HAS_LONG_LONG)
00061 // May have been set by compiler/*.hpp, but "long long" without library
00062 // support is useless.
00063 #  undef BOOST_HAS_LONG_LONG
00064 #endif

Generated on Wed Jan 21 15:32:09 2009 for SystemC by  doxygen 1.5.5