]> granicus.if.org Git - xz/commitdiff
liblzma: Fix a build failure related to external SHA-256 support.
authorLasse Collin <lasse.collin@tukaani.org>
Mon, 2 Nov 2015 16:16:51 +0000 (18:16 +0200)
committerLasse Collin <lasse.collin@tukaani.org>
Mon, 2 Nov 2015 16:16:51 +0000 (18:16 +0200)
If an appropriate header and structure were found by configure,
but a library with a usable SHA-256 functions wasn't, the build
failed.

src/liblzma/check/check.h

index 0f96f65b360c54bf3b839be6c5a5500b6218cbe6..b8902f05f7d12601365ac42df71eb3e7719e32b3 100644 (file)
 
 #include "common.h"
 
-#if defined(HAVE_COMMONCRYPTO_COMMONDIGEST_H)
+// If either the data type or the function for external SHA-256 is missing,
+// use the internal SHA-256 code.
+#if !(defined(HAVE_CC_SHA256_CTX) || defined(HAVE_SHA256_CTX) \
+                       || defined(HAVE_SHA2_CTX)) \
+               || !(defined(HAVE_CC_SHA256_INIT) \
+                       || defined(HAVE_SHA256_INIT) \
+                       || defined(HAVE_SHA256INIT))
+#      define HAVE_INTERNAL_SHA256 1
+#endif
+
+#if defined(HAVE_INTERNAL_SHA256)
+// Nothing
+#elif defined(HAVE_COMMONCRYPTO_COMMONDIGEST_H)
 #      include <CommonCrypto/CommonDigest.h>
 #elif defined(HAVE_SHA256_H)
 #      include <sys/types.h>
 #      include <minix/sha2.h>
 #endif
 
-#if defined(HAVE_CC_SHA256_CTX)
-typedef CC_SHA256_CTX lzma_sha256_state;
-#elif defined(HAVE_SHA256_CTX)
-typedef SHA256_CTX lzma_sha256_state;
-#elif defined(HAVE_SHA2_CTX)
-typedef SHA2_CTX lzma_sha256_state;
-#else
+#if defined(HAVE_INTERNAL_SHA256)
 /// State for the internal SHA-256 implementation
 typedef struct {
        /// Internal state
@@ -43,9 +49,17 @@ typedef struct {
        /// Size of the message excluding padding
        uint64_t size;
 } lzma_sha256_state;
+#elif defined(HAVE_CC_SHA256_CTX)
+typedef CC_SHA256_CTX lzma_sha256_state;
+#elif defined(HAVE_SHA256_CTX)
+typedef SHA256_CTX lzma_sha256_state;
+#elif defined(HAVE_SHA2_CTX)
+typedef SHA2_CTX lzma_sha256_state;
 #endif
 
-#if defined(HAVE_CC_SHA256_INIT)
+#if defined(HAVE_INTERNAL_SHA256)
+// Nothing
+#elif defined(HAVE_CC_SHA256_INIT)
 #      define LZMA_SHA256FUNC(x) CC_SHA256_ ## x
 #elif defined(HAVE_SHA256_INIT)
 #      define LZMA_SHA256FUNC(x) SHA256_ ## x