features.h 773 B

123456789101112131415161718192021222324252627282930313233343536
  1. #ifndef _FEATURES_H
  2. #define _FEATURES_H
  3. #if defined(_ALL_SOURCE) && !defined(_GNU_SOURCE)
  4. #define _GNU_SOURCE 1
  5. #endif
  6. #if defined(_DEFAULT_SOURCE) && !defined(_BSD_SOURCE)
  7. #define _BSD_SOURCE 1
  8. #endif
  9. #if !defined(_POSIX_SOURCE) && !defined(_POSIX_C_SOURCE) \
  10. && !defined(_XOPEN_SOURCE) && !defined(_GNU_SOURCE) \
  11. && !defined(_BSD_SOURCE) && !defined(__STRICT_ANSI__)
  12. #define _BSD_SOURCE 1
  13. #define _XOPEN_SOURCE 700
  14. #endif
  15. #if __STDC_VERSION__ >= 199901L
  16. #define __restrict restrict
  17. #elif !defined(__GNUC__)
  18. #define __restrict
  19. #endif
  20. #if __STDC_VERSION__ >= 199901L || defined(__cplusplus)
  21. #define __inline inline
  22. #endif
  23. #if __STDC_VERSION__ >= 201112L
  24. #elif defined(__GNUC__)
  25. #define _Noreturn __attribute__((__noreturn__))
  26. #else
  27. #define _Noreturn
  28. #endif
  29. #endif