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
This commit is contained in:
John Baldwin 2021-12-08 14:25:02 -08:00
parent 2a31cd215d
commit a6765c4b44

View file

@ -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] = {