ESBMC
Efficient SMT-based Context-Bounded Model Checker
Loading...
Searching...
No Matches
linux.hpp
Go to the documentation of this file.
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__) && \
25 ((__GLIBC__ > 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ >= 1)))
26// <stdint.h> defines int64_t unconditionally, but <sys/types.h> defines
27// int64_t only if __GNUC__. Thus, assume a fully usable <stdint.h>
28// only when using GCC.
29# if defined __GNUC__
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) || \
67 (!defined(__USE_ISOC99) && !defined(__USE_UNIX98))
68# define BOOST_NO_SWPRINTF
69# endif
70#else
71# define BOOST_NO_SWPRINTF
72#endif
73
74// boilerplate code:
75#define BOOST_HAS_UNISTD_H
77#define BOOST_HAS_PTHREAD_YIELD
78
79#ifndef __GNUC__
80//
81// if the compiler is not gcc we still need to be able to parse
82// the GNU system headers, some of which (mainly <stdint.h>)
83// use GNU specific extensions:
84//
85# ifndef __extension__
86# define __extension__
87# endif
88# ifndef __const__
89# define __const__ const
90# endif
91# ifndef __volatile__
92# define __volatile__ volatile
93# endif
94# ifndef __signed__
95# define __signed__ signed
96# endif
97# ifndef __typeof__
98# define __typeof__ typeof
99# endif
100# ifndef __inline__
101# define __inline__ inline
102# endif
103#endif