1#ifndef _FEATURES_H
2#define _FEATURES_H
3
4#define _GNU_SOURCE
5
6#if defined(_ALL_SOURCE) && !defined(_GNU_SOURCE)
7#define _GNU_SOURCE 1
8#endif
9
10#if defined(_DEFAULT_SOURCE) && !defined(_BSD_SOURCE)
11#define _BSD_SOURCE 1
12#endif
13
14#if !defined(_POSIX_SOURCE) && !defined(_POSIX_C_SOURCE) \
15 && !defined(_XOPEN_SOURCE) && !defined(_GNU_SOURCE) \
16 && !defined(_BSD_SOURCE) && !defined(__STRICT_ANSI__)
17#define _BSD_SOURCE 1
18#define _XOPEN_SOURCE 700
19#endif
20
21#if __STDC_VERSION__ >= 199901L
22#define __restrict restrict
23#elif !defined(__GNUC__)
24#define __restrict
25#endif
26
27#if __STDC_VERSION__ >= 199901L || defined(__cplusplus)
28#define __inline inline
29#elif !defined(__GNUC__)
30#define __inline
31#endif
32
33#if __STDC_VERSION__ >= 201112L
34#elif defined(__GNUC__)
35#define _Noreturn __attribute__((__noreturn__))
36#else
37#define _Noreturn
38#endif
39
40#define __REDIR(x,y) __typeof__(x) x __asm__(#y)
41
42#endif
43