]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/boost/config/platform/linux.hpp
update sources to v12.2.3
[ceph.git] / ceph / src / boost / boost / config / platform / linux.hpp
1 // (C) Copyright John Maddock 2001 - 2003.
2 // (C) Copyright Jens Maurer 2001 - 2003.
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 // linux specific config options:
10
11 #define BOOST_PLATFORM "linux"
12
13 // make sure we have __GLIBC_PREREQ if available at all
14 #ifdef __cplusplus
15 #include <cstdlib>
16 #else
17 #include <stdlib.h>
18 #endif
19
20 //
21 // <stdint.h> added to glibc 2.1.1
22 // We can only test for 2.1 though:
23 //
24 #if defined(__GLIBC__) && ((__GLIBC__ > 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ >= 1)))
25 // <stdint.h> defines int64_t unconditionally, but <sys/types.h> defines
26 // int64_t only if __GNUC__. Thus, assume a fully usable <stdint.h>
27 // only when using GCC. Update 2017: this appears not to be the case for
28 // recent glibc releases, see bug report: https://svn.boost.org/trac/boost/ticket/13045
29 # if defined(__GNUC__) || ((__GLIBC__ > 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ >= 5)))
30 # define BOOST_HAS_STDINT_H
31 # endif
32 #endif
33
34 #if defined(__LIBCOMO__)
35 //
36 // como on linux doesn't have std:: c functions:
37 // NOTE: versions of libcomo prior to beta28 have octal version numbering,
38 // e.g. version 25 is 21 (dec)
39 //
40 # if __LIBCOMO_VERSION__ <= 20
41 # define BOOST_NO_STDC_NAMESPACE
42 # endif
43
44 # if __LIBCOMO_VERSION__ <= 21
45 # define BOOST_NO_SWPRINTF
46 # endif
47
48 #endif
49
50 //
51 // If glibc is past version 2 then we definitely have
52 // gettimeofday, earlier versions may or may not have it:
53 //
54 #if defined(__GLIBC__) && (__GLIBC__ >= 2)
55 # define BOOST_HAS_GETTIMEOFDAY
56 #endif
57
58 #ifdef __USE_POSIX199309
59 # define BOOST_HAS_NANOSLEEP
60 #endif
61
62 #if defined(__GLIBC__) && defined(__GLIBC_PREREQ)
63 // __GLIBC_PREREQ is available since 2.1.2
64
65 // swprintf is available since glibc 2.2.0
66 # if !__GLIBC_PREREQ(2,2) || (!defined(__USE_ISOC99) && !defined(__USE_UNIX98))
67 # define BOOST_NO_SWPRINTF
68 # endif
69 #else
70 # define BOOST_NO_SWPRINTF
71 #endif
72
73 // boilerplate code:
74 #define BOOST_HAS_UNISTD_H
75 #include <boost/config/detail/posix_features.hpp>
76 #if defined(__USE_GNU) && !defined(__ANDROID__) && !defined(ANDROID)
77 #define BOOST_HAS_PTHREAD_YIELD
78 #endif
79
80 #ifndef __GNUC__
81 //
82 // if the compiler is not gcc we still need to be able to parse
83 // the GNU system headers, some of which (mainly <stdint.h>)
84 // use GNU specific extensions:
85 //
86 # ifndef __extension__
87 # define __extension__
88 # endif
89 # ifndef __const__
90 # define __const__ const
91 # endif
92 # ifndef __volatile__
93 # define __volatile__ volatile
94 # endif
95 # ifndef __signed__
96 # define __signed__ signed
97 # endif
98 # ifndef __typeof__
99 # define __typeof__ typeof
100 # endif
101 # ifndef __inline__
102 # define __inline__ inline
103 # endif
104 #endif
105
106