about summary refs log tree commit diff
path: root/pkgs/stdenv
diff options
context:
space:
mode:
authorJan Tojnar <jtojnar@gmail.com>2018-12-16 22:55:06 +0100
committerJan Tojnar <jtojnar@gmail.com>2018-12-16 22:55:06 +0100
commitaead6e12f96a76a2c1c6b64ba81b18d647e6e3d0 (patch)
treeaff35e8cfa837fd92319e23951493431b3d2dacc /pkgs/stdenv
parent4027966602c1d3bfac7091e390c2cf678115d59f (diff)
parenteceb2b06a1bd012a938697718c5f3b7b6fd9249a (diff)
Merge remote-tracking branch 'upstream/master' into staging
Diffstat (limited to 'pkgs/stdenv')
-rw-r--r--pkgs/stdenv/adapters.nix15
1 files changed, 11 insertions, 4 deletions
diff --git a/pkgs/stdenv/adapters.nix b/pkgs/stdenv/adapters.nix
index 850785cd881fb..7823d6413442d 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...
           ];