diff options
author | Matthew Bauer <mjbauer95@gmail.com> | 2020-12-08 15:55:22 -0600 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-12-08 15:55:22 -0600 |
commit | 1fb6bb97910a035544943a2e1f636d4ebbd3ff89 (patch) | |
tree | 3e73da8cf7f7c251904f6f239fd9fcaa96896ad8 | |
parent | d84bd749392097a976eda01896635e627254d648 (diff) | |
parent | 805c9d4847b565784d6d00f4379ce6661fea7619 (diff) |
Merge pull request #106115 from matthewbauer/static-nix-darwin
Improve static Nix Darwin support
-rw-r--r-- | pkgs/top-level/static.nix | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/pkgs/top-level/static.nix b/pkgs/top-level/static.nix index b3851ba20f09..b8d0d16e97ba 100644 --- a/pkgs/top-level/static.nix +++ b/pkgs/top-level/static.nix @@ -34,14 +34,18 @@ self: super: let }); }; - staticAdapters = [ makeStaticLibraries propagateBuildInputs ] + staticAdapters = + # makeStaticDarwin must go first so that the extraBuildInputs + # override does not recreate mkDerivation, removing subsequent + # adapters. + optional super.stdenv.hostPlatform.isDarwin makeStaticDarwin + + ++ [ makeStaticLibraries propagateBuildInputs ] # Apple does not provide a static version of libSystem or crt0.o # So we can’t build static binaries without extensive hacks. ++ optional (!super.stdenv.hostPlatform.isDarwin) makeStaticBinaries - ++ optional super.stdenv.hostPlatform.isDarwin makeStaticDarwin - # Glibc doesn’t come with static runtimes by default. # ++ optional (super.stdenv.hostPlatform.libc == "glibc") ((flip overrideInStdenv) [ self.stdenv.glibc.static ]) ; @@ -163,6 +167,7 @@ in { }; mkl = super.mkl.override { enableStatic = true; }; nix = super.nix.override { enableStatic = true; }; + nixUnstable = super.nixUnstable.override { enableStatic = true; }; openssl = (super.openssl_1_1.override { static = true; }).overrideAttrs (o: { # OpenSSL doesn't like the `--enable-static` / `--disable-shared` flags. configureFlags = (removeUnknownConfigureFlags o.configureFlags); @@ -281,8 +286,8 @@ in { python39 = super.python39.override { static = true; }; python3Minimal = super.python3Minimal.override { static = true; }; - - libev = super.libev.override { static = true; }; + # Note: -static doesn’t work on darwin + libev = super.libev.override { static = !super.stdenv.hostPlatform.isDarwin; }; libexecinfo = super.libexecinfo.override { enableShared = false; }; |