diff options
| author | Alexandre Ganea <alexandre.ganea@ubisoft.com> | 2019-04-23 12:30:49 +0000 |
|---|---|---|
| committer | Alexandre Ganea <alexandre.ganea@ubisoft.com> | 2019-04-23 12:30:49 +0000 |
| commit | 2769d58628f948b55891a5b3c1073080415f6c17 (patch) | |
| tree | 1db04b17bd416035e432fd5614f73e485e358990 | |
| parent | 98c858a23be102964b6e61d58749c56bbe2dec5f (diff) | |
| download | bcm5719-llvm-2769d58628f948b55891a5b3c1073080415f6c17.tar.gz bcm5719-llvm-2769d58628f948b55891a5b3c1073080415f6c17.zip | |
[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
| -rw-r--r-- | lld/COFF/Driver.cpp | 5 | ||||
| -rw-r--r-- | lld/test/COFF/linkrepro-pdb.test | 15 |
2 files changed, 19 insertions, 1 deletions
diff --git a/lld/COFF/Driver.cpp b/lld/COFF/Driver.cpp index 92df6c839aa..96c9ba31324 100644 --- a/lld/COFF/Driver.cpp +++ b/lld/COFF/Driver.cpp @@ -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"; } diff --git a/lld/test/COFF/linkrepro-pdb.test b/lld/test/COFF/linkrepro-pdb.test index 33aa0bc4a90..f248c431458 100644 --- a/lld/test/COFF/linkrepro-pdb.test +++ b/lld/test/COFF/linkrepro-pdb.test @@ -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 |

