summaryrefslogtreecommitdiff
path: root/libc/debian/compat_headers/features.h
blob: fe29c394ab46ab31ebd6ae0561472c284fd5ca90 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
/*
        DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
                    Version 2, December 2004

 Copyright (C) 2004 Sam Hocevar <sam@hocevar.net>

 Everyone is permitted to copy and distribute verbatim or modified
 copies of this license document, and changing it is allowed as long
 as the name is changed.

            DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

  0. You just DO WHAT THE FUCK YOU WANT TO.

*/


#ifndef _FEATURES_H
#define _FEATURES_H

/* __EXTENSIONS__ is defined by default in g++.
 * On linux g++ defines _GNU_SOURCE.
 */
#ifdef __EXTENSIONS__
# undef _GNU_SOURCE
# define _GNU_SOURCE 1
#endif

#ifdef _GNU_SOURCE
# undef  __EXTENSIONS__
# define __EXTENSIONS__ 1
# undef  _ISOC95_SOURCE
# define _ISOC95_SOURCE 1
# undef  _ISOC99_SOURCE
# define _ISOC99_SOURCE 1
# undef  _POSIX_SOURCE
# define _POSIX_SOURCE  1
# undef  _POSIX_C_SOURCE
# define _POSIX_C_SOURCE    200112L
# undef  _XOPEN_SOURCE
# define _XOPEN_SOURCE  600
# undef  _XOPEN_SOURCE_EXTENDED
# define _XOPEN_SOURCE_EXTENDED 0
# undef  _LARGEFILE_SOURCE
# define _LARGEFILE_SOURCE    1
# undef  _LARGEFILE64_SOURCE
# define _LARGEFILE64_SOURCE    1
# undef  _BSD_SOURCE
# define _BSD_SOURCE    1
# undef  _SVID_SOURCE
# define _SVID_SOURCE   1
# undef  _ATFILE_SOURCE
# define _ATFILE_SOURCE 1
# undef  _DEFAULT_SOURCE
# define _DEFAULT_SOURCE 1
#endif

#if (defined _DEFAULT_SOURCE                    \
     || (!defined __STRICT_ANSI__               \
     && !defined _ISOC99_SOURCE             \
     && !defined _POSIX_SOURCE && !defined _POSIX_C_SOURCE  \
     && !defined _XOPEN_SOURCE              \
     && !defined _BSD_SOURCE && !defined _SVID_SOURCE))
# undef  __EXTENSIONS__
# define __EXTENSIONS__ 1
# undef  _DEFAULT_SOURCE
# define _DEFAULT_SOURCE    1
# undef  _BSD_SOURCE
# define _BSD_SOURCE    1
# undef  _SVID_SOURCE
# define _SVID_SOURCE   1
#endif

#ifndef _XOPEN_SOURCE
# define _XOPEN_SOURCE  600
#endif


#if defined __GNUC__
# define __GNUC_PREREQ(maj, min) \
        ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))
#else
# define __GNUC_PREREQ(maj, min) 0
#endif

#if !defined(__ASSEMBLER__) && !defined(_ASM)
# ifndef _SYS_CDEFS_H
#  include <sys/cdefs.h>
# endif
#endif

#endif /* _FEATURES_H */

/* XXX: Include unconditionally.
 * gnulib bundled with some packages may mess with the features.h
 * header and its guard macros, so feature_tests.h is not included,
 * but we need it.  */
#include <sys/feature_tests.h>