diff --git a/llvm/utils/gn/build/BUILD.gn b/llvm/utils/gn/build/BUILD.gn --- a/llvm/utils/gn/build/BUILD.gn +++ b/llvm/utils/gn/build/BUILD.gn @@ -7,7 +7,8 @@ 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. @@ -226,6 +227,10 @@ 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 @@ -234,14 +239,6 @@ "-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" ] }