aboutsummaryrefslogtreecommitdiff
path: root/pkgs/stdenv/adapters.nix
diff options
context:
space:
mode:
authorJames Kay <james@hadean.com>2018-12-13 20:35:50 +0000
committerJames Kay <james@hadean.com>2018-12-14 11:02:18 +0000
commiteb76dd37a709a1ad21fb297c005a8ac428053964 (patch)
treefee1ee3bb771740ad6c2e3a5df9ee5e0c6faa526 /pkgs/stdenv/adapters.nix
parentb7fbde893a705c1fbaaedc278b86691ffd935e43 (diff)
makeStaticBinaries: add a static glibc when performing a mkDerivation
Diffstat (limited to 'pkgs/stdenv/adapters.nix')
-rw-r--r--pkgs/stdenv/adapters.nix15
1 files changed, 11 insertions, 4 deletions
diff --git a/pkgs/stdenv/adapters.nix b/pkgs/stdenv/adapters.nix
index 850785cd881..7823d641344 100644
--- a/pkgs/stdenv/adapters.nix
+++ b/pkgs/stdenv/adapters.nix
@@ -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...
];