diff options
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 850785cd881f..7823d6413442 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... ]; |