github.com/searKing/golang/go@v1.2.117/runtime/cgosymbolizer/include/boost/config/platform/linux.hpp (about) 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