https://bugs.gentoo.org/972756 https://github.com/openssl/openssl/issues/31199 --- a/crypto/evp/encode.c +++ b/crypto/evp/encode.c @@ -175,7 +175,7 @@ int EVP_EncodeUpdate(EVP_ENCODE_CTX *ctx, unsigned char *out, int *outl, j = evp_encodeblock_int(ctx, out, in, inl - (inl % EVP_ENCODE_B64_LENGTH), &wrap_cnt); } else { -#if defined(__AVX2__) && defined(HAVE_AVX2_INTRINSICS) +#if defined(__AVX2__) && defined(HAVE_AVX2_INTRINSICS) && (defined(__x86_64) || defined(__x86_64__) || defined(_M_AMD64) || defined(_M_X64)) const int newlines = !(ctx->flags & EVP_ENCODE_CTX_NO_NEWLINES) ? EVP_ENCODE_B64_LENGTH : 0; j = encode_base64_avx2(ctx, @@ -243,7 +243,7 @@ int EVP_EncodeBlock(unsigned char *t, const unsigned char *f, int dlen) { int wrap_cnt = 0; -#if defined(__AVX2__) && defined(HAVE_AVX2_INTRINSICS) +#if defined(__AVX2__) && defined(HAVE_AVX2_INTRINSICS) && (defined(__x86_64) || defined(__x86_64__) || defined(_M_AMD64) || defined(_M_X64)) return (int)encode_base64_avx2(NULL, t, f, dlen, 0, &wrap_cnt); #elif defined(HAS_IA32CAP_IS_64) && defined(HAVE_AVX2_INTRINSICS) if ((OPENSSL_ia32cap_P[2] & (1u << 5)) != 0)