Skip to content

Commit

Permalink
[gn build] Use build-machine-independent paths in coverage information
Browse files Browse the repository at this point in the history
This is possible after D106314 / 8773822.

Makes the required prepare-code-coverage-artifact.py invocation a bit longer,
but that seems like a good tradeoff.

Differential Revision: https://reviews.llvm.org/D113282
  • Loading branch information
nico committed Nov 5, 2021
1 parent 2672094 commit 565cbc2
Showing 1 changed file with 6 additions and 9 deletions.
15 changes: 6 additions & 9 deletions llvm/utils/gn/build/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,8 @@ import("//llvm/utils/gn/build/toolchain/target_flags.gni")
declare_args() {
# Whether to build everything with coverage information.
# After building with this, run tests and then run
# llvm/utils/prepare-code-coverage-artifact.py \
# llvm/utils/prepare-code-coverage-artifact.py \
# --compilation-dir=out/gn \
# .../llvm-profdata .../llvm-cov out/gn/profiles/ report/ \
# out/gn/bin/llvm-undname ...
# to generate a HTML report for the binaries passed in the last line.
Expand Down Expand Up @@ -226,6 +227,10 @@ config("compiler_defaults") {
cflags += [
"-fcoverage-mapping",

# For build determinism. Using this requires passing --compilation-dir to
# llvm/utils/prepare-code-coverage-artifact.py.
"-fcoverage-compilation-dir=.",

# Using an absolute path here is lame, but it's used at test execution
# time to generate the profiles, and lit doesn't specify a fixed folder
# for test execution -- so this is the only way to get all profiles into
Expand All @@ -234,14 +239,6 @@ config("compiler_defaults") {
"-fprofile-instr-generate=" +
rebase_path("$root_build_dir/profiles/%4m.profraw"),
]
if (use_goma) {
# goma has a bug where it writes the server-side absolute path.
# Work around that.
# FIXME: Instead, set this to `.` for deterministic builds and pass
# the build dir to prepare-code-coverage-artifact.py instead.
cflags += [ "-fcoverage-compilation-dir=" + rebase_path(root_build_dir) ]
}

if (host_os != "win") {
ldflags += [ "-fprofile-instr-generate" ]
}
Expand Down

0 comments on commit 565cbc2

Please sign in to comment.