Re: [PATCH v3 3/3] cache.h: eliminate SHA-1 deprecation warnings on OS X 10.8
From: Eric Sunshine <hidden>
Date: 2016-06-15 22:57:14
On Mon, May 13, 2013 at 3:20 AM, David Aguilar [off-list ref] wrote:
quoted hunk ↗ jump to hunk
Mac OS X Mountain Lion prints warnings when building git: warning: 'SHA1_Init' is deprecated (declared at /usr/include/openssl/sha.h:121) Silence the warnings by using the Common Digest SHA-1 functions for SHA1_Init(), SHA1_Update(), and SHA1_Final(). Add a COMMON_DIGEST_SHA1 option to the Makefile to allow choosing this implementation and define it by default on Darwin. Define COMMON_DIGEST_FOR_SHA1 to enable the OpenSSL compatibility macros in CommonDigest.h. Helped-by: Eric Sunshine [off-list ref] Signed-off-by: David Aguilar <redacted> --- Here's a replacement patch for what's in pu. This version uses the built-in #defines and can thus avoid touching cache.h. Makefile | 6 ++++++ 1 file changed, 6 insertions(+)diff --git a/Makefile b/Makefile index 25282b4..9d174b9 100644 --- a/Makefile +++ b/Makefile@@ -1055,6 +1055,7 @@ ifeq ($(uname_S),Darwin) endif endif COMMON_DIGEST_HMAC = YesPlease + COMMON_DIGEST_SHA1 = YesPlease NO_REGEX = YesPlease PTHREAD_LIBS = endif@@ -1390,10 +1391,15 @@ ifdef PPC_SHA1 LIB_OBJS += ppc/sha1.o ppc/sha1ppc.o LIB_H += ppc/sha1.h else +ifdef COMMON_DIGEST_SHA1 + BASIC_CFLAGS += -DCOMMON_DIGEST_FOR_SHA1=1
This is incorrect. As noted in my previous email, you need to define COMMON_DIGEST_FOR_OPENSSL, not COMMON_DIGEST_FOR_SHA1, in order for CommonDigest.h to provide the OpenSSL defines magically. Thus: s/COMMON_DIGEST_FOR_SHA1=1/COMMON_DIGEST_FOR_OPENSSL/
+ SHA1_HEADER = <CommonCrypto/CommonDigest.h>
+else
SHA1_HEADER = <openssl/sha.h>
EXTLIBS += $(LIB_4_CRYPTO)
endif
endif
+endif
ifdef COMMON_DIGEST_HMAC
BASIC_CFLAGS += -DCOMMON_DIGEST_FOR_HMAC=1
--
1.8.3.rc1.47.g1b7707e