--- src/lib/libast/features/standards.orig 2020-02-08 10:39:38.000000000 -0800 +++ src/lib/libast/features/standards 2020-02-08 21:58:23.687268000 -0800 @@ -1,5 +1,19 @@ set stdio -if tst note{ _ALL_SOURCE & _POSIX_SOURCE & _POSIX_C_SOURCE & _XOPEN_SOURCE & __EXTENSIONS__ works }end compile{ +# In FreeBSD, definitions like _POSIX_SOURCE and such are used to *limit* +# functionality to known API; they don't enable anything. The general intent in +# BSD is to enable everything by default (effectively, providing the +# _KITCHEN_SINK_SOURCE mentioned below). So we look for that here, but stay +# careful that we don't get fooled by presence of FreeBSD that underpins some +# subsystems in Mac OS X; there are other Apple-specific portability hacks +# elsewhere we should not interfere with. +if tst note{ FreeBSD }end compile{ + #include + #if !defined(__FreeBSD__) || defined(APPLE) + #error not a FreeBSD system + #endif + }end { + } +elif 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