From eb76dd37a709a1ad21fb297c005a8ac428053964 Mon Sep 17 00:00:00 2001 From: James Kay Date: Thu, 13 Dec 2018 20:35:50 +0000 Subject: makeStaticBinaries: add a static glibc when performing a mkDerivation --- pkgs/stdenv/adapters.nix | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'pkgs/stdenv/adapters.nix') 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... ]; -- cgit 1.4.1