X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=rts%2FPosixSource.h;h=d139dd50af65bdb9ae178a7a706d42ddc8536915;hb=0885017a4e92fe5710d1427c214adb87b92987e5;hp=a938f9bc0f97009b33e6d7a6d41a9d4ad2221a5d;hpb=0065d5ab628975892cea1ec7303f968c3338cbe1;p=ghc-hetmet.git diff --git a/rts/PosixSource.h b/rts/PosixSource.h index a938f9b..d139dd5 100644 --- a/rts/PosixSource.h +++ b/rts/PosixSource.h @@ -9,10 +9,30 @@ #ifndef POSIXSOURCE_H #define POSIXSOURCE_H +#include + +#if defined(freebsd_HOST_OS) +#define _POSIX_C_SOURCE 200112L +#define _XOPEN_SOURCE 600 +#else #define _POSIX_SOURCE 1 #define _POSIX_C_SOURCE 199506L -#define _ISOC9X_SOURCE +#define _XOPEN_SOURCE 500 +// FreeBSD takes a different approach to _ISOC99_SOURCE: on FreeBSD it +// means "I want *just* C99 things", whereas on GNU libc and Solaris +// it means "I also want C99 things". +// +// On both GNU libc and FreeBSD, _ISOC99_SOURCE is implied by +// _XOPEN_SOURCE==600, but on Solaris it is an error to omit it. +#define _ISOC99_SOURCE +#endif -/* Let's be ISO C9X too... */ +#if defined(darwin_HOST_OS) +/* If we don't define this the including sysctl breaks with things like + /usr/include/bsm/audit.h:224:0: + error: syntax error before 'u_char' +*/ +#define _DARWIN_C_SOURCE 1 +#endif #endif /* POSIXSOURCE_H */