diff options
Diffstat (limited to 'configure.ac')
-rw-r--r-- | configure.ac | 49 |
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}" |