Cleanup PosixSource.h
authorMoritz Angermann <moritz.angermann@gmail.com>
Sun, 9 Oct 2016 22:19:26 +0000 (18:19 -0400)
committerBen Gamari <ben@smart-cactus.org>
Sun, 9 Oct 2016 22:19:32 +0000 (18:19 -0400)
commit8dc72f3c33b0e724ddb690c9d494969980c10afd
treee3f886800e6eec8fd68a9470373b6743db673966
parentbcd34451382e0d1b52ef82cb9d762e9d68bc0887
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/PosixSource.h
rts/posix/OSThreads.c