aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Baldwin <jhb@FreeBSD.org>2021-12-08 22:25:02 +0000
committerJohn Baldwin <jhb@FreeBSD.org>2021-12-08 22:25:02 +0000
commita6765c4b449d79c6ee24dd7c37deb2239f6281a4 (patch)
tree76c42ed649e3e9d666103f3c23eb99c067f0f734
parent2a31cd215d9757a8fd6483c58fa965fc7d8aa91b (diff)
downloadsrc-a6765c4b449d79c6ee24dd7c37deb2239f6281a4.tar.gz
src-a6765c4b449d79c6ee24dd7c37deb2239f6281a4.zip
libmd: Only define SHA256_Transform_c when using the ARM64 ifunc.
GCC 9 doesn't define a SHA256_Transform symbol when the stub just wraps SHA256_Transform_c resulting in an undefined symbol for _libmd_SHA256_Transform in libmd.so. Discussed with: andrew, jrtc27 Reviewed by: emaste Differential Revision: https://reviews.freebsd.org/D31945
-rw-r--r--sys/crypto/sha2/sha256c.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/sys/crypto/sha2/sha256c.c b/sys/crypto/sha2/sha256c.c
index 63805c97a4bb..57ae9e7a6ab3 100644
--- a/sys/crypto/sha2/sha256c.c
+++ b/sys/crypto/sha2/sha256c.c
@@ -138,7 +138,11 @@ static const uint32_t K[64] = {
* the 512-bit input block to produce a new state.
*/
static void
+#if defined(ARM64_SHA2)
SHA256_Transform_c(uint32_t * state, const unsigned char block[64])
+#else
+SHA256_Transform(uint32_t * state, const unsigned char block[64])
+#endif
{
uint32_t W[64];
uint32_t S[8];
@@ -213,12 +217,6 @@ DEFINE_UIFUNC(static, void, SHA256_Transform,
return (SHA256_Transform_c);
}
-#else
-static void
-SHA256_Transform(uint32_t * state, const unsigned char block[64])
-{
- SHA256_Transform_c(state, block);
-}
#endif
static unsigned char PAD[64] = {