summary refs log tree commit diff
path: root/pkgs/top-level/static.nix
diff options
context:
space:
mode:
authorJude Taylor <jude.taylor@dfinity.org>2020-04-28 07:51:39 -0700
committerJude Taylor <jude.taylor@dfinity.org>2020-04-28 08:41:48 -0700
commit0de6275003170cb82e5f9a3bdfb649ff22b8b12a (patch)
tree777fe88588412df18621640e61529f219941c23c /pkgs/top-level/static.nix
parent7610f0417b2f3c42f99ff1f30f8224007fb31a20 (diff)
downloadnixpkgs-0de6275003170cb82e5f9a3bdfb649ff22b8b12a.tar
nixpkgs-0de6275003170cb82e5f9a3bdfb649ff22b8b12a.tar.gz
nixpkgs-0de6275003170cb82e5f9a3bdfb649ff22b8b12a.tar.bz2
nixpkgs-0de6275003170cb82e5f9a3bdfb649ff22b8b12a.tar.lz
nixpkgs-0de6275003170cb82e5f9a3bdfb649ff22b8b12a.tar.xz
nixpkgs-0de6275003170cb82e5f9a3bdfb649ff22b8b12a.tar.zst
nixpkgs-0de6275003170cb82e5f9a3bdfb649ff22b8b12a.zip
pkgsStatic: fix eval on Darwin
Diffstat (limited to 'pkgs/top-level/static.nix')
-rw-r--r--pkgs/top-level/static.nix9
1 files changed, 6 insertions, 3 deletions
diff --git a/pkgs/top-level/static.nix b/pkgs/top-level/static.nix
index c7db64b99f6..b372af12b79 100644
--- a/pkgs/top-level/static.nix
+++ b/pkgs/top-level/static.nix
@@ -14,15 +14,18 @@ self: super: let
   inherit (super.stdenvAdapters) makeStaticBinaries
                                  makeStaticLibraries
                                  propagateBuildInputs;
-  inherit (super.lib) foldl optional flip id composeExtensions optionalAttrs;
+  inherit (super.lib) foldl optional flip id composeExtensions optionalAttrs optionalString;
   inherit (super) makeSetupHook;
 
   # Best effort static binaries. Will still be linked to libSystem,
   # but more portable than Nix store binaries.
-  makeStaticDarwin = stdenv: stdenv // {
+  makeStaticDarwin = stdenv_: let stdenv = stdenv_.override {
+    # extraBuildInputs are dropped in cross.nix, but darwin still needs them
+    extraBuildInputs = [ self.buildPackages.darwin.CF ];
+  }; in stdenv // {
     mkDerivation = args: stdenv.mkDerivation (args // {
       NIX_CFLAGS_LINK = toString (args.NIX_CFLAGS_LINK or "")
-                      + " -static-libgcc";
+                      + optionalString stdenv.cc.isGNU " -static-libgcc";
       nativeBuildInputs = (args.nativeBuildInputs or []) ++ [ (makeSetupHook {
         substitutions = {
           libsystem = "${stdenv.cc.libc}/lib/libSystem.B.dylib";