|
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 # if !defined(__GNUC__) || __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 3) |
|
72 # define BOOST_HASH_SET_HEADER <ext/hash_set> |
|
73 # define BOOST_HASH_MAP_HEADER <ext/hash_map> |
|
74 # else |
|
75 # define BOOST_HASH_SET_HEADER <backward/hash_set> |
|
76 # define BOOST_HASH_MAP_HEADER <backward/hash_map> |
|
77 # endif |
|
78 #endif |
|
79 |
|
80 #ifndef __GXX_EXPERIMENTAL_CXX0X__ |
|
81 # define BOOST_NO_STD_UNORDERED |
|
82 #endif |
|
83 |