On Thu, Jan 8, 2015 at 3:00 PM, Reuben Hawkins <reubenhwk@xxxxxxxxx> wrote: > OpenSSL version 0.9.6b and before defined the function HMAC_cleanup. > Newer versions define HMAC_CTX_cleanup. Check for HMAC_CTX_cleanup and > fall back to HMAC_cleanup when the newer function is missing. > > Signed-off-by: Reuben Hawkins <reubenhwk@xxxxxxxxx> Reviewed-by: Eric Sunshine <sunshine@xxxxxxxxxxxxxx> Note that this patch has a minor and simple-to-resolve conflict with b195aa00c1 (git-compat-util: suppress unavoidable Apple-specific deprecation warnings; 2014-12-16) which was just promoted to master. Junio may resolve it locally or ask you to re-send. > --- > diff --git a/Makefile b/Makefile > index 57e33f2..2ce1f1f 100644 > --- a/Makefile > +++ b/Makefile > @@ -341,6 +341,9 @@ all:: > # Define HAVE_CLOCK_GETTIME if your platform has clock_gettime in librt. > # > # Define HAVE_CLOCK_MONOTONIC if your platform has CLOCK_MONOTONIC in librt. > +# > +# Define NO_HMAC_CTX_CLEANUP if your OpenSSL is version 0.9.6b or earlier to > +# cleanup the HMAC context with the older HMAC_cleanup function. > > GIT-VERSION-FILE: FORCE > @$(SHELL_PATH) ./GIT-VERSION-GEN > @@ -1061,6 +1064,9 @@ ifndef NO_OPENSSL > ifdef NEEDS_CRYPTO_WITH_SSL > OPENSSL_LIBSSL += -lcrypto > endif > + ifdef NO_HMAC_CTX_CLEANUP > + BASIC_CFLAGS += -DNO_HMAC_CTX_CLEANUP > + endif > else > BASIC_CFLAGS += -DNO_OPENSSL > BLK_SHA1 = 1 > diff --git a/configure.ac b/configure.ac > index c3293b9..9c66c3e 100644 > --- a/configure.ac > +++ b/configure.ac > @@ -924,6 +924,10 @@ AC_CHECK_LIB([iconv], [locale_charset], > [CHARSET_LIB=-lcharset])]) > GIT_CONF_SUBST([CHARSET_LIB]) > # > +# Define NO_HMAC_CTX_CLEANUP=YesPlease if HMAC_CTX_cleanup is missing. > +AC_CHECK_LIB([crypto], [HMAC_CTX_cleanup], > + [], [GIT_CONF_SUBST([NO_HMAC_CTX_CLEANUP], [YesPlease])]) > +# > # Define HAVE_CLOCK_GETTIME=YesPlease if clock_gettime is available. > GIT_CHECK_FUNC(clock_gettime, > [HAVE_CLOCK_GETTIME=YesPlease], > diff --git a/git-compat-util.h b/git-compat-util.h > index 400e921..2fdca2d 100644 > --- a/git-compat-util.h > +++ b/git-compat-util.h > @@ -213,6 +213,9 @@ extern char *gitbasename(char *); > #ifndef NO_OPENSSL > #include <openssl/ssl.h> > #include <openssl/err.h> > +#ifdef NO_HMAC_CTX_CLEANUP > +#define HMAC_CTX_cleanup HMAC_cleanup > +#endif > #endif > > /* On most systems <netdb.h> would have given us this, but > -- > 2.2.0.68.g8f72f0c.dirty -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html