From a52f9a18bf28c63b3e1b9ceb542ff36245a54c09 Mon Sep 17 00:00:00 2001 From: John Ericson Date: Tue, 5 Jan 2021 03:39:32 +0000 Subject: [PATCH] haskell: Inline static overlay We don't force `enableStaticLibraries` for Windows or WASM because it will just fail an assertion. --- .../haskell-modules/generic-builder.nix | 2 +- pkgs/top-level/static.nix | 15 --------------- 2 files changed, 1 insertion(+), 16 deletions(-) diff --git a/pkgs/development/haskell-modules/generic-builder.nix b/pkgs/development/haskell-modules/generic-builder.nix index a221ce38c8a2..e135374511fb 100644 --- a/pkgs/development/haskell-modules/generic-builder.nix +++ b/pkgs/development/haskell-modules/generic-builder.nix @@ -33,7 +33,7 @@ in , profilingDetail ? "exported-functions" # TODO enable shared libs for cross-compiling , enableSharedExecutables ? false -, enableSharedLibraries ? (ghc.enableShared or false) +, enableSharedLibraries ? !stdenv.hostPlatform.isStatic && (ghc.enableShared or false) , enableDeadCodeElimination ? (!stdenv.isDarwin) # TODO: use -dead_strip for darwin , enableStaticLibraries ? !(stdenv.hostPlatform.isWindows or stdenv.hostPlatform.isWasm) , enableHsc2hsViaAsm ? stdenv.hostPlatform.isWindows && stdenv.lib.versionAtLeast ghc.version "8.4" diff --git a/pkgs/top-level/static.nix b/pkgs/top-level/static.nix index 48e4618762a6..b3fe7bf8c94f 100644 --- a/pkgs/top-level/static.nix +++ b/pkgs/top-level/static.nix @@ -50,15 +50,6 @@ self: super: let # ++ optional (super.stdenv.hostPlatform.libc == "glibc") ((flip overrideInStdenv) [ self.stdenv.glibc.static ]) ; - # Force everything to link statically. - haskellStaticAdapter = self: super: { - mkDerivation = attrs: super.mkDerivation (attrs // { - enableSharedLibraries = false; - enableSharedExecutables = false; - enableStaticLibraries = true; - }); - }; - removeUnknownConfigureFlags = f: with self.lib; remove "--disable-shared" (remove "--enable-static" f); @@ -102,12 +93,6 @@ in { clangStdenv = foldl (flip id) super.clangStdenv staticAdapters; libcxxStdenv = foldl (flip id) super.libcxxStdenv staticAdapters; - haskell = super.haskell // { - packageOverrides = composeExtensions - (super.haskell.packageOverrides or (_: _: {})) - haskellStaticAdapter; - }; - zlib = super.zlib.override { # Don’t use new stdenv zlib because # it doesn’t like the --disable-shared flag