Add some comments regarding the static build options
This commit is contained in:
parent
4bbc31f41b
commit
58f5a861f3
18
flake.nix
18
flake.nix
@ -26,23 +26,29 @@
|
|||||||
# And some build configuration.
|
# And some build configuration.
|
||||||
# See https://nixos.org/manual/nixpkgs/unstable/#haskell-packaging-helpers.
|
# See https://nixos.org/manual/nixpkgs/unstable/#haskell-packaging-helpers.
|
||||||
[
|
[
|
||||||
|
# Configurable static build. Set cabal options...
|
||||||
compose.disableSharedExecutables
|
compose.disableSharedExecutables
|
||||||
compose.disableSharedLibraries
|
compose.disableSharedLibraries
|
||||||
|
# ... and link required static libraries.
|
||||||
(compose.appendConfigureFlags [
|
(compose.appendConfigureFlags [
|
||||||
"--ghc-option=-optl=-static"
|
"--ghc-option=-optl=-static"
|
||||||
"--ghc-option=-optl=-pthread"
|
"--ghc-option=-optl=-pthread"
|
||||||
"--ghc-option=-optl=-L${pkgs.gmp6.override { withStatic = true; }}/lib"
|
"--extra-lib-dirs=${pkgs.gmp6.override { withStatic = true; }}/lib"
|
||||||
"--ghc-option=-optl=-L${pkgs.zlib.static}/lib"
|
"--extra-lib-dirs=${pkgs.zlib.static}/lib"
|
||||||
"--ghc-option=-optl=-L${pkgs.glibc.static}/lib"
|
"--extra-lib-dirs=${pkgs.glibc.static}/lib"
|
||||||
"--extra-lib-dirs=${pkgs.libffi.overrideAttrs (old: { dontDisableStatic = true; })}/lib"
|
"--extra-lib-dirs=${pkgs.libffi.overrideAttrs (old: { dontDisableStatic = true; })}/lib"
|
||||||
])
|
])
|
||||||
# Remove warp which pulls GHC into the runtime deps for some reason.
|
# Remove all references to the Nix store from the executable.
|
||||||
|
# This is important because Nix uses the references for calculating
|
||||||
|
# what needs to be in the Docker container.
|
||||||
|
# FIXME: Using static linking, these references shouldn't even still be there.
|
||||||
|
# Can we somehow make GHC stop emitting them?
|
||||||
(compose.overrideCabal (drv: {
|
(compose.overrideCabal (drv: {
|
||||||
postInstall = ''
|
postInstall = ''
|
||||||
remove-references-to -t ${pkgs.haskellPackages.warp} $out/bin/utoy
|
${pkgs.nukeReferences}/bin/nuke-refs $out/bin/utoy
|
||||||
'';
|
'';
|
||||||
}))
|
}))
|
||||||
# Return only the bin folder to curb image size
|
# Return only the bin folder to curb image size.
|
||||||
compose.justStaticExecutables
|
compose.justStaticExecutables
|
||||||
];
|
];
|
||||||
in {
|
in {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user