From 08129b69e52e609ebee3c5985859f7a141da831d Mon Sep 17 00:00:00 2001 From: Emily Date: Sun, 7 Sep 2025 01:08:57 +0100 Subject: [PATCH] haskell.compiler.ghc{928,963,967,9101,9102,HEAD}: drop AArch32 bootstrap MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It’s questionable whether or not this worked – 32‐bit ARM in Nixpkgs is already flaky even when cross‐compiling, and I find it dubious whether much 32‐bit ARM hardware can build modern GHCs in a bearable amount of time and memory – and figuring out cross‐compilation of bootstrap GHCs will be a more sustainable way to keep it working if anyone cares enough to. Also, rearrange the GHC‐related release notes to be in order of most likely to matter to anyone. --- doc/release-notes/rl-2511.section.md | 8 +++++--- pkgs/top-level/haskell-packages.nix | 29 ++++++---------------------- 2 files changed, 11 insertions(+), 26 deletions(-) diff --git a/doc/release-notes/rl-2511.section.md b/doc/release-notes/rl-2511.section.md index b072c4e574cd..39f472b67463 100644 --- a/doc/release-notes/rl-2511.section.md +++ b/doc/release-notes/rl-2511.section.md @@ -24,11 +24,13 @@ - GCC 9, 10, 11, and 12 have been removed, as they have reached end‐of‐life upstream and are no longer supported. -- GHC 8.6 and its package set have been removed. It was only used to bootstrap GHC for powerpc64le, but this was probably broken anyway. - - GHCJS 8.10, exposed via `haskell.compiler.ghcjs` and `haskell.compiler.ghcjs810`, has been removed. Downstream users should migrate their projects to the new JavaScript backend of GHC proper which can be used via `pkgsCross.ghcjs` from Nixpkgs. Haskell packaging code, like `haskellPackages.mkDerivation`, `ghcWithPackages` and `hoogleWithPackages`, also no longer supports GHCJS. -- GHC 9.0 and its package set have been removed. +- GHC 8.6, 9.0, and their package sets have been removed. + +- Support for bootstrapping native GHC compilers on 32‐bit ARM and little‐endian 64‐bit PowerPC has been dropped. + The latter was probably broken anyway. + If there is interest in restoring support for these architectures, it should be possible to cross‐compile a bootstrap GHC binary. - `base16-builder` node package has been removed due to lack of upstream maintenance. diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix index dfc66e68bef6..4539a9cbe623 100644 --- a/pkgs/top-level/haskell-packages.nix +++ b/pkgs/top-level/haskell-packages.nix @@ -111,9 +111,7 @@ in }; ghc810 = compiler.ghc8107; ghc928 = callPackage ../development/compilers/ghc/9.2.8.nix { - bootPkgs = - # GHC >= 9.0 removed the armv7l bindist - if stdenv.buildPlatform.isAarch32 then bb.packages.ghc8107Binary else bb.packages.ghc902Binary; + bootPkgs = bb.packages.ghc902Binary; inherit (buildPackages.python311Packages) sphinx; # a distutils issue with 3.12 python3 = buildPackages.python311; # so that we don't have two of them # Need to use apple's patched xattr until @@ -140,9 +138,7 @@ in }; ghc94 = compiler.ghc948; ghc963 = callPackage ../development/compilers/ghc/9.6.3.nix { - bootPkgs = - # For GHC 9.2 no armv7l bindists are available. - if stdenv.buildPlatform.isAarch32 then bb.packages.ghc928 else bb.packages.ghc924Binary; + bootPkgs = bb.packages.ghc924Binary; inherit (buildPackages.python3Packages) sphinx; # Need to use apple's patched xattr until # https://github.com/xattr/xattr/issues/44 and @@ -153,9 +149,7 @@ in llvmPackages = pkgs.llvmPackages_15; }; ghc967 = callPackage ../development/compilers/ghc/9.6.7.nix { - bootPkgs = - # For GHC 9.2 no armv7l bindists are available. - if stdenv.buildPlatform.isAarch32 then bb.packages.ghc928 else bb.packages.ghc924Binary; + bootPkgs = bb.packages.ghc924Binary; inherit (buildPackages.python3Packages) sphinx; # Need to use apple's patched xattr until # https://github.com/xattr/xattr/issues/44 and @@ -170,9 +164,6 @@ in bootPkgs = if stdenv.buildPlatform.isAarch64 && stdenv.buildPlatform.isMusl then bb.packages.ghc984Binary - else if stdenv.buildPlatform.isAarch32 then - # For GHC 9.6 no armv7l bindists are available. - bb.packages.ghc963 else bb.packages.ghc963Binary; inherit (buildPackages.python3Packages) sphinx; @@ -187,10 +178,7 @@ in ghc98 = compiler.ghc984; ghc9101 = callPackage ../development/compilers/ghc/9.10.1.nix { bootPkgs = - # For GHC 9.6 no armv7l bindists are available. - if stdenv.buildPlatform.isAarch32 then - bb.packages.ghc963 - else if stdenv.buildPlatform.isDarwin then + if stdenv.buildPlatform.isDarwin then # it seems like the GHC 9.6.* bindists are built with a different # toolchain than we are using (which I'm guessing from the fact # that 9.6.4 bindists pass linker flags our ld doesn't support). @@ -210,10 +198,7 @@ in }; ghc9102 = callPackage ../development/compilers/ghc/9.10.2.nix { bootPkgs = - # For GHC 9.6 no armv7l bindists are available. - if stdenv.buildPlatform.isAarch32 then - bb.packages.ghc963 - else if stdenv.buildPlatform.isDarwin then + if stdenv.buildPlatform.isDarwin then # it seems like the GHC 9.6.* bindists are built with a different # toolchain than we are using (which I'm guessing from the fact # that 9.6.4 bindists pass linker flags our ld doesn't support). @@ -260,9 +245,7 @@ in }; ghc912 = compiler.ghc9122; ghcHEAD = callPackage ../development/compilers/ghc/head.nix { - bootPkgs = - # No armv7l bindists are available. - if stdenv.buildPlatform.isAarch32 then bb.packages.ghc984 else bb.packages.ghc984Binary; + bootPkgs = bb.packages.ghc984Binary; inherit (buildPackages.python3Packages) sphinx; # Need to use apple's patched xattr until # https://github.com/xattr/xattr/issues/44 and