From 77e915007734bc83ae73a554ddfe445291ed78fc Mon Sep 17 00:00:00 2001
From: Cheng Shao <terrorjack@type.dance>
Date: Tue, 30 Jan 2024 07:44:47 +0000
Subject: [PATCH] hadrian: distribute jsbits needed for wasm backend's JSFFI
 support

The post-linker.mjs/prelude.js files are now distributed in the
bindist libdir, so when using the wasm backend's JSFFI feature, the
user wouldn't need to fetch them from a ghc checkout manually.
---
 hadrian/src/Base.hs           | 2 ++
 hadrian/src/Rules/Generate.hs | 3 +++
 2 files changed, 5 insertions(+)

diff --git a/hadrian/src/Base.hs b/hadrian/src/Base.hs
index 9000c1144265..b12b717f66ed 100644
--- a/hadrian/src/Base.hs
+++ b/hadrian/src/Base.hs
@@ -153,6 +153,8 @@ ghcLibDeps stage iplace = do
         , "settings"
         , "ghc-usage.txt"
         , "ghci-usage.txt"
+        , "post-link.mjs"
+        , "prelude.js"
         ]
     cxxStdLib <- systemCxxStdLibConfPath (PackageDbLoc stage iplace)
     return (cxxStdLib : ps)
diff --git a/hadrian/src/Rules/Generate.hs b/hadrian/src/Rules/Generate.hs
index 9dc13332f3ca..7bc7b82c54b6 100644
--- a/hadrian/src/Rules/Generate.hs
+++ b/hadrian/src/Rules/Generate.hs
@@ -211,6 +211,9 @@ copyRules = do
         prefix -/- "ghc-interp.js"     <~ return "."
         prefix -/- "template-hsc.h" <~ return (pkgPath hsc2hs -/- "data")
 
+        prefix -/- "post-link.mjs"     <~ pure "utils/jsffi"
+        prefix -/- "prelude.js"        <~ pure "utils/jsffi"
+
         prefix -/- "html/**"           <~ return "utils/haddock/haddock-api/resources"
         prefix -/- "latex/**"          <~ return "utils/haddock/haddock-api/resources"
 
-- 
GitLab