set stdio if tst note{ _ALL_SOURCE & _POSIX_SOURCE & _POSIX_C_SOURCE & _XOPEN_SOURCE & __EXTENSIONS__ works }end compile{ #define _ALL_SOURCE 1 #define _POSIX_SOURCE 1 #define _POSIX_C_SOURCE 21000101L #define _XOPEN_SOURCE 9900 #define _GNU_SOURCE 1 #define __EXTENSIONS__ 1 #include #include #include #include }end { #ifndef _ALL_SOURCE #define _ALL_SOURCE 1 #endif #ifndef _POSIX_SOURCE #define _POSIX_SOURCE 1 #endif #ifndef _POSIX_C_SOURCE #define _POSIX_C_SOURCE 21000101L #endif #ifndef _XOPEN_SOURCE #define _XOPEN_SOURCE 9900 #endif #ifndef _GNU_SOURCE #define _GNU_SOURCE 1 #endif #ifndef __EXTENSIONS__ #define __EXTENSIONS__ 1 #endif } elif tst note{ _ALL_SOURCE & _POSIX_SOURCE & _XOPEN_SOURCE & __EXTENSIONS__ works }end compile{ #define _ALL_SOURCE 1 #define _POSIX_SOURCE 1 #define _XOPEN_SOURCE 9900 #define _GNU_SOURCE 1 #define __EXTENSIONS__ 1 #include #include #include #include }end { #ifndef _ALL_SOURCE #define _ALL_SOURCE 1 #endif #ifndef _POSIX_SOURCE #define _POSIX_SOURCE 1 #endif #ifndef _XOPEN_SOURCE #define _XOPEN_SOURCE 9900 #endif #ifndef _GNU_SOURCE #define _GNU_SOURCE 1 #endif #ifndef __EXTENSIONS__ #define __EXTENSIONS__ 1 #endif } elif tst note{ _POSIX_SOURCE & _POSIX_C_SOURCE & _XOPEN_SOURCE & __EXTENSIONS__ works }end compile{ #define _POSIX_SOURCE 1 #define _POSIX_C_SOURCE 21000101L #define _XOPEN_SOURCE 9900 #define _GNU_SOURCE 1 #define __EXTENSIONS__ 1 #include #include #include #include }end { #ifndef _POSIX_SOURCE #define _POSIX_SOURCE 1 #endif #ifndef _POSIX_C_SOURCE #define _POSIX_C_SOURCE 21000101L #endif #ifndef _XOPEN_SOURCE #define _XOPEN_SOURCE 9900 #endif #ifndef _GNU_SOURCE #define _GNU_SOURCE 1 #endif #ifndef __EXTENSIONS__ #define __EXTENSIONS__ 1 #endif } elif tst note{ _POSIX_SOURCE & _XOPEN_SOURCE & __EXTENSIONS__ works }end compile{ #define _POSIX_SOURCE 1 #define _XOPEN_SOURCE 1 #define __EXTENSIONS__ 1 #include #include #include #include }end { #ifndef _POSIX_SOURCE #define _POSIX_SOURCE 1 #endif #ifndef _XOPEN_SOURCE #define _XOPEN_SOURCE 1 #endif #ifndef __EXTENSIONS__ #define __EXTENSIONS__ 1 #endif } elif tst note{ _XOPEN_SOURCE & __EXTENSIONS__ works }end compile{ #define _XOPEN_SOURCE 1 #define __EXTENSIONS__ 1 #include #include #include #include }end { #ifndef _XOPEN_SOURCE #define _XOPEN_SOURCE 1 #endif #ifndef __EXTENSIONS__ #define __EXTENSIONS__ 1 #endif } elif tst note{ _XOPEN_SOURCE works }end compile{ #define _XOPEN_SOURCE 1 #include #include #include #include }end { #ifndef _XOPEN_SOURCE #define _XOPEN_SOURCE 1 #endif } else tst note{ __EXTENSIONS__ works }end compile{ #define __EXTENSIONS__ 1 #include #include }end { #ifndef __EXTENSIONS__ #define __EXTENSIONS__ 1 #endif } endif if tst -D_ISOC99_SOURCE -lm note{ _ISOC99_SOURCE plays nice }end link{ #include #include #include #include #include int main() { return signbit(-0.0); } }end { #ifndef _ISOC99_SOURCE #define _ISOC99_SOURCE 1 #endif } endif cat{ /* * this is a nasty game we all play to honor standards symbol visibility * it would help if all implementations had * _KITCHEN_SINK_SOURCE * that enabled all symbols from the latest implemented standards * that's probably the most useful but least portable request */ #if __MACH__ #undef _POSIX_SOURCE #endif }end