ghc: Use --hash-unit-ids when supported

The compilers produced by nixpkgs don't use the detailed ABI hash.

("Project Unit Id","ghc-9.10.1-inplace")

which should rather be

("Project Unit Id","ghc-9.10.1-<HASH>"))

This flag is supported on ghc-9.8 and upwards.

From 9.14, this behaviour will be enabled by default.

https://gitlab.haskell.org/ghc/ghc/-/merge_requests/13444

Co-authored-by: sternenseemann <sternenseemann@systemli.org>
This commit is contained in:
Matthew Pickering
2025-04-10 12:59:47 +02:00
committed by sternenseemann
co-authored by sternenseemann
parent d98f85d475
commit ff96d81522
@@ -660,11 +660,17 @@ stdenv.mkDerivation (
depsTargetTarget = map lib.getDev (libDeps targetPlatform);
depsTargetTargetPropagated = map (lib.getOutput "out") (libDeps targetPlatform);
hadrianFlags = [
"--flavour=${ghcFlavour}"
"--bignum=${if enableNativeBignum then "native" else "gmp"}"
"--docs=${if enableDocs then "no-sphinx-pdfs" else "no-sphinx"}"
];
hadrianFlags =
[
"--flavour=${ghcFlavour}"
"--bignum=${if enableNativeBignum then "native" else "gmp"}"
"--docs=${if enableDocs then "no-sphinx-pdfs" else "no-sphinx"}"
]
++ lib.optionals (lib.versionAtLeast version "9.8") [
# In 9.14 this will be default with release flavour.
# See https://gitlab.haskell.org/ghc/ghc/-/merge_requests/13444
"--hash-unit-ids"
];
buildPhase = ''
runHook preBuild