Hi folks, I am under the impression that _XOPEN_SOURCE is a supserset of _POSIX_C_SOURCE.
glibc documents the following happens: Macro: _XOPEN_SOURCE Macro: _XOPEN_SOURCE_EXTENDED If you define this macro, functionality described in the X/Open Portability Guide is included. This is a superset of the POSIX.1 and POSIX.2 functionality and in fact _POSIX_SOURCE and _POSIX_C_SOURCE are automatically defined. Should we do the same? that will probably simplify the header situation, not needing to separately test for _XOPEN_SOURCE most of the time. math.h is just "wrong" as it is. lots of stuff only guarded by _XOPEN_SOURCE which are probably also in _POSIX_C_SOURCE and C99/C11. We're apparently getting by with implicit declarations and -D_NETBSD_SOURCE :-)