Skip to content

Commit 5ad8a6a

Browse files
committed
correct stdenv replacement for ghc build.
1 parent da237f3 commit 5ad8a6a

File tree

1 file changed

+33
-4
lines changed

1 file changed

+33
-4
lines changed

flake.nix

Lines changed: 33 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -140,12 +140,31 @@
140140
overlayGHC = final: prev: {
141141
haskellPackages = let ps = prev.haskell.packages.${ghcVer};
142142
in if useClang then
143-
ps.override {
143+
let
144+
newLlvmPackages = if ghcVer == "ghc901" then
145+
prev.llvmPackages_9
146+
else
147+
prev.llvmPackages_12;
148+
newStdenv = newLlvmPackages.stdenv;
149+
in ps.override {
144150
ghc =
145-
final.buildPackages.haskell.compiler.${ghcVer}.override {
151+
prev.buildPackages.haskell.compiler.${ghcVer}.override {
146152
useLLVM = true;
153+
llvmPackages = newLlvmPackages;
154+
targetPackages = prev.targetPackages.extend
155+
(self: super: { stdenv = newStdenv; });
156+
pkgsHostTarget = prev.pkgsHostTarget.extend
157+
(self: super: {
158+
targetPackages = super.targetPackages.extend
159+
(sself: super: { stdenv = newStdenv; });
160+
});
161+
pkgsBuildTarget = prev.pkgsBuildTarget.extend
162+
(self: super: {
163+
targetPackages = super.targetPackages.extend
164+
(sself: super: { stdenv = newStdenv; });
165+
});
147166
};
148-
stdenv = prev.clangStdenv;
167+
stdenv = newStdenv;
149168
}
150169
else
151170
ps;
@@ -177,10 +196,20 @@
177196
mkUserShell = { ghcVer, useClang ? false }:
178197
let
179198
pkgs = mkPkgs { inherit ghcVer useClang; };
199+
newStdenv = if useClang then
200+
let
201+
newLlvmPackages = if ghcVer == "ghc901" then
202+
pkgs.llvmPackages_9
203+
else
204+
pkgs.llvmPackages_12;
205+
in newLlvmPackages.stdenv
206+
else
207+
pkgs.stdenv;
208+
180209
hsenv = pkgs.haskellPackages.ghcWithPackages
181210
(ps: builtins.map (name: ps.${name}) categorifierCPackageNames);
182211
mkShell_ = if useClang then
183-
pkgs.mkShell.override { stdenv = pkgs.clangStdenv; }
212+
pkgs.mkShell.override { stdenv = newStdenv; }
184213
else
185214
pkgs.mkShell;
186215
in mkShell_ {

0 commit comments

Comments
 (0)