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)
7 // See http://www.boost.org for most recent version.
9 // config for libstdc++ v3
10 // not much to go in here:
13 #define BOOST_STDLIB "GNU libstdc++ version " BOOST_STRINGIZE(__GLIBCXX__)
15 #define BOOST_STDLIB "GNU libstdc++ version " BOOST_STRINGIZE(__GLIBCPP__)
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
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.
32 #ifdef __GLIBCXX__ // gcc 3.4 and greater:
33 # if defined(_GLIBCXX_HAVE_GTHR_DEFAULT) \
34 || defined(_GLIBCXX__PTHREADS)
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...
40 # define BOOST_HAS_THREADS
42 # define BOOST_DISABLE_THREADS
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
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
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
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>