From a657338411a0eb8d6862f1cebbab4f40d3ac52d7 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)
---
 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