Skip to content

Commit

Permalink
git-compat-util: suppress unavoidable Apple-specific deprecation warn…
Browse files Browse the repository at this point in the history
…ings

With the release of Mac OS X 10.7 in July 2011, Apple deprecated all
openssl.h functionality due to OpenSSL ABI (application binary
interface) instability, resulting in an explosion of compilation
warnings about deprecated SSL, SHA1, and X509 functions (among others).

6106795 (cache.h: eliminate SHA-1 deprecation warnings on Mac OS X;
2013-05-19) and be4c828 (imap-send: eliminate HMAC deprecation
warnings on Mac OS X; 2013-05-19) attempted to ameliorate the situation
by taking advantage of drop-in replacement functionality provided by
Apple's (ABI-stable) CommonCrypto facility, however CommonCrypto
supplies only a subset of deprecated OpenSSL functionality, thus a host
of warnings remain.

Despite this shortcoming, it was hoped that Apple would ultimately
provide CommonCrypto replacements for all deprecated OpenSSL
functionality, and that the effort started by 6106795 and be4c828
would be continued and eventually eliminate all deprecation warnings.
However, now 3.5 years later, and with Mac OS X at 10.10, the hoped-for
CommonCrypto replacements have not yet materialized, nor is there any
indication that they will be forthcoming.

These Apple-specific warnings are pure noise: they don't tell us
anything useful and we have no control over them, nor is Apple likely to
provide replacements any time soon. Such noise may obscure other
legitimate warnings, therefore silence them.

Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Eric Sunshine authored and Junio C Hamano committed Dec 18, 2014
1 parent 8213d87 commit b195aa0
Showing 1 changed file with 4 additions and 0 deletions.
4 changes: 4 additions & 0 deletions git-compat-util.h
Original file line number Diff line number Diff line change
Expand Up @@ -211,8 +211,12 @@ extern char *gitbasename(char *);
#endif

#ifndef NO_OPENSSL
#define __AVAILABILITY_MACROS_USES_AVAILABILITY 0
#define MAC_OS_X_VERSION_MIN_REQUIRED MAC_OS_X_VERSION_10_6
#include <openssl/ssl.h>
#include <openssl/err.h>
#undef MAC_OS_X_VERSION_MIN_REQUIRED
#undef __AVAILABILITY_MACROS_USES_AVAILABILITY
#endif

/* On most systems <netdb.h> would have given us this, but
Expand Down

0 comments on commit b195aa0

Please sign in to comment.