about summary refs log tree commit diff
path: root/pkgs/stdenv/adapters.nix
diff options
context:
space:
mode:
authorRobert Scott <code@humanleg.org.uk>2023-10-04 22:34:13 +0100
committerRobert Scott <code@humanleg.org.uk>2023-12-09 16:32:15 +0000
commitdc2247a3b56ba1bfef5bb48499eb0d36ad2e9ff3 (patch)
tree434e69bc0c19bf439703b2ace5d1aff16ad41e40 /pkgs/stdenv/adapters.nix
parent1a5bd697adecf27385b69352485baa52a6e02fe9 (diff)
stdenvAdapters: add withDefaultHardeningFlags
Diffstat (limited to 'pkgs/stdenv/adapters.nix')
-rw-r--r--pkgs/stdenv/adapters.nix14
1 files changed, 14 insertions, 0 deletions
diff --git a/pkgs/stdenv/adapters.nix b/pkgs/stdenv/adapters.nix
index dd29871907188..aeacf96443d03 100644
--- a/pkgs/stdenv/adapters.nix
+++ b/pkgs/stdenv/adapters.nix
@@ -417,4 +417,18 @@ rec {
         "propagatedBuildInputs"
       ]);
     });
+
+  withDefaultHardeningFlags = defaultHardeningFlags: stdenv: let
+    bintools = let
+      bintools' = stdenv.cc.bintools;
+    in if bintools' ? override then (bintools'.override {
+      inherit defaultHardeningFlags;
+    }) else bintools';
+  in
+    stdenv.override (old: {
+      cc = if stdenv.cc == null then null else stdenv.cc.override {
+        inherit bintools;
+      };
+      allowedRequisites = lib.mapNullable (rs: rs ++ [ bintools ]) (stdenv.allowedRequisites or null);
+    });
 }