makeStaticBinaries: add a static glibc when performing a mkDerivation

This commit is contained in:
James Kay 2018-12-13 20:35:50 +00:00
parent b7fbde893a
commit eb76dd37a7
No known key found for this signature in database
GPG Key ID: 76BE7F17BF11AD15

View File

@ -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...
];