forked from OSchip/llvm-project
[LLD][COFF] Fix /linkrepro with output options that take a filename or path
The following options: /pdb, /out or /implib now emit in the repro.tar/response.txt only a filename stripped from its path, to avoid non-existent paths on the reproducer's machine. Differential Revision: https://reviews.llvm.org/D59530 llvm-svn: 358980
This commit is contained in:
parent
98c858a23b
commit
2769d58628
|
@ -551,6 +551,11 @@ static std::string createResponseFile(const opt::InputArgList &Args,
|
|||
case OPT_manifestinput:
|
||||
case OPT_manifestuac:
|
||||
break;
|
||||
case OPT_implib:
|
||||
case OPT_pdb:
|
||||
case OPT_out:
|
||||
OS << Arg->getSpelling() << sys::path::filename(Arg->getValue()) << "\n";
|
||||
break;
|
||||
default:
|
||||
OS << toString(*Arg) << "\n";
|
||||
}
|
||||
|
|
|
@ -4,6 +4,19 @@ RUN: rm -rf %t && mkdir -p %t && cd %t
|
|||
RUN: yaml2obj %S/Inputs/pdb-type-server-simple-a.yaml -o a.obj
|
||||
RUN: yaml2obj %S/Inputs/pdb-type-server-simple-b.yaml -o b.obj
|
||||
RUN: llvm-pdbutil yaml2pdb %S/Inputs/pdb-type-server-simple-ts.yaml -pdb ts.pdb
|
||||
RUN: lld-link a.obj b.obj -entry:main -debug -out:t.exe -pdb:t.pdb -nodefaultlib -linkrepro:.
|
||||
RUN: lld-link a.obj b.obj -entry:main -debug -out:%t.exe -pdb:%t.pdb -nodefaultlib -linkrepro:.
|
||||
RUN: tar xOf repro.tar repro/%:t/ts.pdb > repro-ts.pdb
|
||||
RUN: diff ts.pdb repro-ts.pdb
|
||||
|
||||
RUN: tar xf repro.tar
|
||||
RUN: cat repro/response.txt | FileCheck -check-prefix=PDB %s
|
||||
|
||||
PDB: -out:linkrepro-pdb.test.tmp.exe
|
||||
PDB-NEXT: -pdb:linkrepro-pdb.test.tmp.pdb
|
||||
|
||||
RUN: yaml2obj < %p/Inputs/export.yaml > %t1.obj
|
||||
RUN: lld-link /out:%t1.dll /dll %t1.obj /implib:%t1.lib /export:exportfn1 /export:exportfn2 /linkrepro:.
|
||||
RUN: tar xf repro.tar
|
||||
RUN: cat repro/response.txt | FileCheck -check-prefix=IMP %s
|
||||
|
||||
IMP: /implib:linkrepro-pdb.test.tmp1.lib
|
||||
|
|
Loading…
Reference in New Issue