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