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.
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
"-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" ]
}