From 022b8f15da2b349aaffc5aab311bdd3e0a7fa199 Mon Sep 17 00:00:00 2001 From: teor Date: Fri, 20 Jul 2018 12:26:33 +1000 Subject: [PATCH] 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. --- changes/bug26876 | 4 ++++ configure.ac | 32 +++++++++++++++++++++++++++++--- 2 files changed, 33 insertions(+), 3 deletions(-) create mode 100644 changes/bug26876 diff --git a/changes/bug26876 b/changes/bug26876 new file mode 100644 index 0000000000..b661104236 --- /dev/null +++ b/changes/bug26876 @@ -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. diff --git a/configure.ac b/configure.ac index 2fda2ef6f3..ba58f9d740 100644 --- a/configure.ac +++ b/configure.ac @@ -548,7 +548,6 @@ AC_CHECK_FUNCS( llround \ localtime_r \ lround \ - mach_approximate_time \ memmem \ memset_s \ pipe \ @@ -574,9 +573,36 @@ AC_CHECK_FUNCS( _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 -# 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 +# 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. AC_MSG_CHECKING([for a pre-Sierra OSX build target]) AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[