diff options
author | James Kay <james@hadean.com> | 2018-12-13 20:35:50 +0000 |
---|---|---|
committer | James Kay <james@hadean.com> | 2018-12-14 11:02:18 +0000 |
commit | eb76dd37a709a1ad21fb297c005a8ac428053964 (patch) | |
tree | fee1ee3bb771740ad6c2e3a5df9ee5e0c6faa526 /pkgs/stdenv/adapters.nix | |
parent | b7fbde893a705c1fbaaedc278b86691ffd935e43 (diff) |
makeStaticBinaries: add a static glibc when performing a mkDerivation
Diffstat (limited to 'pkgs/stdenv/adapters.nix')
-rw-r--r-- | pkgs/stdenv/adapters.nix | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/pkgs/stdenv/adapters.nix b/pkgs/stdenv/adapters.nix index 850785cd881..7823d641344 100644 --- a/pkgs/stdenv/adapters.nix +++ b/pkgs/stdenv/adapters.nix @@ -31,12 +31,19 @@ rec { # Return a modified stdenv that tries to build statically linked # binaries. - makeStaticBinaries = stdenv: stdenv // + makeStaticBinaries = stdenv: + let stdenv' = if stdenv.hostPlatform.libc != "glibc" then stdenv else + stdenv.override (prev: { + extraBuildInputs = prev.extraBuildInputs or [] ++ [ + stdenv.glibc.static + ]; + }); + in stdenv' // { mkDerivation = args: - if stdenv.hostPlatform.isDarwin + if stdenv'.hostPlatform.isDarwin then throw "Cannot build fully static binaries on Darwin/macOS" - else stdenv.mkDerivation (args // { - NIX_CFLAGS_LINK = toString (args.NIX_CFLAGS_LINK or "") + "-static"; + else stdenv'.mkDerivation (args // { + NIX_CFLAGS_LINK = toString (args.NIX_CFLAGS_LINK or "") + " -static"; configureFlags = (args.configureFlags or []) ++ [ "--disable-shared" # brrr... ]; |