Reconcile the cross / dual-compiler stack onto stable-haskell/master
The fixes the stable-haskell GHC build depends on are scattered across pre- and
post-split feature branches and none are on master. As a result
stable-haskell/ghc#188 has
to pin the pre-split feature/wasm-cross-ghcup-stack, which forces GHC to
revert compiler/Setup.hs + libraries/ghc-boot/Setup.hs to the
pre-VerbosityHandles API and to drop the hooks-exe sub-dir at stage0. This
tracks getting everything onto master so GHC can pin master and drop those
adaptations.
Two generations, split by the Verbosity commit edb808a0b8b
| branch |
Verbosity split |
host-only / stage-qual |
#361 tool-guess |
#368 rpath |
self-$ORIGIN |
master (01d053ac) |
✅ |
(stage-qual code present) |
❌ |
❌ |
❌ |
feature/cross-compile, wip/andrea/stage-qualified-options |
✅ |
✅ (#378) |
❌ |
❌ |
❌ |
feature/wasm-cross-ghcup-stack (GHC's current pin) |
❌ |
✅ |
✅ |
✅ |
✅ |
The pin line and the post-split line share no recent ancestor; the integrated,
working stack is on the old line, while the modern API is on master.
Reconciliation — converge on master via the stage-qualified line
Downstream once the above are on master
In stable-haskell/ghc:
The self-$ORIGIN rpath fix (#385) also removes glibc's reliance on the runtime
LD_LIBRARY_PATH crutch, so it's a genuine improvement, not only a musl
workaround (root cause of backpack/cabal/T14304 failing on Alpine/musl).
Reconcile the cross / dual-compiler stack onto
stable-haskell/masterThe fixes the stable-haskell GHC build depends on are scattered across pre- and
post-split feature branches and none are on
master. As a resultstable-haskell/ghc#188 hasto pin the pre-split
feature/wasm-cross-ghcup-stack, which forces GHC torevert
compiler/Setup.hs+libraries/ghc-boot/Setup.hsto thepre-
VerbosityHandlesAPI and to drop thehooks-exesub-dir at stage0. Thistracks getting everything onto
masterso GHC can pinmasterand drop thoseadaptations.
Two generations, split by the Verbosity commit
edb808a0b8b$ORIGINmaster(01d053ac)feature/cross-compile,wip/andrea/stage-qualified-optionsfeature/wasm-cross-ghcup-stack(GHC's current pin)The pin line and the post-split line share no recent ancestor; the integrated,
working stack is on the old line, while the modern API is on
master.Reconciliation — converge on
mastervia the stage-qualified linewip/andrea/stage-qualified-options→master(open, WIP) — thestage-qualified / host-only
package *handling. The integration trunk;everything else stacks on or lands beside it.
$ORIGIN— stacked on cabal-install: stage-qualified package configuration (package build:*) #378(draft). Supersedes GHC/Build/Link: relativize absolute rpaths when --enable-relocatable #368 (
feat/rpath-relativize-absolute, strandedagainst the pre-split
feature/rebase-CI) and the master-targeting GHC/Build/Link: relativize absolute rpaths + self-$ORIGIN (forward-port onto master) #383(closed). De-risked: cherry-picks onto the post-split line with no
conflicts; only needs a build to confirm it typechecks against the
post-split
LocalBuildInfo/InstallDirsAPI. Rides ontomasterwhencabal-install: stage-qualified package configuration (package build:*) #378 lands.
fix/target-prefix-aware-tool-guess→master(open) — crossghc-pkgguess (independent; GHC.hs).fix/ghcjs-and-bindirectory-removal→master(open).Downstream once the above are on
masterIn
stable-haskell/ghc:cabal.project.stage{0,1,2.common,3}fromfeature/wasm-cross-ghcup-stacktomaster.Setup.hsVerbosity revert (restore the#if MIN_VERSION_Cabal(3,17,0)form —masterhasVerbosityHandlesagain).hooks-exesub-dir at stage0.The self-
$ORIGINrpath fix (#385) also removes glibc's reliance on the runtimeLD_LIBRARY_PATHcrutch, so it's a genuine improvement, not only a muslworkaround (root cause of
backpack/cabal/T14304failing on Alpine/musl).