From 8dc72f3c33b0e724ddb690c9d494969980c10afd Mon Sep 17 00:00:00 2001 From: Moritz Angermann Date: Sun, 9 Oct 2016 18:19:26 -0400 Subject: Cleanup PosixSource.h When trying to build arm64-apple-iso, the build fell over `strdup`, as the arm64-apple-ios build did not fall into `darwin_HOST_OS`, and would need `ios_HOST_OS`. This diff tries to clean up PosixSource.h, instead of layering another define on top. As we use `strnlen` in sources that include PosixSource.h, and `strnlen` is defined in POSIX.1-2008, the `_POSIX_C_SOURCE` and `_XOPEN_SOURCE` are increased accordingly. Furthermore the `_DARWIN_C_SOURCE` (required for `u_char`, etc. used in sysctl.h) define is moved into `OSThreads.h` alongside a similar ifdef for freebsd. Test Plan: Build on all supported platforms. Reviewers: austin, simonmar, erikd, kgardas, bgamari Reviewed By: simonmar, erikd, kgardas, bgamari Subscribers: Phyx, hvr, thomie Differential Revision: https://phabricator.haskell.org/D2579 GHC Trac Issues: #12624 --- rts/posix/OSThreads.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'rts/posix') diff --git a/rts/posix/OSThreads.c b/rts/posix/OSThreads.c index 8c7c8f0e24..63e979080c 100644 --- a/rts/posix/OSThreads.c +++ b/rts/posix/OSThreads.c @@ -14,6 +14,11 @@ * 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" -- cgit v1.2.1