Make dependency files deterministic #11818
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The dependency file generated by Clang can sometimes contain absolute
paths to system headers, system modules and files generated by Bazel
during the build. These paths can defer between machines and between
Bazel instances, for example:
This patch adds a post-process to wrapped_clang to normalize those paths
by:
the execution root
use the standard location of Xcode (
/Applications/Xcode.app
). Theuser doesn't need to have Xcode installed to this location as Bazel are
already mapping them to the correct location locally.
This makes the produced
.d
files deterministic and can reliably beshared with the remote cache.
Fixes #11817.