os/ossrv/ossrv_pub/boost_apis/boost/config/stdlib/libstdcpp3.hpp
author sl
Tue, 10 Jun 2014 14:32:02 +0200
changeset 1 260cb5ec6c19
permissions -rw-r--r--
Update contrib.
     1 //  (C) Copyright John Maddock 2001.
     2 //  (C) Copyright Jens Maurer 2001.
     3 //  Use, modification and distribution are subject to the
     4 //  Boost Software License, Version 1.0. (See accompanying file
     5 //  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
     6 
     7 //  See http://www.boost.org for most recent version.
     8 
     9 //  config for libstdc++ v3
    10 //  not much to go in here:
    11 
    12 #ifdef __GLIBCXX__
    13 #define BOOST_STDLIB "GNU libstdc++ version " BOOST_STRINGIZE(__GLIBCXX__)
    14 #else
    15 #define BOOST_STDLIB "GNU libstdc++ version " BOOST_STRINGIZE(__GLIBCPP__)
    16 #endif
    17 
    18 #if !defined(_GLIBCPP_USE_WCHAR_T) && !defined(_GLIBCXX_USE_WCHAR_T)
    19 #  define BOOST_NO_CWCHAR
    20 #  define BOOST_NO_CWCTYPE
    21 #  define BOOST_NO_STD_WSTRING
    22 #  define BOOST_NO_STD_WSTREAMBUF
    23 #endif
    24 
    25 #if defined(__osf__) && !defined(_REENTRANT) \
    26   && ( defined(_GLIBCXX_HAVE_GTHR_DEFAULT) || defined(_GLIBCPP_HAVE_GTHR_DEFAULT) )
    27 // GCC 3 on Tru64 forces the definition of _REENTRANT when any std lib header
    28 // file is included, therefore for consistency we define it here as well.
    29 #  define _REENTRANT
    30 #endif
    31 
    32 #ifdef __GLIBCXX__ // gcc 3.4 and greater:
    33 #  if defined(_GLIBCXX_HAVE_GTHR_DEFAULT) \
    34         || defined(_GLIBCXX__PTHREADS)
    35       //
    36       // If the std lib has thread support turned on, then turn it on in Boost
    37       // as well.  We do this because some gcc-3.4 std lib headers define _REENTANT
    38       // while others do not...
    39       //
    40 #     define BOOST_HAS_THREADS
    41 #  else
    42 #     define BOOST_DISABLE_THREADS
    43 #  endif
    44 #elif defined(__GLIBCPP__) \
    45         && !defined(_GLIBCPP_HAVE_GTHR_DEFAULT) \
    46         && !defined(_GLIBCPP__PTHREADS)
    47    // disable thread support if the std lib was built single threaded:
    48 #  define BOOST_DISABLE_THREADS
    49 #endif
    50 
    51 #if (defined(linux) || defined(__linux) || defined(__linux__)) && defined(__arm__) && defined(_GLIBCPP_HAVE_GTHR_DEFAULT)
    52 // linux on arm apparently doesn't define _REENTRANT
    53 // so just turn on threading support whenever the std lib is thread safe:
    54 #  define BOOST_HAS_THREADS
    55 #endif
    56 
    57 
    58 #if !defined(_GLIBCPP_USE_LONG_LONG) \
    59     && !defined(_GLIBCXX_USE_LONG_LONG)\
    60     && defined(BOOST_HAS_LONG_LONG)
    61 // May have been set by compiler/*.hpp, but "long long" without library
    62 // support is useless.
    63 #  undef BOOST_HAS_LONG_LONG
    64 #endif
    65 
    66 #if defined(__GLIBCXX__) || (defined(__GLIBCPP__) && __GLIBCPP__>=20020514) // GCC >= 3.1.0
    67 #  define BOOST_STD_EXTENSION_NAMESPACE __gnu_cxx
    68 #  define BOOST_HAS_SLIST
    69 #  define BOOST_HAS_HASH
    70 #  define BOOST_SLIST_HEADER <ext/slist>
    71 #  define BOOST_HASH_SET_HEADER <ext/hash_set>
    72 #  define BOOST_HASH_MAP_HEADER <ext/hash_map>
    73 #endif