Skip to content

Commit 263a010

Browse files
committed
Add ghc96X
1 parent f672205 commit 263a010

File tree

6 files changed

+85
-18
lines changed

6 files changed

+85
-18
lines changed

ci.nix

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,8 @@
6363
ghc910 = true;
6464
ghc9121 = true;
6565
} // nixpkgs.lib.optionalAttrs (nixpkgsName == "unstable") {
66-
ghc96 = true;
66+
ghc96 = false;
67+
ghc96X = true;
6768
ghc98 = true;
6869
ghc98llvm = false;
6970
ghc910 = true;

lazy-inputs/default.nix

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ in {
2929
inherit ((callFlake { pkgs = final; src = ./ghc964; }).defaultNix) ghc964;
3030
inherit ((callFlake { pkgs = final; src = ./ghc965; }).defaultNix) ghc965;
3131
inherit ((callFlake { pkgs = final; src = ./ghc966; }).defaultNix) ghc966;
32+
inherit ((callFlake { pkgs = final; src = ./ghc96X; }).defaultNix) ghc96X;
3233
inherit ((callFlake { pkgs = final; src = ./ghc981; }).defaultNix) ghc981;
3334
inherit ((callFlake { pkgs = final; src = ./ghc982; }).defaultNix) ghc982;
3435
inherit ((callFlake { pkgs = final; src = ./ghc983; }).defaultNix) ghc983;

lazy-inputs/ghc912X/flake.lock

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lazy-inputs/ghc96X/flake.lock

Lines changed: 30 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lazy-inputs/ghc96X/flake.nix

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
{
2+
description = "Lazy Input for Haskell.nix";
3+
4+
inputs = {
5+
ghc96X = {
6+
flake = false;
7+
url = "git+https://gitlab.haskell.org/ghc/ghc?ref=ghc-9.6&submodules=1";
8+
};
9+
};
10+
11+
outputs = inputs: inputs;
12+
}

overlays/bootstrap.nix

Lines changed: 36 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ let
1414
"9.12" = "9.12.1";
1515
};
1616
gitInputs = {
17+
ghc96X = "9.6.7";
1718
ghc912X = "9.12.1";
1819
ghc913 = "9.13";
1920
};
@@ -168,8 +169,9 @@ in {
168169
++ onWindows (fromUntil "9.0" "9.4" ./patches/ghc/ghc-9.0-windres-invocation.patch)
169170
++ onWindows (from "9.12" ./patches/ghc/ghc-9.12-windows-rts-symbols.patch)
170171
++ fromUntil "9.4.5" "9.4.9" ./patches/ghc/ghc-9.4.5-include-order-fix.patch
171-
++ fromUntil "9.6.2" "9.8" ./patches/ghc/ghc-9.4.5-include-order-fix.patch
172-
++ fromUntil "9.6.1" "9.9.20231203" ./patches/ghc/MR10116.patch
172+
++ fromUntil "9.6.2" "9.6.7" ./patches/ghc/ghc-9.4.5-include-order-fix.patch
173+
++ fromUntil "9.6.1" "9.6.7" ./patches/ghc/MR10116.patch
174+
++ fromUntil "9.8.1" "9.9.20231203" ./patches/ghc/MR10116.patch
173175
++ onNative (fromUntil "9.4.1" "9.6" ./patches/ghc/hadrian-build-deriveConstants-genprimopcode-ghc94.patch)
174176
++ onNative (fromUntil "9.6.1" "9.14" ./patches/ghc/hadrian-build-deriveConstants-genprimopcode.patch)
175177
++ onGhcjs (fromUntil "9.6.1" "9.6.3" ./patches/ghc/ghc-9.6-Merge-libiserv-with-ghci.patch)
@@ -199,7 +201,8 @@ in {
199201
++ onAarch64 (until "9.0" ./patches/ghc/ghc-8.10-aarch64-handle-none-rela.patch)
200202
++ onWindows (until "9.0" ./patches/ghc/5b08e0c06e038448a63aa9bd7f163b23d824ba4b.patch)
201203
++ onAarch64 (fromUntil "9.0" "9.11" ./patches/ghc/ghc-9.0-better-symbol-addr-debug.patch)
202-
++ onAarch64 (fromUntil "9.0" "9.8.3" ./patches/ghc/ghc-9.0-aarch64-handle-none-rela.patch)
204+
++ onAarch64 (fromUntil "9.0" "9.6.7" ./patches/ghc/ghc-9.0-aarch64-handle-none-rela.patch)
205+
++ onAarch64 (fromUntil "9.8" "9.8.3" ./patches/ghc/ghc-9.0-aarch64-handle-none-rela.patch)
203206
++ onAarch64 (fromUntil "9.10" "9.11" ./patches/ghc/ghc-9.0-aarch64-handle-none-rela.patch)
204207

205208
++ onWindows (fromUntil "9.6.3" "9.6.4" ./patches/ghc/ghc-9.6-hadrian-splitsections.patch)
@@ -258,27 +261,33 @@ in {
258261
&& final.stdenv.targetPlatform.is32bit
259262
|| final.stdenv.targetPlatform.isMusl)
260263
(until "9.11" ./patches/ghc/ghc-9.6-missing-symbols-deadbeef.patch)
261-
++ onAarch64Musl (fromUntil "9.6" "9.8.3" ./patches/ghc/ghc-9.6-linker-pool-allocator.patch)
264+
++ onAarch64Musl (fromUntil "9.6" "9.6.7" ./patches/ghc/ghc-9.6-linker-pool-allocator.patch)
265+
++ onAarch64Musl (fromUntil "9.8" "9.8.3" ./patches/ghc/ghc-9.6-linker-pool-allocator.patch)
262266
++ onAarch64Musl (fromUntil "9.10" "9.11" ./patches/ghc/ghc-9.6-linker-pool-allocator.patch)
263-
++ onAarch64Musl (fromUntil "9.6" "9.8.3" ./patches/ghc/ghc-9.6-linker-pool-allocator-2.patch)
267+
++ onAarch64Musl (fromUntil "9.6" "9.6.7" ./patches/ghc/ghc-9.6-linker-pool-allocator-2.patch)
268+
++ onAarch64Musl (fromUntil "9.8" "9.8.3" ./patches/ghc/ghc-9.6-linker-pool-allocator-2.patch)
264269
++ onAarch64Musl (fromUntil "9.10" "9.11" ./patches/ghc/ghc-9.6-linker-pool-allocator-2.patch)
265270

266271
++ onMusl (fromUntil "9.6" "9.8" ./patches/ghc/ghc-9.6-0001-Refactor-IServ.hs.patch)
267-
++ onMusl (fromUntil "9.6" "9.8.3" ./patches/ghc/ghc-9.6-0002-Drop-spurious-8-byte-offset-from-elf_plt.patch)
272+
++ onMusl (fromUntil "9.6" "9.6.7" ./patches/ghc/ghc-9.6-0002-Drop-spurious-8-byte-offset-from-elf_plt.patch)
273+
++ onMusl (fromUntil "9.8" "9.8.3" ./patches/ghc/ghc-9.6-0002-Drop-spurious-8-byte-offset-from-elf_plt.patch)
268274
++ onMusl (fromUntil "9.10" "9.11" ./patches/ghc/ghc-9.6-0002-Drop-spurious-8-byte-offset-from-elf_plt.patch)
269-
++ onAarch64Musl (fromUntil "9.6" "9.8.3" ./patches/ghc/ghc-9.6-0003-Better-pool-alignment.-We-still-hardcode-section-ali.patch)
275+
++ onAarch64Musl (fromUntil "9.6" "9.6.7" ./patches/ghc/ghc-9.6-0003-Better-pool-alignment.-We-still-hardcode-section-ali.patch)
276+
++ onAarch64Musl (fromUntil "9.8" "9.8.3" ./patches/ghc/ghc-9.6-0003-Better-pool-alignment.-We-still-hardcode-section-ali.patch)
270277
++ onAarch64Musl (fromUntil "9.10" "9.11" ./patches/ghc/ghc-9.6-0003-Better-pool-alignment.-We-still-hardcode-section-ali.patch)
271-
++ onAarch64Musl (fromUntil "9.6" "9.8.3" ./patches/ghc/ghc-9.6-0007-fixup-Better-pool-alignment.-We-still-hardcode-secti.patch)
278+
++ onAarch64Musl (fromUntil "9.6" "9.6.7" ./patches/ghc/ghc-9.6-0007-fixup-Better-pool-alignment.-We-still-hardcode-secti.patch)
279+
++ onAarch64Musl (fromUntil "9.8" "9.8.3" ./patches/ghc/ghc-9.6-0007-fixup-Better-pool-alignment.-We-still-hardcode-secti.patch)
272280
++ onAarch64Musl (fromUntil "9.10" "9.11" ./patches/ghc/ghc-9.6-0007-fixup-Better-pool-alignment.-We-still-hardcode-secti.patch)
273-
++ onAarch64Musl (fromUntil "9.6" "9.8.3" ./patches/ghc/ghc-9.6-0008-pool-improvements.patch)
281+
++ onAarch64Musl (fromUntil "9.6" "9.6.7" ./patches/ghc/ghc-9.6-0008-pool-improvements.patch)
282+
++ onAarch64Musl (fromUntil "9.8" "9.8.3" ./patches/ghc/ghc-9.6-0008-pool-improvements.patch)
274283
++ onAarch64Musl (fromUntil "9.10" "9.11" ./patches/ghc/ghc-9.6-0008-pool-improvements.patch)
275284
# these two are abit questionable. They are pretty rough, and assume static binary as well as posix.
276285
# onMusl (fromUntil "9.6" "9.11" ./patches/ghc/ghc-9.6-0004-ghcidladdr.patch)
277286
# onMusl (fromUntil "9.6" "9.11" ./patches/ghc/ghc-9.6-0005-Better-interpreter-debugging.-Needs-ghcidladdr.patch)
278287

279288
# Fix docs/users_guide/rtd-theme/layout.html to work with sphinx 7
280-
++ fromUntil "9.0" "9.8" ./patches/ghc/docs-sphinx-7.patch
281-
++ fromUntil "9.8" "9.9" ./patches/ghc/docs-sphinx-7-ghc98.patch
289+
++ fromUntil "9.0" "9.6.7" ./patches/ghc/docs-sphinx-7.patch
290+
++ fromUntil "9.6.7" "9.9" ./patches/ghc/docs-sphinx-7-ghc98.patch
282291

283292
# These two patches are needed for libblst, which has now hidden symbols, which the linker doesn't know how to deal with.
284293
++ (
@@ -997,7 +1006,7 @@ in {
9971006
compiler-nix-name = versionToNixName version;
9981007
in {
9991008
name = compiler-nix-name;
1000-
value = final.callPackage ../compiler/ghc {
1009+
value = final.callPackage ../compiler/ghc ({
10011010
extra-passthru = { buildGHC = final.buildPackages.haskell-nix.compiler.${compiler-nix-name}; };
10021011

10031012
bootPkgs = bootPkgsGhc94 // {
@@ -1030,7 +1039,21 @@ in {
10301039
ghc-patches = ghc-patches version;
10311040
ghc-version-date = version-date;
10321041
ghc-commit-id = src.rev;
1033-
};
1042+
} // final.lib.optionalAttrs (builtins.compareVersions version "9.7" <0) {
1043+
bootPkgs = bootPkgsGhc94 // {
1044+
ghc = if final.stdenv.buildPlatform != final.stdenv.targetPlatform
1045+
then final.buildPackages.buildPackages.haskell-nix.compiler.ghc966
1046+
else final.buildPackages.buildPackages.haskell.compiler.ghc966
1047+
or final.buildPackages.buildPackages.haskell.compiler.ghc965
1048+
or final.buildPackages.buildPackages.haskell.compiler.ghc964
1049+
or final.buildPackages.buildPackages.haskell.compiler.ghc963
1050+
or final.buildPackages.buildPackages.haskell.compiler.ghc962
1051+
or final.buildPackages.buildPackages.haskell.compiler.ghc945
1052+
or final.buildPackages.buildPackages.haskell.compiler.ghc944;
1053+
};
1054+
buildLlvmPackages = final.buildPackages.llvmPackages_12;
1055+
llvmPackages = final.llvmPackages_12;
1056+
});
10341057
}) gitInputs))
10351058
// final.lib.optionalAttrs (final.stdenv.targetPlatform.isGhcjs or false) (
10361059
if final.stdenv.hostPlatform.isGhcjs

0 commit comments

Comments
 (0)