Revert "Cleanup PosixSource.h"
authorBen Gamari <ben@smart-cactus.org>
Fri, 22 Jul 2016 07:45:36 +0000 (09:45 +0200)
committerBen Gamari <ben@smart-cactus.org>
Fri, 22 Jul 2016 07:46:17 +0000 (09:46 +0200)
This reverts commit cac3fb06f4b282eee21159c364c4d08e8fdedce9.

This breaks OS X and Windows.

rts/PosixSource.h
rts/posix/OSThreads.c

index c4e328c..f4b880e 100644 (file)
 
 #include <ghcplatform.h>
 
-#define _POSIX_C_SOURCE 200809L
-#define _XOPEN_SOURCE   700
+/* We aim for C99 so we need to define following two defines in a consistent way
+   with what POSIX/XOPEN provide for C99. Some OSes are particularly picky about
+   the right versions defined here, e.g. Solaris
+   We also settle on lowest version of POSIX/XOPEN needed for proper C99 support
+   here which is POSIX.1-2001 compilation and Open Group Technical Standard,
+   Issue 6 (XPG6). XPG6 itself is a result of the merge of X/Open and POSIX
+   specification. It is also referred as IEEE Std. 1003.1-2001 or ISO/IEC
+   9945:2002 or UNIX 03 and SUSv3.
+   Please also see trac ticket #11757 for more information about switch
+   to C99/C11.
+*/
+#define _POSIX_C_SOURCE 200112L
+#define _XOPEN_SOURCE   600
+
+#define __USE_MINGW_ANSI_STDIO 1
+
+#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 */
index 4010c5d..112a311 100644 (file)
  * because of some specific types, like u_char, u_int, etc. */
 #define __BSD_VISIBLE   1
 #endif
-#if defined(darwin_HOST_OS)
-/* Inclusion of system headers usually requires _DARWIN_C_SOURCE on Mac OS X
- * because of some specific types like u_char, u_int, etc. */
-#define _DARWIN_C_SOURCE 1
-#endif
 
 #include "Rts.h"