Junio C Hamano [off-list ref] writes:
(1) configure misdetects NO_OPENSSL. The relevant parts are:
checking for SHA1_Init in -lssl... no
checking for SHA1_INIT in -lcrypto... no
but I've been building git on Cygwin without NO_OPENSSL (eh,
that's double negation -- what I mean is I've been building
git with -lssl just fine). I think the function to check in
-lcrypto should be SHA1_Init, not SHA1_INIT (trivial patch
attached at the end).
I just noticed that this is not enough. It does fix the
NO_OPENSSL problem, but I think the logic and test for ssl and
crypto in the original are the other way around.
NEEDS_SSL_WITH_CRYPTO means you cannot just say "-lcrypto" to
use SHA1 stuff, but need to say "-lcrypto -lssl", so the test
should say "if we can get away with -lcrypto, we are happy,
otherwise if we need -lssl, then say NEEDS_SSL_WITH_CRYPTO,
otherwise we cannot use OpenSSL so say NO_OPENSSL", or something
like that.
-- >8 --
diff --git a/configure.ac b/configure.ac
index 9ce00e9..fea18b6 100644
--- a/configure.ac
+++ b/configure.ac
@@ -154,8 +154,8 @@ AC_MSG_NOTICE([CHECKS for libraries])
#
# Define NO_OPENSSL environment variable if you do not have OpenSSL.
# Define NEEDS_SSL_WITH_CRYPTO if you need -lcrypto with -lssl (Darwin).
-AC_CHECK_LIB([ssl], [SHA1_Init],[],
-[AC_CHECK_LIB([crypto], [SHA1_INIT],
+AC_CHECK_LIB([crypto], [SHA1_Init],[],
+[AC_CHECK_LIB([ssl], [SHA1_Init],
[GIT_CONF_APPEND_LINE(NEEDS_SSL_WITH_CRYPTO=YesPlease)],
[GIT_CONF_APPEND_LINE(NO_OPENSSL=YesPlease)])])
#