aboutsummaryrefslogtreecommitdiff
path: root/configure.ac
diff options
context:
space:
mode:
Diffstat (limited to 'configure.ac')
-rw-r--r--configure.ac49
1 files changed, 43 insertions, 6 deletions
diff --git a/configure.ac b/configure.ac
index d8816e3f6..379cd746b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -189,10 +189,11 @@ if test "$GCC" = "yes" || test "$GCC" = "egcs"; then
AC_MSG_CHECKING([clang version])
ver="`$CC -v 2>&1`"
if echo "$ver" | grep "Apple" >/dev/null; then
- CLANG_VER="apple-`echo "$ver" | \
- awk '/Apple LLVM/ {print $4"-"$5}'`"
+ CLANG_VER=apple-`echo "$ver" | grep 'clang version' | \
+ $SED 's/.*clang version //g' | $AWK '{print $1}'`
else
- CLANG_VER=`echo "$ver" | $AWK '/clang version /{print $3}'`
+ CLANG_VER=`echo "$ver" | grep 'clang version' | \
+ $SED 's/.*clang version //g' | $AWK '{print $1}'`
fi
AC_MSG_RESULT([$CLANG_VER])
@@ -230,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_LINK([-fzero-call-used-regs=used]) ;;
+ 17*) ;;
+ *) OSSH_CHECK_CFLAG_LINK([-fzero-call-used-regs=used]) ;;
esac
OSSH_CHECK_CFLAG_COMPILE([-ftrivial-auto-var-init=zero])
fi
@@ -2855,7 +2859,7 @@ if test "x$openssl" = "xyes" ; then
# OpenSSL 3; we use the 1.1x API
CPPFLAGS="$CPPFLAGS -DOPENSSL_API_COMPAT=0x10100000L"
;;
- 301*|302*)
+ 301*|302*|303*)
# OpenSSL development branch; request 1.1x API
CPPFLAGS="$CPPFLAGS -DOPENSSL_API_COMPAT=0x10100000L"
;;
@@ -3140,6 +3144,30 @@ if test "x$openssl" = "xyes" ; then
ecdsa-sha2-nistp521 \
ecdsa-sha2-nistp521-cert-v01@openssh.com"
fi
+
+ # Check libcrypto ED25519 support
+ AC_CHECK_FUNCS([EVP_PKEY_get_raw_public_key])
+ AC_CHECK_FUNCS([EVP_PKEY_get_raw_private_key])
+ AC_MSG_CHECKING([whether OpenSSL has ED25519 support])
+ AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM([[
+ #include <string.h>
+ #include <openssl/evp.h>
+ ]], [[
+ unsigned char buf[64];
+ memset(buf, 0, sizeof(buf));
+ exit(EVP_PKEY_new_raw_private_key(EVP_PKEY_ED25519,
+ buf, sizeof(buf)) == NULL);
+ ]])],
+ [
+ AC_MSG_RESULT([yes])
+ AC_DEFINE([OPENSSL_HAS_ED25519], [1],
+ [libcrypto has ed25519 support])
+ ],
+ [
+ AC_MSG_RESULT([no])
+ ]
+ )
fi
# PKCS11/U2F depend on OpenSSL and dlopen().
@@ -5552,6 +5580,15 @@ AC_SUBST([TEST_MALLOC_OPTIONS], [$TEST_MALLOC_OPTIONS])
AC_SUBST([UNSUPPORTED_ALGORITHMS], [$unsupported_algorithms])
AC_SUBST([DEPEND], [$(cat $srcdir/.depend)])
+# Binaries for interop tests.
+AC_PATH_PROG([PLINK], [plink])
+AC_PATH_PROG([PUTTYGEN], [puttygen])
+AC_PATH_PROG([CONCH], [conch])
+AC_PATH_PROG([DROPBEAR], [dropbear])
+AC_PATH_PROG([DBCLIENT], [dbclient])
+AC_PATH_PROG([DROPBEARKEY], [dropbearkey])
+AC_PATH_PROG([DROPBEARCONVERT], [dropbearconvert])
+
CFLAGS="${CFLAGS} ${CFLAGS_AFTER}"
LDFLAGS="${LDFLAGS} ${LDFLAGS_AFTER}"