From 1110da4ee7640eee7cf7b4841d336bd3dcf92dc1 Mon Sep 17 00:00:00 2001 From: Tim Kientzle Date: Sat, 17 Dec 2011 02:17:23 -0500 Subject: [PATCH] Don't use libmd and OpenSSL at the same time; they provide conflicting definitions for SHA512 symbols. SVN-Revision: 3926 --- libarchive/archive_crypto.c | 6 ++++++ libarchive/archive_crypto_private.h | 9 +++++++++ 2 files changed, 15 insertions(+) diff --git a/libarchive/archive_crypto.c b/libarchive/archive_crypto.c index 8e792e52c..2caf57169 100644 --- a/libarchive/archive_crypto.c +++ b/libarchive/archive_crypto.c @@ -30,6 +30,12 @@ #include "archive.h" #include "archive_crypto_private.h" +/* In particular, force the configure probe to break if it tries + * to test a combination of OpenSSL and libmd. */ +#if defined(ARCHIVE_CRYPTO_OPENSSL) && defined(ARCHIVE_CRYPTO_LIBMD) +#error Cannot use both OpenSSL and libmd. +#endif + /* * Message digest functions for Windows platform. */ diff --git a/libarchive/archive_crypto_private.h b/libarchive/archive_crypto_private.h index 24754a017..f8b1fb3c3 100644 --- a/libarchive/archive_crypto_private.h +++ b/libarchive/archive_crypto_private.h @@ -79,6 +79,14 @@ #endif /* libmd crypto headers */ +#if defined(ARCHIVE_CRYPTO_MD5_LIBMD) ||\ + defined(ARCHIVE_CRYPTO_RMD160_LIBMD) ||\ + defined(ARCHIVE_CRYPTO_SHA1_LIBMD) ||\ + defined(ARCHIVE_CRYPTO_SHA256_LIBMD) ||\ + defined(ARCHIVE_CRYPTO_SHA512_LIBMD) +#define ARCHIVE_CRYPTO_LIBMD 1 +#endif + #if defined(ARCHIVE_CRYPTO_MD5_LIBMD) #include #endif @@ -125,6 +133,7 @@ defined(ARCHIVE_CRYPTO_SHA256_OPENSSL) ||\ defined(ARCHIVE_CRYPTO_SHA384_OPENSSL) ||\ defined(ARCHIVE_CRYPTO_SHA512_OPENSSL) +#define ARCHIVE_CRYPTO_OPENSSL 1 #include #endif