48 lines
1.9 KiB
Diff
48 lines
1.9 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Vladimir Serbinenko <phcoder@gmail.com>
|
|
Date: Mon, 7 Jul 2025 14:52:12 +0000
|
|
Subject: [PATCH] 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 <phcoder@gmail.com>
|
|
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
|
|
---
|
|
.../lib/libgcrypt-patches/02_keccak_sse.patch | 25 ++++++++++++++++++++++
|
|
1 file changed, 25 insertions(+)
|
|
create mode 100644 grub-core/lib/libgcrypt-patches/02_keccak_sse.patch
|
|
|
|
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 0000000..4deda12
|
|
--- /dev/null
|
|
+++ b/grub-core/lib/libgcrypt-patches/02_keccak_sse.patch
|
|
@@ -0,0 +1,25 @@
|
|
+commit b0cf06271da5fe20360953a53a47c69da89669cd
|
|
+Author: Vladimir Serbinenko <phcoder@gmail.com>
|
|
+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 <phcoder@gmail.com>
|
|
+
|
|
+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)
|
|
+ {
|