RTS GetTime.c is broken on Darwins that include clock_gettime
GHC fails to build on versions of Darwin which include `clock_gettime`.
On Darwin versions which include `clock_gettime`, the `#ifdef`s are structured to prefer using `clock_gettime` over the mach-specific time functions and structs; however, a couple of places in GetTime.c use the mach functions unconditionally even though the `mach/mach_time.h` header won't be included if `clock_gettime` is available.
The attached patch fixes this by checking `HAVE_CLOCK_GETTIME` first before checking if the OS is Darwin.
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | ---------------- |
| Version | 8.0.1 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Compiler |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | Unknown/Multiple |
| Architecture | Unknown/Multiple |
</details>
<!-- {"blocked_by":[],"summary":"RTS GetTime.c is broken on Darwins that include clock_gettime","status":"New","operating_system":"Unknown/Multiple","component":"Compiler","related":[],"milestone":"","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"8.0.1","keywords":[],"differentials":[],"test_case":"","architecture":"Unknown/Multiple","cc":[""],"type":"Bug","description":"GHC fails to build on versions of Darwin which include `clock_gettime`.\r\n\r\nOn Darwin versions which include `clock_gettime`, the `#ifdef`s are structured to prefer using `clock_gettime` over the mach-specific time functions and structs; however, a couple of places in GetTime.c use the mach functions unconditionally even though the `mach/mach_time.h` header won't be included if `clock_gettime` is available.\r\n\r\nThe attached patch fixes this by checking `HAVE_CLOCK_GETTIME` first before checking if the OS is Darwin.","type_of_failure":"OtherFailure","blocking":[]} -->
issue