From 5b8db127a30f583c5437579c8a9412d07745f2b1 Mon Sep 17 00:00:00 2001 From: Hongtao Yu Date: Fri, 5 Feb 2021 17:56:45 -0800 Subject: [PATCH] [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 --- lld/ELF/DriverUtils.cpp | 3 +++ lld/test/ELF/reproduce-lto.s | 5 +++++ 2 files changed, 8 insertions(+) diff --git a/lld/ELF/DriverUtils.cpp b/lld/ELF/DriverUtils.cpp index fd649808c060..a3fc522c708c 100644 --- a/lld/ELF/DriverUtils.cpp +++ b/lld/ELF/DriverUtils.cpp @@ -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: diff --git a/lld/test/ELF/reproduce-lto.s b/lld/test/ELF/reproduce-lto.s index 36838f21388e..2e673fdcc32c 100644 --- a/lld/test/ELF/reproduce-lto.s +++ b/lld/test/ELF/reproduce-lto.s @@ -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