Skip to content

Commit d4fc5c8

Browse files
committed
Patch Cabal to deduplicate arguments to hsc2hs, which otherwise grow above 512K and break GCC
1 parent bfc2073 commit d4fc5c8

File tree

2 files changed

+16
-1
lines changed

2 files changed

+16
-1
lines changed

cabal-hsc2hs-args-patch.diff

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
diff --git a/Cabal/src/Distribution/Simple/PreProcess.hs b/Cabal/src/Distribution/Simple/PreProcess.hs
2+
index d47dd8035..da158a5a3 100644
3+
--- a/src/Distribution/Simple/PreProcess.hs
4+
+++ b/src/Distribution/Simple/PreProcess.hs
5+
@@ -464,7 +464,7 @@ ppHsc2hs bi lbi clbi =
6+
-- Returns a list of command line arguments that can either be passed
7+
-- directly, or via a response file.
8+
genPureArgs :: Version -> ConfiguredProgram -> String -> String -> [String]
9+
- genPureArgs hsc2hsVersion gccProg inFile outFile =
10+
+ genPureArgs hsc2hsVersion gccProg inFile outFile = ordNub $
11+
-- Additional gcc options
12+
[ "--cflag=" ++ opt | opt <- programDefaultArgs gccProg
13+
++ programOverrideArgs gccProg ]

flake.nix

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,9 @@
5656

5757
cabal-install = hsPkgs.callCabal2nix "cabal-install" "${inputs.cabal}/cabal-install" { inherit (final) Cabal cabal-install-solver hackage-security; };
5858
cabal-install-solver = hsPkgs.callCabal2nix "cabal-install-solver" "${inputs.cabal}/cabal-install-solver" { inherit (final) Cabal; };
59-
Cabal = hsPkgs.callCabal2nix "Cabal" "${inputs.cabal}/Cabal" { inherit (final) Cabal-syntax; };
59+
Cabal = (hsPkgs.callCabal2nix "Cabal" "${inputs.cabal}/Cabal" { inherit (final) Cabal-syntax; }).overrideAttrs (old: {
60+
patches = (old.patches or []) ++ [./cabal-hsc2hs-args-patch.diff];
61+
});
6062
Cabal-syntax = hsPkgs.callCabal2nix "Cabal-syntax" "${inputs.cabal}/Cabal-syntax" { };
6163
Cabal-described = hsPkgs.callCabal2nix "Cabal-described" "${inputs.cabal}/Cabal-described" { };
6264
Cabal-QuickCheck = hsPkgs.callCabal2nix "Cabal-QuickCheck" "${inputs.cabal}/Cabal-QuickCheck" { };

0 commit comments

Comments
 (0)