# We now use MACOSX_DEPLOYMENT_TARGET, if set, as an override by
# capturing its value and adding it to the flags.
case "$MACOSX_DEPLOYMENT_TARGET" in
- 10.*)
+ [1-9][0-9].*)
add_macosx_version_min ccflags $MACOSX_DEPLOYMENT_TARGET
add_macosx_version_min ldflags $MACOSX_DEPLOYMENT_TARGET
;;
*** Unexpected MACOSX_DEPLOYMENT_TARGET=$MACOSX_DEPLOYMENT_TARGET
***
-*** Please either set it to 10.something, or to empty.
+*** Please either set it to a valid macOS version number (e.g., 10.15) or to empty.
EOM
exit 1
# "ProductVersion: 10.11" "10.11"
prodvers=`sw_vers|awk '/^ProductVersion:/{print $2}'|awk -F. '{print $1"."$2}'`
case "$prodvers" in
- 10.*)
+ [1-9][0-9].*)
add_macosx_version_min ccflags $prodvers
add_macosx_version_min ldflags $prodvers
;;
exit 1
esac
- # The X in 10.X
- prodvers_minor=$(echo $prodvers|awk -F. '{print $2}')
+ darwin_major=$(echo $osvers|awk -F. '{print $1}')
- # macOS (10.12) deprecated syscall().
- if [ "$prodvers_minor" -ge 12 ]; then
+ # macOS 10.12 (darwin 16.0.0) deprecated syscall().
+ if [ "$darwin_major" -ge 16 ]; then
d_syscall='undef'
+ # If deploying to pre-10.12, suppress Time::HiRes's detection of the system clock_gettime()
+ case "$MACOSX_DEPLOYMENT_TARGET" in
+ 10.[6-9]|10.10|10.11)
+ ccflags="$ccflags -Werror=partial-availability -D_DARWIN_FEATURE_CLOCK_GETTIME=0"
+ ;;
+ *)
+ ;;
+ esac
fi
lddlflags="${ldflags} -bundle -undefined dynamic_lookup"
ccflags="$ccflags -DPERL_USE_SAFE_PUTENV"
fi
EOOVER
+
+# if you use a newer toolchain before OS X 10.9 these functions may be
+# incorrectly detected, so disable them
+# OS X 10.10.x corresponds to kernel 14.x
+case "$osvers" in
+ [1-9].*|1[0-3].*)
+ d_linkat=undef
+ d_openat=undef
+ d_renameat=undef
+ d_unlinkat=undef
+ d_fchmodat=undef
+ ;;
+esac
+
+# mkostemp() was autodetected as present but found to not be linkable
+# on 15.6.0. Unknown what other OS versions are affected.
+d_mkostemp=undef