From 993e2946d6134599c75f5def44fd54f3a331a453 Mon Sep 17 00:00:00 2001
From: Cheng Shao <terrorjack@type.dance>
Date: Tue, 7 May 2024 20:45:32 +0000
Subject: [PATCH] hadrian: disable in-tree gmp fft code path for wasm32

This patch disables in-tree GMP FFT code paths for wasm32 target in
order to give up some performance of multiplying very large operands
in exchange for reduced code size.

(cherry picked from commit 1a32f82807ae01813f14bdf12fed75eb32799e18)
(cherry picked from commit 097ea6e2f294b64ff21926d265e14dbf9007bb87)
(cherry picked from commit 0dac58e16cd9ea16caf66cb1561ed7b13056aaf6)
---
 hadrian/src/Settings/Builders/Configure.hs | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/hadrian/src/Settings/Builders/Configure.hs b/hadrian/src/Settings/Builders/Configure.hs
index 99c82d6675c..6eb1233f1eb 100644
--- a/hadrian/src/Settings/Builders/Configure.hs
+++ b/hadrian/src/Settings/Builders/Configure.hs
@@ -16,6 +16,10 @@ configureBuilderArgs = do
                 pure $ [ "--enable-shared=no"
                      , "--host=" ++ targetPlatform    -- GMP's host is our target
                      , "--build=" ++ buildPlatform ]
+                     -- Disable FFT logic on wasm32, sacrifice
+                     -- performance of multiplying very large operands
+                     -- to save code size
+                     <> [ "--disable-fft" | targetArch == "wasm32" ]
                      -- Disable GMP's alloca usage on wasm32, it may
                      -- cause stack overflow (#22602) due to the
                      -- rather small 64KB default stack size. See
-- 
GitLab