about summary refs log tree commit diff
path: root/pkgs/top-level/haskell-packages.nix
diff options
context:
space:
mode:
authorPavol Rusnak <pavol@rusnak.io>2021-08-23 17:21:32 +0200
committerPavol Rusnak <pavol@rusnak.io>2021-08-24 18:49:25 +0200
commit02c5e5173f459fcbccc5e06a33761ee94ebfec25 (patch)
tree319ade68c54727cb5fffa0aaaebe6a7c279cf23d /pkgs/top-level/haskell-packages.nix
parentba2e930fcb51c58d8f7c2344817b458ac074fdf2 (diff)
haskellPackages: introduce ghc8105Binary to enable aarch64-darwin bootstrap
Diffstat (limited to 'pkgs/top-level/haskell-packages.nix')
-rw-r--r--pkgs/top-level/haskell-packages.nix48
1 files changed, 40 insertions, 8 deletions
diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix
index d60c20f38e0d2..4ef012b9b4f52 100644
--- a/pkgs/top-level/haskell-packages.nix
+++ b/pkgs/top-level/haskell-packages.nix
@@ -6,6 +6,8 @@ let
     "ghc865Binary"
     "ghc8102Binary"
     "ghc8102BinaryMinimal"
+    "ghc8105Binary"
+    "ghc8105BinaryMinimal"
     "integer-simple"
     "native-bignum"
     "ghcHEAD"
@@ -57,10 +59,22 @@ in {
       minimal = true;
     };
 
+    ghc8105Binary = callPackage ../development/compilers/ghc/8.10.5-binary.nix {
+      llvmPackages = pkgs.llvmPackages_11;
+    };
+
+    ghc8105BinaryMinimal = callPackage ../development/compilers/ghc/8.10.5-binary.nix {
+      llvmPackages = pkgs.llvmPackages_11;
+      minimal = true;
+    };
+
     ghc884 = callPackage ../development/compilers/ghc/8.8.4.nix {
-      # aarch64 ghc865Binary gets SEGVs due to haskell#15449 or similar
-      # Musl bindists do not exist for ghc 8.6.5, so we use 8.10.* for them
-      bootPkgs = if stdenv.isAarch64 || stdenv.targetPlatform.isMusl then
+      # the oldest ghc with aarch64-darwin support is 8.10.5
+      bootPkgs = if stdenv.isDarwin && stdenv.isAarch64 then
+          packages.ghc8105BinaryMinimal
+        # aarch64 ghc865Binary gets SEGVs due to haskell#15449 or similar
+        # Musl bindists do not exist for ghc 8.6.5, so we use 8.10.* for them
+        else if stdenv.isAarch64 || stdenv.targetPlatform.isMusl then
           packages.ghc8102BinaryMinimal
         else
           packages.ghc865Binary;
@@ -69,9 +83,12 @@ in {
       llvmPackages = pkgs.llvmPackages_7;
     };
     ghc8106 = callPackage ../development/compilers/ghc/8.10.6.nix {
-      # aarch64 ghc865Binary gets SEGVs due to haskell#15449 or similar
-      # Musl bindists do not exist for ghc 8.6.5, so we use 8.10.* for them
-      bootPkgs = if stdenv.isAarch64 || stdenv.isAarch32 || stdenv.targetPlatform.isMusl then
+      # the oldest ghc with aarch64-darwin support is 8.10.5
+      bootPkgs = if stdenv.isDarwin && stdenv.isAarch64 then
+          packages.ghc8105BinaryMinimal
+        # aarch64 ghc865Binary gets SEGVs due to haskell#15449 or similar
+        # Musl bindists do not exist for ghc 8.6.5, so we use 8.10.* for them
+        else if stdenv.isAarch64 || stdenv.isAarch32 || stdenv.targetPlatform.isMusl then
           packages.ghc8102BinaryMinimal
         else
           packages.ghc865Binary;
@@ -84,8 +101,11 @@ in {
       llvmPackages = pkgs.llvmPackages_9;
     };
     ghc901 = callPackage ../development/compilers/ghc/9.0.1.nix {
-      # aarch64 ghc8102Binary exceeds max output size on hydra
-      bootPkgs = if stdenv.isAarch64 || stdenv.isAarch32 then
+      # the oldest ghc with aarch64-darwin support is 8.10.5
+      bootPkgs = if stdenv.isDarwin && stdenv.isAarch64 then
+          packages.ghc8105BinaryMinimal
+        # aarch64 ghc8102Binary exceeds max output size on hydra
+        else if stdenv.isAarch64 || stdenv.isAarch32 then
           packages.ghc8102BinaryMinimal
         else
           packages.ghc8102Binary;
@@ -146,6 +166,18 @@ in {
       compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.10.x.nix { };
       packageSetConfig = bootstrapPackageSet;
     };
+    ghc8105Binary = callPackage ../development/haskell-modules {
+      buildHaskellPackages = bh.packages.ghc8105Binary;
+      ghc = bh.compiler.ghc8105Binary;
+      compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.10.x.nix { };
+      packageSetConfig = bootstrapPackageSet;
+    };
+    ghc8105BinaryMinimal = callPackage ../development/haskell-modules {
+      buildHaskellPackages = bh.packages.ghc8105BinaryMinimal;
+      ghc = bh.compiler.ghc8105BinaryMinimal;
+      compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.10.x.nix { };
+      packageSetConfig = bootstrapPackageSet;
+    };
     ghc884 = callPackage ../development/haskell-modules {
       buildHaskellPackages = bh.packages.ghc884;
       ghc = bh.compiler.ghc884;