Ignore mach_approximate_time when targeting macOS 10.9 and earlier

Work around two different bugs in the OS X 10.10 and later SDKs that would
prevent us from successfully targeting earlier versions of OS X.

Fixes bug 26876; bugfix on 0.3.3.1-alpha.
This commit is contained in:
teor 2018-07-20 12:26:33 +10:00
parent e0f99404f5
commit 022b8f15da
2 changed files with 33 additions and 3 deletions

4
changes/bug26876 Normal file
View File

@ -0,0 +1,4 @@
o Minor bugfixes (portability):
- Work around two different bugs in the OS X 10.10 and later SDKs that
would prevent us from successfully targeting earlier versions of OS X.
Fixes bug 26876; bugfix on 0.3.3.1-alpha.

View File

@ -548,7 +548,6 @@ AC_CHECK_FUNCS(
llround \ llround \
localtime_r \ localtime_r \
lround \ lround \
mach_approximate_time \
memmem \ memmem \
memset_s \ memset_s \
pipe \ pipe \
@ -574,9 +573,36 @@ AC_CHECK_FUNCS(
_vscprintf _vscprintf
) )
# Apple messed up when they added two functions functions in Sierra: they # Apple messed up when they added some functions: they
# forgot to decorate them with appropriate AVAILABLE_MAC_OS_VERSION # forgot to decorate them with appropriate AVAILABLE_MAC_OS_VERSION
# checks. So we should only probe for those functions if we are sure that we # checks.
# We should only probe for these functions if we are sure that we
# are not targeting OS X 10.9 or earlier.
AC_MSG_CHECKING([for a pre-Yosemite OS X build target])
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
#ifdef __APPLE__
# include <AvailabilityMacros.h>
# ifndef MAC_OS_X_VERSION_10_10
# define MAC_OS_X_VERSION_10_10 101000
# endif
# if defined(MAC_OS_X_VERSION_MIN_REQUIRED)
# if MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_10
# error "Running on Mac OS X 10.9 or earlier"
# endif
# endif
#endif
]], [[]])],
[on_macos_pre_10_10=no ; AC_MSG_RESULT([no])],
[on_macos_pre_10_10=yes; AC_MSG_RESULT([yes])])
if test "$on_macos_pre_10_10" = "no"; then
AC_CHECK_FUNCS(
mach_approximate_time \
)
fi
# We should only probe for these functions if we are sure that we
# are not targeting OSX 10.11 or earlier. # are not targeting OSX 10.11 or earlier.
AC_MSG_CHECKING([for a pre-Sierra OSX build target]) AC_MSG_CHECKING([for a pre-Sierra OSX build target])
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[