@@ -1,13 +1,6 @@
1{ stdenv, buildPackages, ghc, lib, gobject-introspection ? null, haskellLib, makeConfigFiles, ghcForComponent, hsPkgs, runCommand, libffi, gmp, zlib, ncurses, numactl, nodejs }:
1{ stdenv, buildPackages, ghc, lib, gobject-introspection ? null, haskellLib, makeConfigFiles, ghcForComponent, hsPkgs, runCommand, libffi, gmp, zlib, ncurses, numactl, nodejs }:
3− # These are here to avoid multiple calls to override
4− gmpStatic = gmp.override { withStatic = true; };
5− zlibStatic = zlib.static;
6− ncursesStatic = ncurses.override { enableStatic = true; };
7− numactlStatic = numactl.overrideAttrs (_: { configureFlags = "--enable-static"; });
9lib.makeOverridable (
2lib.makeOverridable (
10−let self =
3+let self =
11{ componentId
4{ componentId
12, component
5, component
@@ -40,7 +33,10 @@ let self =
40, dontStrip ? component.dontStrip
33, dontStrip ? component.dontStrip
42, enableStatic ? component.enableStatic
35, enableStatic ? component.enableStatic
43−, enableShared ? component.enableShared && !haskellLib.isCrossHost
36+, enableShared ? ghc.enableShared && component.enableShared && !haskellLib.isCrossHost
37+ # on x86 we'll use shared libraries, even with musl m(
38+ # ghc's internal linker seems to be broken on x86.
39+ && !(stdenv.hostPlatform.isMusl && !stdenv.hostPlatform.isx86)
44, enableDeadCodeElimination ? component.enableDeadCodeElimination
40, enableDeadCodeElimination ? component.enableDeadCodeElimination
46# Options for Haddock generation
42# Options for Haddock generation
@@ -126,10 +122,6 @@ let
126 "--disable-executable-dynamic"
122 "--disable-executable-dynamic"
127 "--ghc-option=-optl=-pthread"
123 "--ghc-option=-optl=-pthread"
128 "--ghc-option=-optl=-static"
124 "--ghc-option=-optl=-static"
129− "--ghc-option=-optl=-L${gmpStatic}/lib"
130− "--ghc-option=-optl=-L${zlibStatic}/lib"
131− "--ghc-option=-optl=-L${ncursesStatic}/lib"
132− "--ghc-option=-optl=-L${numactlStatic}/lib"
133 ] ++ lib.optional enableSeparateDataOutput "--datadir=$data/share/${ghc.name}"
125 ] ++ lib.optional enableSeparateDataOutput "--datadir=$data/share/${ghc.name}"
134 ++ lib.optional doHaddock' "--docdir=${docdir "$doc"}"
126 ++ lib.optional doHaddock' "--docdir=${docdir "$doc"}"
135 ++ lib.optional (enableLibraryProfiling || enableExecutableProfiling) "--profiling-detail=${profilingDetail}"
127 ++ lib.optional (enableLibraryProfiling || enableExecutableProfiling) "--profiling-detail=${profilingDetail}"