diff --git a/pkgs/build-support/cc-wrapper/cc-wrapper.sh b/pkgs/build-support/cc-wrapper/cc-wrapper.sh index b8d170df01b73..5da5a51dffdd4 100644 --- a/pkgs/build-support/cc-wrapper/cc-wrapper.sh +++ b/pkgs/build-support/cc-wrapper/cc-wrapper.sh @@ -236,6 +236,12 @@ if (( "${NIX_DEBUG:-0}" >= 1 )); then printf " %q\n" ${extraAfter+"${extraAfter[@]}"} >&2 fi +# Uses mktemp so should be done before PATH is restored +if (( "${NIX_CC_USE_RESPONSE_FILE:-@use_response_file_by_default@}" >= 1 )); then + responseFile=$(mktemp "${TMPDIR:-/tmp}/cc-params.XXXXXX") + trap 'rm -f -- "$responseFile"' EXIT +fi + PATH="$path_backup" # Old bash workaround, see above. @@ -246,8 +252,6 @@ if [[ -e @out@/nix-support/cc-wrapper-hook ]]; then fi if (( "${NIX_CC_USE_RESPONSE_FILE:-@use_response_file_by_default@}" >= 1 )); then - responseFile=$(mktemp "${TMPDIR:-/tmp}/cc-params.XXXXXX") - trap 'rm -f -- "$responseFile"' EXIT printf "%q\n" \ ${extraBefore+"${extraBefore[@]}"} \ ${params+"${params[@]}"} \ diff --git a/pkgs/test/cc-wrapper/default.nix b/pkgs/test/cc-wrapper/default.nix index 6a0b11a6cc974..847150e61f463 100644 --- a/pkgs/test/cc-wrapper/default.nix +++ b/pkgs/test/cc-wrapper/default.nix @@ -23,6 +23,9 @@ in stdenv.mkDerivation { NIX_DEBUG=1 $CC -v NIX_DEBUG=1 $CXX -v + echo "checking if cc-wrapper works with an empty \$PATH... " >&2 + env - $NIX_CC/bin/$CC --version + echo "checking whether compiler builds valid C binaries... " >&2 $CC -o cc-check ${./cc-main.c} ${emulator} ./cc-check