diff options
author | Lasse Collin <lasse.collin@tukaani.org> | 2015-11-02 18:16:51 +0200 |
---|---|---|
committer | Lasse Collin <lasse.collin@tukaani.org> | 2016-06-28 21:09:46 +0300 |
commit | 16d68f874d89f1e4a1919786a35bbaef7d71a077 (patch) | |
tree | 329fa2588b9fb7f58804a5b8fdb1ef72f18a3aa7 /src | |
parent | xz: Always close the file before trying to delete it. (diff) | |
download | xz-16d68f874d89f1e4a1919786a35bbaef7d71a077.tar.xz |
liblzma: Fix a build failure related to external SHA-256 support.
If an appropriate header and structure were found by configure,
but a library with a usable SHA-256 functions wasn't, the build
failed.
Diffstat (limited to 'src')
-rw-r--r-- | src/liblzma/check/check.h | 32 |
1 files changed, 23 insertions, 9 deletions
diff --git a/src/liblzma/check/check.h b/src/liblzma/check/check.h index 0f96f65b..b8902f05 100644 --- a/src/liblzma/check/check.h +++ b/src/liblzma/check/check.h @@ -15,7 +15,19 @@ #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> @@ -28,13 +40,7 @@ # 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 |