about summary refs log tree commit diff
path: root/pkgs/top-level
diff options
context:
space:
mode:
authorJacek Galowicz <jacek@galowicz.de>2021-12-09 15:53:51 +0000
committerTobias Bergkvist <tobias@bergkv.ist>2021-12-09 17:22:55 +0100
commitbdaa0e2930b71c80ea34fe09ff4f1b1ea8f7ca34 (patch)
treef0e2fdb7cf81bd3cdb993bb04fd18d6661505c9c /pkgs/top-level
parentd5e028a441ddcac16b380436c98439b769e35355 (diff)
make-binary-wrapper: Add sanitizer default option
Diffstat (limited to 'pkgs/top-level')
-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 1f291fd6c5b96..ce6d8feb0d8e5 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 {