Merge pull request #106115 from matthewbauer/static-nix-darwin

Improve static Nix Darwin support
This commit is contained in:
Matthew Bauer 2020-12-08 15:55:22 -06:00 committed by GitHub
commit 1fb6bb9791
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -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 cant build static binaries without extensive hacks.
++ optional (!super.stdenv.hostPlatform.isDarwin) makeStaticBinaries
++ optional super.stdenv.hostPlatform.isDarwin makeStaticDarwin
# Glibc doesnt 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 doesnt work on darwin
libev = super.libev.override { static = !super.stdenv.hostPlatform.isDarwin; };
libexecinfo = super.libexecinfo.override { enableShared = false; };