haskell.compiler.ghc91{0,2}: provide LLVM compatible assembler#440761
haskell.compiler.ghc91{0,2}: provide LLVM compatible assembler#440761sternenseemann merged 3 commits intoNixOS:masterfrom
Conversation
emilazy
left a comment
There was a problem hiding this comment.
Looks correct to me. Haven’t tested, but it can’t make anything worse for Hydra‐supported platforms and is already broken for LLVM‐using ones, so it seems harmless to land preemptively.
It‘d be nice to land this on master, as it will make it easier to test #440774 with these versions. (Unless we’re sending that one to haskell-updates too.)
|
Yeah, I'll rebase it tomorrow. |
622266d to
2cfe273
Compare
|
Rebased on |
|
Now conflicted with 8.10.7.nix. |
2cfe273 to
7ae10b0
Compare
😢 Rebased. |
|
I guess |
emilazy
left a comment
There was a problem hiding this comment.
Still haven’t tested, but looks sensible.
|
Hmm, actually, |
This feature is mostly for convenience downstream and appears not to be used in Nixpkgs at all. In light of this, I've added a test in #441471. |
Verified that there are no hash changes (eval platform x86_64-linux) in: - haskell.compiler - pkgsCross.armv7l-hf-multiplatform.haskell.compiler - pkgsCross.armv7l-hf-multiplatform.buildPackages.haskell.compiler
If we don't explicitly pass something as LLVMAS, GHC >= 9.10 will try to invoke "clang" at runtime which fails. Upstream change: https://gitlab.haskell.org/ghc/ghc/-/merge_requests/12005 I've tested pkgsCross.armv7l-hf-multiplatform.buildPackages.haskell.compiler.ghc9102 which was reported to be failing here: NixOS#440271 (comment)
eaced9c to
f7a9032
Compare
- The LLVM backend always needs an LLVM specific assembler, i.e. clang that ideally matches the version of LLVM actually used for codegen. - The LLVM backend on Darwin requires some version of clang to be available. In light of LLVMAS, using a matching version seems to be best though this does risk messing with clang used for compiling C in the derivation. This mess can be avoided by compiling GHC with useLLVM = true which sets absolute paths in GHC's settings file. Due to closure size constraints, we can't really do that if NCG is available.
f7a9032 to
a2b6624
Compare
|
Rebased and tested
Does anyone want to take another look? |
Verified that there are no hash changes (eval platform x86_64-linux) due to
getToolExein:Tested
pkgsCross.armv7l-hf-multiplatform.buildPackages.haskell.compiler.ghc9102withLLVMAS.Things done
passthru.tests.nixpkgs-reviewon this PR. See nixpkgs-review usage../result/bin/.Add a 👍 reaction to pull requests you find important.