summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorteor <teor@torproject.org>2018-07-20 12:26:33 +1000
committerteor <teor@torproject.org>2018-07-20 12:29:32 +1000
commit022b8f15da2b349aaffc5aab311bdd3e0a7fa199 (patch)
tree17137b91853051a99e4628e8adb50334d1d02ab4
parente0f99404f552e047b268c6c47691143a1491ec72 (diff)
downloadtor-022b8f15da2b349aaffc5aab311bdd3e0a7fa199.tar.gz
tor-022b8f15da2b349aaffc5aab311bdd3e0a7fa199.zip
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.
-rw-r--r--changes/bug268764
-rw-r--r--configure.ac32
2 files changed, 33 insertions, 3 deletions
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 <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.
AC_MSG_CHECKING([for a pre-Sierra OSX build target])
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[