forked from OSchip/llvm-project
[ELF] Strip directories for -Map when emitting reproducer rsp
Similarly to -o output directories will not be created so -Map being copied verbatim will likely cause ld.lld @response.txt to fail. Differential Revision: https://reviews.llvm.org/D130681
This commit is contained in:
parent
730cb82226
commit
7baf1db392
|
@ -169,11 +169,13 @@ std::string elf::createResponseFile(const opt::InputArgList &args) {
|
|||
os << quote(rewritePath(arg->getValue())) << "\n";
|
||||
break;
|
||||
case OPT_o:
|
||||
// If -o path contains directories, "lld @response.txt" will likely
|
||||
// fail because the archive we are creating doesn't contain empty
|
||||
case OPT_Map:
|
||||
// If an output path contains directories, "lld @response.txt" will
|
||||
// likely fail because the archive we are creating doesn't contain empty
|
||||
// directories for the output path (-o doesn't create directories).
|
||||
// Strip directories to prevent the issue.
|
||||
os << "-o " << quote(path::filename(arg->getValue())) << "\n";
|
||||
os << arg->getSpelling() << ' ' << quote(path::filename(arg->getValue()))
|
||||
<< "\n";
|
||||
break;
|
||||
case OPT_lto_sample_profile:
|
||||
os << arg->getSpelling() << quote(rewritePath(arg->getValue())) << "\n";
|
||||
|
|
|
@ -74,9 +74,10 @@
|
|||
## Check that directory path is stripped from -o <file-path>
|
||||
# RUN: mkdir -p %t.dir/build4/a/b/c
|
||||
# RUN: cd %t.dir
|
||||
# RUN: ld.lld build1/foo.o -o build4/a/b/c/bar -shared --as-needed --reproduce=repro4.tar
|
||||
# RUN: ld.lld build1/foo.o -o build4/a/b/c/bar -Map build4/a/b/c/map -shared --as-needed --reproduce=repro4.tar
|
||||
# RUN: tar xOf repro4.tar repro4/response.txt | FileCheck %s --check-prefix=RSP4
|
||||
# RSP4: -o bar
|
||||
# RSP4: -Map map
|
||||
|
||||
.globl _start
|
||||
_start:
|
||||
|
|
Loading…
Reference in New Issue