summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--pkgs/top-level/all-packages.nix17
1 files changed, 12 insertions, 5 deletions
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 1f291fd6c5b..ce6d8feb0d8 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -607,12 +607,19 @@ in
                               ../build-support/setup-hooks/make-wrapper.sh;
 
   makeBinaryWrapper = let
-    script = runCommand "make-binary-wrapper.sh" {} ''
-      substitute ${../build-support/setup-hooks/make-binary-wrapper.sh} $out \
-        --replace " @CC@ " " ${gcc}/bin/cc "
-    '';
+    f = { cc, sanitizers }: let
+      san = lib.concatMapStringsSep " " (s: "-fsanitize=${s}") sanitizers;
+      script = runCommand "make-binary-wrapper.sh" {} ''
+        substitute ${../build-support/setup-hooks/make-binary-wrapper.sh} $out \
+          --replace " @CC@ " " ${cc}/bin/cc ${san} "
+      '';
+    in
+      makeSetupHook { deps = [ dieHook ]; } script;
   in
-    makeSetupHook { deps = [ dieHook ]; } script;
+    lib.makeOverridable f {
+      cc = gcc;
+      sanitizers = [ "undefined" "address" ];
+    };
 
   makeModulesClosure = { kernel, firmware, rootModules, allowMissing ? false }:
     callPackage ../build-support/kernel/modules-closure.nix {