41 lines
865 B
C
41 lines
865 B
C
#ifndef _FEATURES_H
|
|
#define _FEATURES_H
|
|
|
|
#if defined(_ALL_SOURCE) && !defined(_GNU_SOURCE)
|
|
#define _GNU_SOURCE 1
|
|
#endif
|
|
|
|
#if defined(_DEFAULT_SOURCE) && !defined(_BSD_SOURCE)
|
|
#define _BSD_SOURCE 1
|
|
#endif
|
|
|
|
#if !defined(_POSIX_SOURCE) && !defined(_POSIX_C_SOURCE) \
|
|
&& !defined(_XOPEN_SOURCE) && !defined(_GNU_SOURCE) \
|
|
&& !defined(_BSD_SOURCE) && !defined(__STRICT_ANSI__)
|
|
#define _BSD_SOURCE 1
|
|
#define _XOPEN_SOURCE 700
|
|
#endif
|
|
|
|
#if __STDC_VERSION__ >= 199901L
|
|
#define __restrict restrict
|
|
#elif !defined(__GNUC__)
|
|
#define __restrict
|
|
#endif
|
|
|
|
#if __STDC_VERSION__ >= 199901L || defined(__cplusplus)
|
|
#define __inline inline
|
|
#elif !defined(__GNUC__)
|
|
#define __inline
|
|
#endif
|
|
|
|
#if __STDC_VERSION__ >= 201112L
|
|
#elif defined(__GNUC__)
|
|
#define _Noreturn __attribute__((__noreturn__))
|
|
#else
|
|
#define _Noreturn
|
|
#endif
|
|
|
|
#define __REDIR(x,y) __typeof__(x) x __asm__(#y)
|
|
|
|
#endif
|