diff --git a/cabal-hsc2hs-args-patch.diff b/cabal-hsc2hs-args-patch.diff new file mode 100644 index 0000000..c107d9c --- /dev/null +++ b/cabal-hsc2hs-args-patch.diff @@ -0,0 +1,13 @@ +diff --git a/Cabal/src/Distribution/Simple/PreProcess.hs b/Cabal/src/Distribution/Simple/PreProcess.hs +index d47dd8035..da158a5a3 100644 +--- a/src/Distribution/Simple/PreProcess.hs ++++ b/src/Distribution/Simple/PreProcess.hs +@@ -464,7 +464,7 @@ ppHsc2hs bi lbi clbi = + -- Returns a list of command line arguments that can either be passed + -- directly, or via a response file. + genPureArgs :: Version -> ConfiguredProgram -> String -> String -> [String] +- genPureArgs hsc2hsVersion gccProg inFile outFile = ++ genPureArgs hsc2hsVersion gccProg inFile outFile = ordNub $ + -- Additional gcc options + [ "--cflag=" ++ opt | opt <- programDefaultArgs gccProg + ++ programOverrideArgs gccProg ] diff --git a/flake.nix b/flake.nix index 43ccaa6..bb8d5f8 100644 --- a/flake.nix +++ b/flake.nix @@ -56,7 +56,9 @@ cabal-install = hsPkgs.callCabal2nix "cabal-install" "${inputs.cabal}/cabal-install" { inherit (final) Cabal cabal-install-solver hackage-security; }; cabal-install-solver = hsPkgs.callCabal2nix "cabal-install-solver" "${inputs.cabal}/cabal-install-solver" { inherit (final) Cabal; }; - Cabal = hsPkgs.callCabal2nix "Cabal" "${inputs.cabal}/Cabal" { inherit (final) Cabal-syntax; }; + Cabal = (hsPkgs.callCabal2nix "Cabal" "${inputs.cabal}/Cabal" { inherit (final) Cabal-syntax; }).overrideAttrs (old: { + patches = (old.patches or []) ++ [./cabal-hsc2hs-args-patch.diff]; + }); Cabal-syntax = hsPkgs.callCabal2nix "Cabal-syntax" "${inputs.cabal}/Cabal-syntax" { }; Cabal-described = hsPkgs.callCabal2nix "Cabal-described" "${inputs.cabal}/Cabal-described" { }; Cabal-QuickCheck = hsPkgs.callCabal2nix "Cabal-QuickCheck" "${inputs.cabal}/Cabal-QuickCheck" { };