diff options
author | Rich Felker <dalias@aerifal.cx> | 2012-09-07 23:13:55 -0400 |
---|---|---|
committer | Rich Felker <dalias@aerifal.cx> | 2012-09-07 23:13:55 -0400 |
commit | c1a9658bd19245ff0fb52d3da567815d822fb622 (patch) | |
tree | 36af789c4a0ebc8a1af3c49eab9edb34f5dbf869 /include/features.h | |
parent | 9f65796c35bd93a1de42752ce8af901acfe4b1a4 (diff) | |
download | musl-c1a9658bd19245ff0fb52d3da567815d822fb622.tar.gz musl-c1a9658bd19245ff0fb52d3da567815d822fb622.tar.bz2 musl-c1a9658bd19245ff0fb52d3da567815d822fb622.tar.xz musl-c1a9658bd19245ff0fb52d3da567815d822fb622.zip |
default features: make musl usable without feature test macros
the old behavior of exposing nothing except plain ISO C can be
obtained by defining __STRICT_ANSI__ or using a compiler option (such
as -std=c99) that predefines it. the new default featureset is POSIX
with XSI plus _BSD_SOURCE. any explicit feature test macros will
inhibit the default.
installation docs have also been updated to reflect this change.
Diffstat (limited to 'include/features.h')
-rw-r--r-- | include/features.h | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/include/features.h b/include/features.h index 851afb66..a7919f37 100644 --- a/include/features.h +++ b/include/features.h @@ -1 +1,28 @@ -#warning "features.h is bogus" +#ifndef _FEATURES_H +#define _FEATURES_H + +#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 + +#endif |