haskell.compiler: stop reliance on LLVM 6 & 7; haskell.compiler.ghc884: remove at 8.8.4; llvmPackages_7: remove at 7.1.0#268509
Conversation
RaitoBezarius
left a comment
There was a problem hiding this comment.
Looks good to me, thank you.
|
cc @amjoseph-nixpkgs for GHC 8.6.5 changes |
|
Also I'd like someone to look over the alias stuff and suggest something for the release notes. Maybe it's easier to do the LLVM removals separately? |
18f999d to
a357d13
Compare
|
LGTM. Just curious, why are we keeping LLVM 6? |
|
@ofborg build maude, root5 |
6e2aa5d to
c6f2dfd
Compare
|
Can someone test this for maude/root5 on darwin? diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 3ac47ca930d5..550200c6e8fa 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -17733,7 +17733,7 @@ with pkgs;
### End of CuboCore
maude = callPackage ../development/interpreters/maude {
- stdenv = if stdenv.cc.isClang then llvmPackages_7.stdenv else stdenv;
+ stdenv = if stdenv.cc.isClang then llvmPackages_6.stdenv else stdenv;
};
me_cleaner = callPackage ../tools/misc/me_cleaner { };
@@ -40003,7 +40003,7 @@ with pkgs;
root5 = lowPrio (callPackage ../applications/science/misc/root/5.nix {
inherit (darwin.apple_sdk.frameworks) Cocoa OpenGL;
- stdenv = if stdenv.cc.isClang then llvmPackages_7.stdenv else stdenv;
+ stdenv = if stdenv.cc.isClang then llvmPackages_6.stdenv else stdenv;
});
rinetd = callPackage ../servers/rinetd { }; |
7a8a890 to
e6ec784
Compare
|
No objection to root5 change from me. |
I have no objections. The contraption I hacked together to use ancient (gentoo?) powerpc64le binaries to bootstrap ghc just isn't sustainable. We need to invest in being able to cross-compile ghc (i.e. build a |
The main aim of this is to be able to drop llvmPackages_7.
GHC 8.6.5 binary is essentially broken on aarch64-linux, hence the platform has been removed from meta in the past. We can also drop the corresponding src data to lessen confusion.
GHC has a native backend for POWER and SPARC. This is relevant to 8.6.5 binary in the case of POWER where we actually have a bindist and don't need to include LLVM.
We want to remove llvmPackages_6, but it is the only version GHC 8.6.5 supports. Luckily, we actually don't need LLVM in any case, since all X86 architectures have native codegen for Darwin and Linux, as well as POWER for Linux. Consequently, we can just pass `null` and add an extra assert to make this more transparent to future tinkerers.
Previously, maude would force clang 7 to be used when compiling with a stdenv that uses some version of clang. The only such case during native compilation is on Darwin where maude is marked as broken currently. Thus, I'm treating this as dead code and removing the logic, as it hinders our ability to remove llvmPackages_7. This may regress some kind of cross compilation use case, but this can be addressed at some other point if anyone is relying on that at all.
Seems like any clang version > 5 doesn't work. Since root >= 6.0 is available from nixpkgs, I think it is reasonable to mark it as broken for now. Maybe someone can figure out if it is possible to backport a fix from root >= 6.0.
e6ec784 to
8c59811
Compare
|
LLVM 6 remains to be removed, but that requires a bigger effort since a lot of stuff now uses LLVM 6 post LLVM-5-removal. |
Description of changes
cc @RaitoBezarius
Things done
nix.conf? (See Nix manual)sandbox = relaxedsandbox = truenix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage./result/bin/)