From: Guy Harris Date: Sun, 14 May 2017 10:02:29 +0000 (-0700) Subject: Don't check for libcrypto if we don't have openssl/crypto.h. X-Git-Url: https://git.tcpdump.org/tcpdump/commitdiff_plain/refs/heads/tcpdump-4.7?hp=c115ab8ae92fd369ac227e93419e76fd6ae8e75c Don't check for libcrypto if we don't have openssl/crypto.h. Thanks, Apple, for making us do this (and for making tcpdump unable to do some decryption without either installing OpenSSL or working on trying to do the decryption with Apple's frameworks). --- diff --git a/config.h.in b/config.h.in index 914289a8..882f4223 100644 --- a/config.h.in +++ b/config.h.in @@ -85,6 +85,9 @@ /* Define to 1 if you have the `openat' function. */ #undef HAVE_OPENAT +/* Define to 1 if you have the header file. */ +#undef HAVE_OPENSSL_CRYPTO_H + /* Define to 1 if you have the header file. */ #undef HAVE_OPENSSL_EVP_H diff --git a/configure b/configure index 43b3068a..ae82518a 100755 --- a/configure +++ b/configure @@ -8161,7 +8161,23 @@ $as_echo "yes, if available" >&6; } fi if test "$want_libcrypto" != "no"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for DES_cbc_encrypt in -lcrypto" >&5 + # + # If we don't have the header, no point in checking the + # library. + # + # Yes, there are OSes that provide the library but not + # the header. (I'm looking at *you*, recent versions of + # OS X/macOS.) + # + for ac_header in openssl/crypto.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "openssl/crypto.h" "ac_cv_header_openssl_crypto_h" "$ac_includes_default" +if test "x$ac_cv_header_openssl_crypto_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_OPENSSL_CRYPTO_H 1 +_ACEOF + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for DES_cbc_encrypt in -lcrypto" >&5 $as_echo_n "checking for DES_cbc_encrypt in -lcrypto... " >&6; } if ${ac_cv_lib_crypto_DES_cbc_encrypt+:} false; then : $as_echo_n "(cached) " >&6 @@ -8206,7 +8222,7 @@ _ACEOF fi - for ac_header in openssl/evp.h + for ac_header in openssl/evp.h do : ac_fn_c_check_header_mongrel "$LINENO" "openssl/evp.h" "ac_cv_header_openssl_evp_h" "$ac_includes_default" if test "x$ac_cv_header_openssl_evp_h" = xyes; then : @@ -8214,6 +8230,11 @@ if test "x$ac_cv_header_openssl_evp_h" = xyes; then : #define HAVE_OPENSSL_EVP_H 1 _ACEOF +fi + +done + + fi done diff --git a/configure.in b/configure.in index a629559e..abb4c0eb 100644 --- a/configure.in +++ b/configure.in @@ -1112,8 +1112,19 @@ AC_ARG_WITH(crypto, AC_MSG_RESULT([yes, if available]) ]) if test "$want_libcrypto" != "no"; then - AC_CHECK_LIB(crypto, DES_cbc_encrypt) - AC_CHECK_HEADERS(openssl/evp.h) + # + # If we don't have the header, no point in checking the + # library. + # + # Yes, there are OSes that provide the library but not + # the header. (I'm looking at *you*, recent versions of + # OS X/macOS.) + # + AC_CHECK_HEADERS(openssl/crypto.h, + [ + AC_CHECK_LIB(crypto, DES_cbc_encrypt) + AC_CHECK_HEADERS(openssl/evp.h) + ]) fi # Check for libcap-ng