diff --git a/src/codechecker_script.py b/src/codechecker_script.py index cde29ca0..521532d3 100644 --- a/src/codechecker_script.py +++ b/src/codechecker_script.py @@ -194,7 +194,10 @@ def analyze(): codechecker_env = dict(item.split("=", 1) for item in env_list) env.update(codechecker_env) if "PATH" not in env: - env["PATH"] = "/bin" # NOTE: this is workaround for CodeChecker 6.24.4 + # NOTE: this is workaround for CodeChecker + # CodeChecker never actually uses the PATH, it just + # have to be set to something. + env["PATH"] = "/" env["CC_ANALYZER_BIN"] = generate_analyzer_executables() logging.debug("env: %s", str(env)) diff --git a/src/per_file.bzl b/src/per_file.bzl index 339a1623..f90ef982 100644 --- a/src/per_file.bzl +++ b/src/per_file.bzl @@ -115,7 +115,7 @@ def _run_code_checker( analyzer_executables, ], mnemonic = "CodeChecker", - use_default_shell_env = True, + use_default_shell_env = False, progress_message = "CodeChecker analyze {}".format(src.short_path), ) return outputs diff --git a/src/per_file_script.py b/src/per_file_script.py index affa4c7d..4bb3961c 100644 --- a/src/per_file_script.py +++ b/src/per_file_script.py @@ -95,6 +95,11 @@ def _get_codechecker_env() -> dict[str, str]: Returns the environment for running CodeChecker """ cc_env = os.environ.copy() + if "PATH" not in cc_env: + # NOTE: this is workaround for CodeChecker + # CodeChecker never actually uses the PATH, it just + # have to be set to something. + cc_env["PATH"] = "/" # Overwrite analyzer paths cc_env["CC_ANALYZER_BIN"] = ANALYZER_EXECUTABLES_ENV_VAR return cc_env