Fix POWER build with OPENSSL_NO_ASM. Change-Id: I28892ff6a954fc925329fe8f63af469468f489b7 Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/36964 Reviewed-by: David Benjamin <davidben@google.com> Commit-Queue: Adam Langley <agl@google.com>
diff --git a/crypto/fipsmodule/sha/internal.h b/crypto/fipsmodule/sha/internal.h index a5d70c3..cc90914 100644 --- a/crypto/fipsmodule/sha/internal.h +++ b/crypto/fipsmodule/sha/internal.h
@@ -22,17 +22,21 @@ #endif -#if !defined(OPENSSL_NO_ASM) - -#if defined(OPENSSL_X86) || defined(OPENSSL_X86_64) || defined(OPENSSL_ARM) || \ - defined(OPENSSL_AARCH64) || defined(OPENSSL_PPC64LE) +#if defined(OPENSSL_PPC64LE) || \ + (!defined(OPENSSL_NO_ASM) && \ + (defined(OPENSSL_X86) || defined(OPENSSL_X86_64) || \ + defined(OPENSSL_ARM) || defined(OPENSSL_AARCH64))) +// POWER has an intrinsics-based implementation of SHA-1 and thus the functions +// normally defined in assembly are available even with |OPENSSL_NO_ASM| in +// this case. #define SHA1_ASM void sha1_block_data_order(uint32_t *state, const uint8_t *in, size_t num_blocks); #endif -#if defined(OPENSSL_X86) || defined(OPENSSL_X86_64) || defined(OPENSSL_ARM) || \ - defined(OPENSSL_AARCH64) +#if !defined(OPENSSL_NO_ASM) && \ + (defined(OPENSSL_X86) || defined(OPENSSL_X86_64) || \ + defined(OPENSSL_ARM) || defined(OPENSSL_AARCH64)) #define SHA256_ASM #define SHA512_ASM void sha256_block_data_order(uint32_t *state, const uint8_t *in, @@ -41,8 +45,6 @@ size_t num_blocks); #endif -#endif // OPENSSL_NO_ASM - #if defined(__cplusplus) } // extern "C"
diff --git a/crypto/fipsmodule/sha/sha1.c b/crypto/fipsmodule/sha/sha1.c index cc1243b..3b76194 100644 --- a/crypto/fipsmodule/sha/sha1.c +++ b/crypto/fipsmodule/sha/sha1.c
@@ -114,7 +114,7 @@ (ix) = (a) = ROTATE((a), 1); \ } while (0) -#ifndef SHA1_ASM +#if !defined(SHA1_ASM) static void sha1_block_data_order(uint32_t *state, const uint8_t *data, size_t num); #endif