-
Type:
Task
-
Resolution: Fixed
-
Priority:
Major - P3
-
Affects Version/s: None
-
Component/s: Bazel
-
None
-
Build OnDeck
-
None
-
None
-
None
-
None
-
None
-
None
-
None
Windows cross compilation database entries need the build's container, toolchain environment, and path mapping to compile outside Bazel. Generate entries that invoke a host Python compiler wrapper, so running the recorded arguments from the recorded directory performs that setup automatically. Record writable output paths and persistent response files for commands that exceed Windows shell limits or contain shell-sensitive macro values.
The validator now invokes the recorded wrapper and uses its public `--output-dir` option for temporary outputs. Container startup and execution stay in the existing Windows persistent-container runner. The validator and its test are owned by the Build team.
Validation: all 34 tests across `//bazel/wrapper_hook:compiledb_windows_test`, `//bazel/wrapper_hook:compiledb_test`, and `//evergreen:validate_compile_commands_test` pass under Bazel on Linux ARM64; repository formatting passes. Tests execute generated commands through a shell and a fresh wrapper process, compile with real Clang, and cover macro escaping, long commands, environment setup, writable side outputs, and compiler exit codes. The test runner simulates container transport; end-to-end Windows container replay requires the later Windows toolchain/runner integration PRs, whose runner is not present in this branch.