diff --git a/grub-core/lib/libgcrypt-patches/02_keccak_sse.patch b/grub-core/lib/libgcrypt-patches/02_keccak_sse.patch new file mode 100644 index 000000000..4deda126d --- /dev/null +++ b/grub-core/lib/libgcrypt-patches/02_keccak_sse.patch @@ -0,0 +1,25 @@ +commit b0cf06271da5fe20360953a53a47c69da89669cd +Author: Vladimir Serbinenko +Date: Sun Apr 7 03:33:11 2024 +0000 + + keccak: Disable acceleration with SSE asm + + Libgcrypt code assumes that on x64 all SSE registers are fair game. + While it's true that CPUs in question support it, we disable it in + our compilation options. Disable the offending optimization. + + Signed-off-by: Vladimir Serbinenko + +diff --git a/grub-core/lib/libgcrypt/cipher/keccak.c b/grub-core/lib/libgcrypt/cipher/keccak.c +index 11e64b3e7..8b570263b 100644 +--- a/grub-core/lib/libgcrypt-grub/cipher/keccak.c ++++ b/grub-core/lib/libgcrypt-grub/cipher/keccak.c +@@ -275,7 +275,7 @@ keccak_absorb_lane32bi(u32 *lane, u32 x0, u32 x1) + /* Construct generic 64-bit implementation. */ + #ifdef USE_64BIT + +-#if __GNUC__ >= 4 && defined(__x86_64__) ++#if __GNUC__ >= 4 && defined(__x86_64__) && 0 + + static inline void absorb_lanes64_8(u64 *dst, const byte *in) + {