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... ];