[ELF] Rewriting the path of sample profile file for --reproduce response.txt

Rewritting the path of the sample profile file in response.txt to be relative to the repro tar.

Reviewed By: MaskRay

Differential Revision: https://reviews.llvm.org/D96193
This commit is contained in:
Hongtao Yu 2021-02-05 17:56:45 -08:00
parent 88d7876e1e
commit 5b8db127a3
2 changed files with 8 additions and 0 deletions

View file

@ -186,6 +186,9 @@ std::string elf::createResponseFile(const opt::InputArgList &args) {
// Strip directories to prevent the issue.
os << "-o " << quote(path::filename(arg->getValue())) << "\n";
break;
case OPT_lto_sample_profile:
os << arg->getSpelling() << quote(rewritePath(arg->getValue())) << "\n";
break;
case OPT_call_graph_ordering_file:
case OPT_dynamic_list:
case OPT_just_symbols:

View file

@ -10,8 +10,13 @@
# RUN: cd %t.dir
# RUN: ld.lld build1/foo.o -o /dev/null --reproduce repro1.tar --lto-sample-profile=%t.dir/build1/empty_profile.txt
# RUN: tar tvf repro1.tar | FileCheck %s --implicit-check-not={{.}}
# RUN: tar xvf repro1.tar &> %t2
# RUN: cat repro1/response.txt >> %t2
# RUN: FileCheck %s --check-prefix=RSP < %t2
# CHECK-DAG: {{.*}} repro1/{{.*}}/empty_profile.txt
# CHECK-DAG: {{.*}} repro1/response.txt
# CHECK-DAG: {{.*}} repro1/version.txt
# CHECK-DAG: {{.*}} repro1/{{.*}}/foo.o
# RSP: repro1/[[PATH:.*]]/empty_profile.txt
# RSP: --lto-sample-profile=[[PATH]]/empty_profile.txt