Skip to content

Commit

Permalink
Properly fix build error on old macOS / Xcode with clockid_t
Browse files Browse the repository at this point in the history
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
  • Loading branch information
ychin committed Feb 26, 2023
1 parent 938ae28 commit 15ae26e
Showing 1 changed file with 2 additions and 1 deletion.
3 changes: 2 additions & 1 deletion src/os_mac.h
Original file line number Diff line number Diff line change
Expand Up @@ -272,7 +272,8 @@

# include <dispatch/dispatch.h>

# ifndef MAC_OS_X_VERSION_10_12
# if !defined(MAC_OS_X_VERSION_10_12) || \
(MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_12)
typedef int clockid_t;
# endif
# ifndef CLOCK_REALTIME
Expand Down

0 comments on commit 15ae26e

Please sign in to comment.