Skip to content

Commit 15ae26e

Browse files
committed
Properly fix build error on old macOS / Xcode with clockid_t
PR vim#10549 attempted to fix a build break on older Xcode versions (Xcode 8 / macOS 10.11 SDK), but it did it in a way that's not very reliable. In particular, it did it just by checking whether `MAC_OS_X_VERSION_10_12` exists, but that macro is just the version number for 10.12 SDK. In MacVim, we manually define it to allow us to do version check and would fail the build because of that. Instead, the proper fix is to check `MAC_OS_X_VERSION_MAX_ALLOWED` against `MAC_OS_X_VERSION_10_12`. The "max allowed" value is the version of the SDK we are building with and it will be properly defined. The previous bug that the PR was trying to fix was that it was using `MAC_OS_X_VERSION_MIN_REQUIRED` instead, which is the "deployment target" of the build and wasn't the right value to use. See macvim-dev/macvim#1372
1 parent 938ae28 commit 15ae26e

File tree

1 file changed

+2
-1
lines changed

1 file changed

+2
-1
lines changed

src/os_mac.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -272,7 +272,8 @@
272272

273273
# include <dispatch/dispatch.h>
274274

275-
# ifndef MAC_OS_X_VERSION_10_12
275+
# if !defined(MAC_OS_X_VERSION_10_12) || \
276+
(MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_12)
276277
typedef int clockid_t;
277278
# endif
278279
# ifndef CLOCK_REALTIME

0 commit comments

Comments
 (0)