X-Git-Url: https://perl5.git.perl.org/perl5.git/blobdiff_plain/67bdb7ae864de5b39b1d10dd96399b5163385d3c..72aac62720fdd7ad8838984e8ca7cf2dedb7a776:/hints/darwin.sh diff --git a/hints/darwin.sh b/hints/darwin.sh index 690fe4e..fdfbdd4 100644 --- a/hints/darwin.sh +++ b/hints/darwin.sh @@ -301,7 +301,7 @@ case "$osvers" in # Note: osvers is the kernel version, not the 10.x # 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 ;; @@ -313,7 +313,7 @@ case "$osvers" in # Note: osvers is the kernel version, not the 10.x *** 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 @@ -327,7 +327,7 @@ EOM # "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 ;; @@ -342,12 +342,19 @@ EOM 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" @@ -511,3 +518,20 @@ if test "$d_unsetenv" = "$define" -a \ 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