about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--pkgs/build-support/cabal/default.nix14
1 files changed, 12 insertions, 2 deletions
diff --git a/pkgs/build-support/cabal/default.nix b/pkgs/build-support/cabal/default.nix
index a4ef093d0c663..6657a7fa3fc64 100644
--- a/pkgs/build-support/cabal/default.nix
+++ b/pkgs/build-support/cabal/default.nix
@@ -80,15 +80,25 @@
             isLibrary = ! self.isExecutable;
             isExecutable = false;
 
+            # ignore version restrictions on the build inputs that the cabal file might specify
+            jailbreak = false;
+
+            # pass the '--enable-split-objs' flag to cabal in the configure stage
+            enableSplitObjs = true;
+
+            # configure flag to pass to enable/disable library profiling
             libraryProfiling =
               if enableLibraryProfiling then ["--enable-library-profiling"]
                                         else ["--disable-library-profiling"];
 
+            # configure flag to pass to enable/disable object splitting
+            splitObjects = if self.enableSplitObjs then "--enable-split-objs" else "--disable-split-objs";
+
             # compiles Setup and configures
             configurePhase = ''
               eval "$preConfigure"
 
-              ${lib.optionalString (lib.attrByPath ["jailbreak"] false self) "${jailbreakCabal}/bin/jailbreak-cabal ${self.pname}.cabal"}
+              ${lib.optionalString self.jailbreak "${jailbreakCabal}/bin/jailbreak-cabal ${self.pname}.cabal"}
               for i in Setup.hs Setup.lhs; do
                 test -f $i && ghc --make $i
               done
@@ -104,7 +114,7 @@
                 done
               done
 
-              ./Setup configure --verbose --prefix="$out" $libraryProfiling $extraLibDirs $configureFlags
+              ./Setup configure --verbose --prefix="$out" $libraryProfiling $splitObjects $extraLibDirs $configureFlags
 
               eval "$postConfigure"
             '';