aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDarren Tucker <dtucker@dtucker.net>2023-11-21 14:04:34 +1100
committerDarren Tucker <dtucker@dtucker.net>2023-11-21 14:04:34 +1100
commitff220d4010717f7bfbbc02a2400666fb9d24f250 (patch)
tree5925adb8c3d2ced1014ea0c9406e5e72106b63ad
parent2a19e02f36b16f0f6cc915f7d1e60ead5e36303b (diff)
downloadopenssh-ff220d4010717f7bfbbc02a2400666fb9d24f250.tar.gz
Stop using -fzero-call-used-regs=all
... since it seems to be problematic with several different versions of clang. Only use -fzero-call-used-regs=used which is less problematic, except with Apple's clang where we don't use it at all. bz#3629, ok djm@
-rw-r--r--configure.ac7
1 files changed, 5 insertions, 2 deletions
diff --git a/configure.ac b/configure.ac
index 92540d034..36e1028e1 100644
--- a/configure.ac
+++ b/configure.ac
@@ -231,9 +231,12 @@ if test "$GCC" = "yes" || test "$GCC" = "egcs"; then
# clang 15 seems to have a bug in -fzero-call-used-regs=all. See
# https://bugzilla.mindrot.org/show_bug.cgi?id=3475 and
# https://github.com/llvm/llvm-project/issues/59242
+ # clang 17 has a different bug that causes an ICE when using this
+ # flag at all (https://bugzilla.mindrot.org/show_bug.cgi?id=3629)
case "$CLANG_VER" in
- 15.*|apple*) OSSH_CHECK_CFLAG_COMPILE([-fzero-call-used-regs=used]) ;;
- *) OSSH_CHECK_CFLAG_COMPILE([-fzero-call-used-regs=all]) ;;
+ apple-15*) OSSH_CHECK_CFLAG_COMPILE([-fzero-call-used-regs=used]) ;;
+ 17*) ;;
+ *) OSSH_CHECK_CFLAG_COMPILE([-fzero-call-used-regs=used]) ;;
esac
OSSH_CHECK_CFLAG_COMPILE([-ftrivial-auto-var-init=zero])
fi