features.h raw

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