From 44273088ad7980092ee18df2b116fcdea8911777 Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Sat, 16 Aug 2014 17:42:11 +0200 Subject: [PATCH] cabal: enable multi-threaded builds with GHC 7.8.x or later for executables Multi-threaded builds exacerbate the non-determinism in ghc package ids, which is a serious problem for libraries. Packages that define only executables, however, should be safe to build with parallelism enabled. --- pkgs/build-support/cabal/default.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkgs/build-support/cabal/default.nix b/pkgs/build-support/cabal/default.nix index e9a8a50774c9..467b0d155e74 100644 --- a/pkgs/build-support/cabal/default.nix +++ b/pkgs/build-support/cabal/default.nix @@ -217,6 +217,9 @@ assert !enableStaticLibraries -> versionOlder "7.7" ghc.version; ${optionalString (self.enableSharedExecutables && self.stdenv.isDarwin) '' configureFlags+=" --ghc-option=-optl=-Wl,-headerpad_max_install_names" ''} + ${optionalString (versionOlder "7.8" ghc.version && !self.isLibrary) '' + configureFlags+=" --ghc-option=-j$NIX_BUILD_CORES" + ''} echo "configure flags: $extraConfigureFlags $configureFlags" ./Setup configure --verbose --prefix="$out" --libdir='$prefix/lib/$compiler' \