For binaries to be notarised, the SDK version must be available.
Since we do not, at present, parse this information we have been
passing "0.0" to ld64. This now results in a warning and a fail
to notarise. As a quick-fix, we can fall back to letting ld64
figure out the SDK version (which it does for -macos_version_min).
TODO: Parse the SDKSetting.plist at some point.
cherry-picked from
952e17223d3a9 and
fc728cfd569e291a5
PR target/119172
gcc/ChangeLog:
* config.in: Regenerate.
* config/darwin.h (DARWIN_PLATFORM_ID): Add the option to
use -macos_version_min where available.
* configure: Regenerate.
* configure.ac: Check for ld64 support of -macos_version_min.
Co-authored-by: Andrew Pinski <quic_apinski@quicinc.com>
Signed-off-by: Iain Sandoe <iain@sandoe.co.uk>
Signed-off-by: Andrew Pinski <quic_apinski@quicinc.com>
#endif
+/* Define to 1 if ld64 supports '-macos_version_min'. */
+#ifndef USED_FOR_TARGET
+#undef LD64_HAS_MACOS_VERSION_MIN
+#endif
+
+
/* Define to 1 if ld64 supports '-platform_version'. */
#ifndef USED_FOR_TARGET
#undef LD64_HAS_PLATFORM_VERSION
#define DARWIN_RDYNAMIC "%{rdynamic:%nrdynamic is not supported}"
#endif
-#if LD64_HAS_PLATFORM_VERSION
-#define DARWIN_PLATFORM_ID \
- "%{mmacosx-version-min=*: -platform_version macos %* 0.0} "
+#if LD64_HAS_MACOS_VERSION_MIN
+# define DARWIN_PLATFORM_ID \
+ "%{mmacosx-version-min=*:-macos_version_min %*} "
#else
-#define DARWIN_PLATFORM_ID \
+# if LD64_HAS_PLATFORM_VERSION
+# define DARWIN_PLATFORM_ID \
+ "%{mmacosx-version-min=*: -platform_version macos %* 0.0} "
+# else
+# define DARWIN_PLATFORM_ID \
"%{mmacosx-version-min=*:-macosx_version_min %*} "
+# endif
#endif
/* Code built with mdynamic-no-pic does not support PIE/PIC, so we disallow
# Set defaults for possibly untestable items.
gcc_cv_ld64_export_dynamic=0
gcc_cv_ld64_platform_version=0
+ gcc_cv_ld64_macos_version_min=0
if test "$build" = "$host"; then
darwin_try_test=1
fi
if test "$gcc_cv_ld64_major" -ge 512; then
gcc_cv_ld64_platform_version=1
+ gcc_cv_ld64_macos_version_min=1
fi
elif test -x "$gcc_cv_ld" -a "$darwin_try_test" -eq 1; then
# If the version was not specified, try to find it.
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_ld64_platform_version" >&5
$as_echo "$gcc_cv_ld64_platform_version" >&6; }
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking linker for -macos_version_min" >&5
+$as_echo_n "checking linker for -macos_version_min... " >&6; }
+ gcc_cv_ld64_macos_version_min=1
+ if $gcc_cv_ld -macos_version_min 10.5 < /dev/null 2>&1 | grep 'unknown option' > /dev/null; then
+ gcc_cv_ld64_macos_version_min=0
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_ld64_macos_version_min" >&5
+$as_echo "$gcc_cv_ld64_macos_version_min" >&6; }
fi
if test x"${gcc_cv_ld64_version}" != x; then
#define LD64_HAS_PLATFORM_VERSION $gcc_cv_ld64_platform_version
_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define LD64_HAS_MACOS_VERSION_MIN $gcc_cv_ld64_macos_version_min
+_ACEOF
+
fi
if test x"$dsymutil_flag" = x"yes"; then
# Set defaults for possibly untestable items.
gcc_cv_ld64_export_dynamic=0
gcc_cv_ld64_platform_version=0
+ gcc_cv_ld64_macos_version_min=0
if test "$build" = "$host"; then
darwin_try_test=1
fi
if test "$gcc_cv_ld64_major" -ge 512; then
gcc_cv_ld64_platform_version=1
+ gcc_cv_ld64_macos_version_min=1
fi
elif test -x "$gcc_cv_ld" -a "$darwin_try_test" -eq 1; then
# If the version was not specified, try to find it.
gcc_cv_ld64_platform_version=0
fi
AC_MSG_RESULT($gcc_cv_ld64_platform_version)
+
+ AC_MSG_CHECKING(linker for -macos_version_min)
+ gcc_cv_ld64_macos_version_min=1
+ if $gcc_cv_ld -macos_version_min 10.5 < /dev/null 2>&1 | grep 'unknown option' > /dev/null; then
+ gcc_cv_ld64_macos_version_min=0
+ fi
+ AC_MSG_RESULT($gcc_cv_ld64_macos_version_min)
fi
if test x"${gcc_cv_ld64_version}" != x; then
AC_DEFINE_UNQUOTED(LD64_HAS_PLATFORM_VERSION, $gcc_cv_ld64_platform_version,
[Define to 1 if ld64 supports '-platform_version'.])
+
+ AC_DEFINE_UNQUOTED(LD64_HAS_MACOS_VERSION_MIN, $gcc_cv_ld64_macos_version_min,
+ [Define to 1 if ld64 supports '-macos_version_min'.])
fi
if test x"$dsymutil_flag" = x"yes"; then