123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- #ifndef _FEATURES_H
- #define _FEATURES_H
- #ifdef _ALL_SOURCE
- #define _GNU_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
- #endif
- #if __STDC_VERSION__ >= 201112L
- #elif defined(__GNUC__)
- #define _Noreturn __attribute__((__noreturn__))
- #else
- #define _Noreturn
- #endif
- /* Convenience macros to test the versions of glibc and gcc.
- Use them like this:
- #if __GNUC_PREREQ (2,8)
- ... code requiring gcc 2.8 or later ...
- #endif
- Note - they won't work for gcc1 or glibc1, since the _MINOR macros
- were not defined then. */
- #if defined __GNUC__ && defined __GNUC_MINOR__
- # define __GNUC_PREREQ(maj, min) \
- ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))
- #else
- # define __GNUC_PREREQ(maj, min) 0
- #endif
- #include <sys/glibc-types.h>
- #endif
|