[ELF] Rewriting the path of sample profile file for --reproduce response.txt
authorHongtao Yu <hoy@fb.com>
Sat, 6 Feb 2021 01:56:45 +0000 (17:56 -0800)
committerHongtao Yu <hoy@fb.com>
Tue, 9 Feb 2021 08:00:16 +0000 (00:00 -0800)
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

lld/ELF/DriverUtils.cpp
lld/test/ELF/reproduce-lto.s

index fd64980..a3fc522 100644 (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:
index 36838f2..2e673fd 100644 (file)
 # 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