]> git.ipfire.org Git - thirdparty/openssh-portable.git/commitdiff
Use zero-call-used-regs=used with Apple compilers.
authorDarren Tucker <dtucker@dtucker.net>
Sun, 10 Sep 2023 05:45:38 +0000 (15:45 +1000)
committerDarren Tucker <dtucker@dtucker.net>
Sun, 10 Sep 2023 05:50:58 +0000 (15:50 +1000)
Apple's versions of clang have version numbers that do not match the
corresponding upstream clang versions.  Unfortunately, they do still
have the clang-15 zero-call-used-regs=all bug, so for now use the value
that doesn't result in segfaults.  We could allowlist future versions
that are known to work.  bz#3584 (and probably also our github CI
failures).

configure.ac

index e3128dfcbb4e5ef918dc9b3cea99565c87d33f91..d8816e3f65de88c2cafa6d173c5c7dca6c33749c 100644 (file)
@@ -187,7 +187,13 @@ if test "$GCC" = "yes" || test "$GCC" = "egcs"; then
        AC_MSG_RESULT([$GCC_VER])
 
        AC_MSG_CHECKING([clang version])
-       CLANG_VER=`$CC -v 2>&1 | $AWK '/clang version /{print $3}'`
+       ver="`$CC -v 2>&1`"
+       if echo "$ver" | grep "Apple" >/dev/null; then
+               CLANG_VER="apple-`echo "$ver" | \
+                   awk '/Apple LLVM/ {print $4"-"$5}'`"
+       else
+               CLANG_VER=`echo "$ver" | $AWK '/clang version /{print $3}'`
+       fi
        AC_MSG_RESULT([$CLANG_VER])
 
        OSSH_CHECK_CFLAG_COMPILE([-pipe])
@@ -225,7 +231,7 @@ if test "$GCC" = "yes" || test "$GCC" = "egcs"; then
        # https://bugzilla.mindrot.org/show_bug.cgi?id=3475 and
        # https://github.com/llvm/llvm-project/issues/59242
        case "$CLANG_VER" in
-       15.*) OSSH_CHECK_CFLAG_COMPILE([-fzero-call-used-regs=used]) ;;
+       15.*|apple*) OSSH_CHECK_CFLAG_COMPILE([-fzero-call-used-regs=used]) ;;
        *)    OSSH_CHECK_CFLAG_COMPILE([-fzero-call-used-regs=all]) ;;
        esac
        OSSH_CHECK_CFLAG_COMPILE([-ftrivial-auto-var-init=zero])