diff --git a/changelog.md b/changelog.md
--- a/changelog.md
+++ b/changelog.md
@@ -1,5 +1,10 @@
 # Changelog for [`process` package](http://hackage.haskell.org/package/process)
 
+## 1.6.30.0 *June 2026*
+
+* darwin: Allow posix_spawn_file_actions_addchdir to be missing when
+  linking against process ([#377](https://github.com/haskell/process/pull/377))
+
 ## 1.6.29.0 *May 2026*
 
 * Stub out `runProcess.c` on wasm32 ([#366](https://github.com/haskell/process/pull/366))
diff --git a/process.cabal b/process.cabal
--- a/process.cabal
+++ b/process.cabal
@@ -1,6 +1,6 @@
 cabal-version: 2.4
 name:          process
-version:       1.6.29.0
+version:       1.6.30.0
 -- NOTE: Don't forget to update ./changelog.md
 license:       BSD-3-Clause
 license-file:  LICENSE
@@ -86,6 +86,19 @@
                 cbits/posix/posix_spawn.c
                 cbits/posix/find_executable.c
             other-modules: System.Process.Posix
+
+    -- On macOS, posix_spawn_file_actions_addchdir is available from macOS >= 26.
+    -- We weakly reference this symbol when we are build on such a platform.
+    -- However, weak references on MachO are hints to the dynamic loader, not the
+    -- static linker, which will still expect the symbol to be defined somewhere.
+    -- This means linking fails when we try to link an executable depending on
+    -- process on a toolchain which doesn't have this symbol against a process
+    -- library build on a toolchain with the symbol.
+    -- See https://github.com/haskell/process/issues/376
+    -- Hence: instruct the linker to explicilty allow undefined references to
+    -- the symbol when linking against process on darwin
+    if os(darwin)
+        ld-options: -Wl,-U,_posix_spawn_file_actions_addchdir
 
     include-dirs: include
     install-includes:
