diff --git a/pkgs/test/default.nix b/pkgs/test/default.nix index b73617daa895..e3ef7839c4b4 100644 --- a/pkgs/test/default.nix +++ b/pkgs/test/default.nix @@ -35,8 +35,6 @@ with pkgs; macOSSierraShared = callPackage ./macos-sierra-shared {}; - make-binary-wrapper = callPackage ./make-binary-wrapper { inherit makeBinaryWrapper; }; - cross = callPackage ./cross {}; php = recurseIntoAttrs (callPackages ./php {}); diff --git a/pkgs/test/make-binary-wrapper/chdir.c b/pkgs/test/make-binary-wrapper/chdir.c index c67c695b1c3b..9e0b7e2c7f52 100644 --- a/pkgs/test/make-binary-wrapper/chdir.c +++ b/pkgs/test/make-binary-wrapper/chdir.c @@ -5,7 +5,7 @@ #define assert_success(e) do { if ((e) < 0) { perror(#e); abort(); } } while (0) int main(int argc, char **argv) { - assert_success(chdir("/tmp/foo")); + assert_success(chdir("./tmp/foo")); argv[0] = "/send/me/flags"; return execv("/send/me/flags", argv); } diff --git a/pkgs/test/make-binary-wrapper/chdir.cmdline b/pkgs/test/make-binary-wrapper/chdir.cmdline index 15235f20621c..d6ab081e8d35 100644 --- a/pkgs/test/make-binary-wrapper/chdir.cmdline +++ b/pkgs/test/make-binary-wrapper/chdir.cmdline @@ -1 +1 @@ - --chdir /tmp/foo + --chdir ./tmp/foo diff --git a/pkgs/test/make-binary-wrapper/chdir.env b/pkgs/test/make-binary-wrapper/chdir.env index db129d68af74..ea1c61054e50 100644 --- a/pkgs/test/make-binary-wrapper/chdir.env +++ b/pkgs/test/make-binary-wrapper/chdir.env @@ -1,2 +1,2 @@ -CWD=/tmp/foo +CWD=SUBST_CWD/tmp/foo SUBST_ARGV0 diff --git a/pkgs/test/make-binary-wrapper/default.nix b/pkgs/test/make-binary-wrapper/default.nix index c5bb6970aac0..b5bbf994ffa3 100644 --- a/pkgs/test/make-binary-wrapper/default.nix +++ b/pkgs/test/make-binary-wrapper/default.nix @@ -1,12 +1,12 @@ { lib, coreutils, python3, gcc, writeText, writeScript, runCommand, makeBinaryWrapper }: let - env = { nativeBuildInputs = [ makeBinaryWrapper ]; }; + env = { buildInputs = [ makeBinaryWrapper ]; }; envCheck = runCommand "envcheck" env '' ${gcc}/bin/cc -Wall -Werror -Wpedantic -o $out ${./envcheck.c} ''; makeGoldenTest = testname: runCommand "test-wrapper_${testname}" env '' - mkdir -p /tmp/foo + mkdir -p ./tmp/foo params=$(<"${./.}/${testname}.cmdline") eval "makeCWrapper /send/me/flags $params" > wrapper.c diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index a2c3d02871e6..301afaac82ee 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -698,11 +698,21 @@ with pkgs; --replace " @CC@ " " ${cc}/bin/cc ${san} " ''; in - makeSetupHook { deps = [ dieHook ]; } script; + makeSetupHook { + deps = [ dieHook cc ]; + substitutions.passthru.tests = callPackage ../test/make-binary-wrapper { + makeBinaryWrapper = makeBinaryWrapper.override { + sanitizers = (if stdenv.isDarwin && stdenv.isAarch64 + then [ ] + else [ "undefined" "address" ] + ); + }; + }; + } script; in lib.makeOverridable f { - cc = stdenv.cc.cc; - sanitizers = [ "undefined" "address" ]; + cc = stdenv.cc; + sanitizers = [ ]; }; makeModulesClosure = { kernel, firmware, rootModules, allowMissing ? false }: