File openssl-3-Fix-SHA-SHAKE-and-KECCAK-ASM-flag-passing.patch of Package openssl-3.27638
From 6e0a9b539f3771ea25d1e98c0fa14fbe352607d9 Mon Sep 17 00:00:00 2001
From: Juergen Christ <jchrist@linux.ibm.com>
Date: Thu, 7 Jul 2022 18:57:55 +0200
Subject: [PATCH] Fix SHA, SHAKE, and KECCAK ASM flag passing
Flags for ASM implementations of SHA, SHAKE, and KECCAK were only passed to
the FIPS provider and not to the default or legacy provider. This left some
potential for optimization. Pass the correct flags also to these providers.
Signed-off-by: Juergen Christ <jchrist@linux.ibm.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Patrick Steuer <patrick.steuer@de.ibm.com>
Reviewed-by: Paul Dale <pauli@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/18747)
(cherry picked from commit a8b238f0e4c1198935e066ef19579ca694253286)
---
crypto/sha/build.info | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/crypto/sha/build.info b/crypto/sha/build.info
index f3e38284ad35..d61f7de9b6bd 100644
--- a/crypto/sha/build.info
+++ b/crypto/sha/build.info
@@ -82,6 +82,14 @@ SOURCE[../../providers/libfips.a]= $COMMON
# need to be applied to all affected libraries and modules.
DEFINE[../../libcrypto]=$SHA1DEF $KECCAK1600DEF
DEFINE[../../providers/libfips.a]=$SHA1DEF $KECCAK1600DEF
+DEFINE[../../providers/libdefault.a]=$SHA1DEF $KECCAK1600DEF
+# We only need to include the SHA1DEF and KECCAK1600DEF stuff in the
+# legacy provider when it's a separate module and it's dynamically
+# linked with libcrypto. Otherwise, it already gets everything that
+# the static libcrypto.a has, and doesn't need it added again.
+IF[{- !$disabled{module} && !$disabled{shared} -}]
+ DEFINE[../providers/liblegacy.a]=$SHA1DEF $KECCAK1600DEF
+ENDIF
GENERATE[sha1-586.s]=asm/sha1-586.pl
DEPEND[sha1-586.s]=../perlasm/x86asm.pl