summary refs log tree commit diff
path: root/pkgs/development
diff options
context:
space:
mode:
authorMatthew Bauer <mjbauer95@gmail.com>2018-06-20 17:57:35 -0400
committerJohn Ericson <John.Ericson@Obsidian.Systems>2018-06-20 18:40:53 -0400
commitfd7a6ea0aff44e90b999958c58cc3acc8579ae72 (patch)
treef815aa5f6e594e8eb4c7adf4bd7436fa0c5972a4 /pkgs/development
parent17621f63eb1c257e84490a825c1e9a212e0826af (diff)
downloadnixlib-fd7a6ea0aff44e90b999958c58cc3acc8579ae72.tar
nixlib-fd7a6ea0aff44e90b999958c58cc3acc8579ae72.tar.gz
nixlib-fd7a6ea0aff44e90b999958c58cc3acc8579ae72.tar.bz2
nixlib-fd7a6ea0aff44e90b999958c58cc3acc8579ae72.tar.lz
nixlib-fd7a6ea0aff44e90b999958c58cc3acc8579ae72.tar.xz
nixlib-fd7a6ea0aff44e90b999958c58cc3acc8579ae72.tar.zst
nixlib-fd7a6ea0aff44e90b999958c58cc3acc8579ae72.zip
haskell: make generic builder follow compiler’s shared config
enableShared in generic-builder.nix should default to what the GHC
compiler was compiled with. Add a passthru to all of the GHC compilers
to hold the value of enableShared. If enableShared is not set in the
GHC we just use false as the default value for enableSharedLibraries.

Note: I may have missed some compilers. Only GHC & GHCJS are covered
by this commit but this shouldn’t break evaluation of anything else.
Diffstat (limited to 'pkgs/development')
-rw-r--r--pkgs/development/compilers/ghc/7.10.3-binary.nix5
-rw-r--r--pkgs/development/compilers/ghc/7.10.3.nix1
-rw-r--r--pkgs/development/compilers/ghc/8.0.2.nix1
-rw-r--r--pkgs/development/compilers/ghc/8.2.1-binary.nix5
-rw-r--r--pkgs/development/compilers/ghc/8.2.2.nix1
-rw-r--r--pkgs/development/compilers/ghc/8.4.3.nix1
-rw-r--r--pkgs/development/compilers/ghc/head.nix1
-rw-r--r--pkgs/development/compilers/ghcjs-ng/default.nix3
-rw-r--r--pkgs/development/compilers/ghcjs/base.nix2
-rw-r--r--pkgs/development/haskell-modules/generic-builder.nix2
10 files changed, 18 insertions, 4 deletions
diff --git a/pkgs/development/compilers/ghc/7.10.3-binary.nix b/pkgs/development/compilers/ghc/7.10.3-binary.nix
index 48e2ca0a585c..53693ff50521 100644
--- a/pkgs/development/compilers/ghc/7.10.3-binary.nix
+++ b/pkgs/development/compilers/ghc/7.10.3-binary.nix
@@ -153,7 +153,10 @@ stdenv.mkDerivation rec {
     [ $(./main) == "yes" ]
   '';
 
-  passthru = { targetPrefix = ""; };
+  passthru = {
+    targetPrefix = "";
+    enableShared = true;
+  };
 
   meta.license = stdenv.lib.licenses.bsd3;
   meta.platforms = ["x86_64-linux" "i686-linux" "x86_64-darwin" "armv7l-linux"];
diff --git a/pkgs/development/compilers/ghc/7.10.3.nix b/pkgs/development/compilers/ghc/7.10.3.nix
index 3dd320e02572..2a906d918aa3 100644
--- a/pkgs/development/compilers/ghc/7.10.3.nix
+++ b/pkgs/development/compilers/ghc/7.10.3.nix
@@ -177,6 +177,7 @@ stdenv.mkDerivation rec {
     inherit bootPkgs targetPrefix;
 
     inherit llvmPackages;
+    inherit enableShared;
 
     # Our Cabal compiler name
     haskellCompilerName = "ghc-7.10.3";
diff --git a/pkgs/development/compilers/ghc/8.0.2.nix b/pkgs/development/compilers/ghc/8.0.2.nix
index 53c5a218cb13..8062e93df549 100644
--- a/pkgs/development/compilers/ghc/8.0.2.nix
+++ b/pkgs/development/compilers/ghc/8.0.2.nix
@@ -183,6 +183,7 @@ stdenv.mkDerivation rec {
     inherit bootPkgs targetPrefix;
 
     inherit llvmPackages;
+    inherit enableShared;
 
     # Our Cabal compiler name
     haskellCompilerName = "ghc-8.0.2";
diff --git a/pkgs/development/compilers/ghc/8.2.1-binary.nix b/pkgs/development/compilers/ghc/8.2.1-binary.nix
index c88d2a8685a6..9bd7dfcb9fc1 100644
--- a/pkgs/development/compilers/ghc/8.2.1-binary.nix
+++ b/pkgs/development/compilers/ghc/8.2.1-binary.nix
@@ -155,7 +155,10 @@ stdenv.mkDerivation rec {
     [ $(./main) == "yes" ]
   '';
 
-  passthru = { targetPrefix = ""; };
+  passthru = {
+    targetPrefix = "";
+    enableShared = true;
+  };
 
   meta.license = stdenv.lib.licenses.bsd3;
   # AArch64 should work in theory but eventually some builds start segfaulting
diff --git a/pkgs/development/compilers/ghc/8.2.2.nix b/pkgs/development/compilers/ghc/8.2.2.nix
index 4e9eff06f26e..0aa573ed6d1d 100644
--- a/pkgs/development/compilers/ghc/8.2.2.nix
+++ b/pkgs/development/compilers/ghc/8.2.2.nix
@@ -199,6 +199,7 @@ stdenv.mkDerivation rec {
     inherit bootPkgs targetPrefix;
 
     inherit llvmPackages;
+    inherit enableShared;
 
     # Our Cabal compiler name
     haskellCompilerName = "ghc-8.2.2";
diff --git a/pkgs/development/compilers/ghc/8.4.3.nix b/pkgs/development/compilers/ghc/8.4.3.nix
index c57058a63520..864e93756e80 100644
--- a/pkgs/development/compilers/ghc/8.4.3.nix
+++ b/pkgs/development/compilers/ghc/8.4.3.nix
@@ -193,6 +193,7 @@ stdenv.mkDerivation rec {
     inherit bootPkgs targetPrefix;
 
     inherit llvmPackages;
+    inherit enableShared;
 
     # Our Cabal compiler name
     haskellCompilerName = "ghc-8.4.3";
diff --git a/pkgs/development/compilers/ghc/head.nix b/pkgs/development/compilers/ghc/head.nix
index c128891ec382..8ccd72ef55a2 100644
--- a/pkgs/development/compilers/ghc/head.nix
+++ b/pkgs/development/compilers/ghc/head.nix
@@ -191,6 +191,7 @@ stdenv.mkDerivation rec {
     inherit bootPkgs targetPrefix;
 
     inherit llvmPackages;
+    inherit enableShared;
 
     # Our Cabal compiler name
     haskellCompilerName = "ghc-8.5";
diff --git a/pkgs/development/compilers/ghcjs-ng/default.nix b/pkgs/development/compilers/ghcjs-ng/default.nix
index affed7e2d071..65b43f712ae2 100644
--- a/pkgs/development/compilers/ghcjs-ng/default.nix
+++ b/pkgs/development/compilers/ghcjs-ng/default.nix
@@ -42,6 +42,8 @@ let
     inherit (bootGhcjs) version;
     isGhcjs = true;
 
+    enableShared = true;
+
     socket-io = nodePackages."socket.io";
 
     # Relics of the old GHCJS build system
@@ -96,4 +98,3 @@ in stdenv.mkDerivation {
 
     meta.platforms = passthru.bootPkgs.ghc.meta.platforms;
   }
-
diff --git a/pkgs/development/compilers/ghcjs/base.nix b/pkgs/development/compilers/ghcjs/base.nix
index 98eb58e6aae7..f09a577110b7 100644
--- a/pkgs/development/compilers/ghcjs/base.nix
+++ b/pkgs/development/compilers/ghcjs/base.nix
@@ -179,6 +179,8 @@ in mkDerivation (rec {
     # let us assume ghcjs is never actually cross compiled
     targetPrefix = "";
 
+    enableShared = true;
+
     inherit stage1Packages;
     mkStage2 = stage2 {
       inherit ghcjsBoot;
diff --git a/pkgs/development/haskell-modules/generic-builder.nix b/pkgs/development/haskell-modules/generic-builder.nix
index 52128d3fc5d1..3dd023f34302 100644
--- a/pkgs/development/haskell-modules/generic-builder.nix
+++ b/pkgs/development/haskell-modules/generic-builder.nix
@@ -30,7 +30,7 @@ in
 , profilingDetail ? "all-functions"
 # TODO enable shared libs for cross-compiling
 , enableSharedExecutables ? false
-, enableSharedLibraries ? ((ghc.isGhcjs or false) || stdenv.lib.versionOlder "7.7" ghc.version)
+, enableSharedLibraries ? (ghc.enableShared or false)
 , enableDeadCodeElimination ? (!stdenv.isDarwin)  # TODO: use -dead_strip for darwin
 , enableStaticLibraries ? !hostPlatform.isWindows
 , enableHsc2hsViaAsm ? hostPlatform.isWindows && stdenv.lib.versionAtLeast ghc.version "8.4"