diff options
author | Lasse Collin <lasse.collin@tukaani.org> | 2015-11-02 18:16:51 +0200 |
---|---|---|
committer | Lasse Collin <lasse.collin@tukaani.org> | 2015-11-02 18:16:51 +0200 |
commit | c6bf438ab39e0fb4a47d3c81725c227919502726 (patch) | |
tree | bdd294f1e04465c9d7b8802cb0461740274c8972 | |
parent | xz: Always close the file before trying to delete it. (diff) | |
download | xz-c6bf438ab39e0fb4a47d3c81725c227919502726.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.
-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 |