diff --git a/libraries/base/changelog.md b/libraries/base/changelog.md
index ecfcef3f3a2ecfeb8d359ca77b0ff15e09b3c650..7d6988f91cc8278ef2c69d86328b1e08e7b732fb 100644
--- a/libraries/base/changelog.md
+++ b/libraries/base/changelog.md
@@ -21,6 +21,7 @@
       * `GHC.TypeLits.Internal`
       * `GHC.TypeNats.Internal`
       * `GHC.ExecutionStack.Internal`.
+  * Deprecate `GHC.JS.Prim.Internal.Build`, as per [CLC #329](https://github.com/haskell/core-libraries-committee/issues/329)
 
 ## 4.21.0.0 *TBA*
   * Change `SrcLoc` to be a strict and unboxed (finishing [CLC proposal #55](https://github.com/haskell/core-libraries-committee/issues/55))
diff --git a/libraries/base/src/GHC/JS/Prim/Internal/Build.hs b/libraries/base/src/GHC/JS/Prim/Internal/Build.hs
index f5c274bc147d2d533a7d5b7e1316f14d202143c5..1391cb3cedba7deda8144be77516b4463b6cc201 100644
--- a/libraries/base/src/GHC/JS/Prim/Internal/Build.hs
+++ b/libraries/base/src/GHC/JS/Prim/Internal/Build.hs
@@ -1,12 +1,12 @@
 {-# LANGUAGE CPP #-}
 
+module GHC.JS.Prim.Internal.Build
+  {-# DEPRECATED "Use ghc-internal:GHC.Internal.JS.Prim.Internal.Build instead" #-}
+  -- deprecated for now. To be fully removed in GHC 9.16
+  -- see https://github.com/haskell/core-libraries-committee/issues/329 and #23432
 #if !defined(javascript_HOST_ARCH)
-
-module GHC.JS.Prim.Internal.Build () where
-
+  () where
 #else
-
-module GHC.JS.Prim.Internal.Build
   ( buildArrayI
   , buildArrayM
   , buildObjectI