diff options
author | John Ericson <John.Ericson@Obsidian.Systems> | 2021-08-19 17:56:53 +0000 |
---|---|---|
committer | John Ericson <John.Ericson@Obsidian.Systems> | 2021-08-19 21:55:06 +0000 |
commit | 904625852d535bbe53cadb006c9e1137ab481818 (patch) | |
tree | 9c1aecc9adc58ea96c4213ea902db23593f088e0 /pkgs/stdenv/adapters.nix | |
parent | a17fc0337522b002166730d94e32f3b1517e0817 (diff) |
pkgsStatic: Inline more of static overlay
Diffstat (limited to 'pkgs/stdenv/adapters.nix')
-rw-r--r-- | pkgs/stdenv/adapters.nix | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/pkgs/stdenv/adapters.nix b/pkgs/stdenv/adapters.nix index 719f679982664..9e1c73a57db14 100644 --- a/pkgs/stdenv/adapters.nix +++ b/pkgs/stdenv/adapters.nix @@ -90,6 +90,24 @@ rec { }); }); + # Best effort static binaries. Will still be linked to libSystem, + # but more portable than Nix store binaries. + makeStaticDarwin = stdenv: stdenv.override (old: { + # extraBuildInputs are dropped in cross.nix, but darwin still needs them + extraBuildInputs = [ pkgs.buildPackages.darwin.CF ]; + mkDerivationFromStdenv = extendMkDerivationArgs old (args: { + NIX_CFLAGS_LINK = toString (args.NIX_CFLAGS_LINK or "") + + lib.optionalString (stdenv.cc.isGNU or false) " -static-libgcc"; + nativeBuildInputs = (args.nativeBuildInputs or []) ++ [ + (pkgs.buildPackages.makeSetupHook { + substitutions = { + libsystem = "${stdenv.cc.libc}/lib/libSystem.B.dylib"; + }; + } ./darwin/portable-libsystem.sh) + ]; + }); + }); + /* Modify a stdenv so that all buildInputs are implicitly propagated to consuming derivations |