forked from OSchip/llvm-project
[coff] use newlines instead of spaces as separators in msvclto response file
Summary: Fixes PR32689: /msvclto creates response files with lines that are too long for msvc's linker (LNK1170). Reviewers: hans, rnk, ruiu Subscribers: llvm-commits, mehdi_amini Differential Revision: https://reviews.llvm.org/D32185 llvm-svn: 300612
This commit is contained in:
parent
34e485f922
commit
630d0c0f44
|
@ -509,7 +509,7 @@ filterBitcodeFiles(StringRef Path, std::vector<std::string> &TemporaryFiles) {
|
|||
|
||||
// Create response file contents and invoke the MSVC linker.
|
||||
void LinkerDriver::invokeMSVC(opt::InputArgList &Args) {
|
||||
std::string Rsp = "/nologo ";
|
||||
std::string Rsp = "/nologo\n";
|
||||
std::vector<std::string> Temps;
|
||||
|
||||
for (auto *Arg : Args) {
|
||||
|
@ -528,14 +528,14 @@ void LinkerDriver::invokeMSVC(opt::InputArgList &Args) {
|
|||
case OPT_INPUT: {
|
||||
if (Optional<StringRef> Path = doFindFile(Arg->getValue())) {
|
||||
if (Optional<std::string> S = filterBitcodeFiles(*Path, Temps))
|
||||
Rsp += quote(*S) + " ";
|
||||
Rsp += quote(*S) + "\n";
|
||||
continue;
|
||||
}
|
||||
Rsp += quote(Arg->getValue()) + " ";
|
||||
Rsp += quote(Arg->getValue()) + "\n";
|
||||
break;
|
||||
}
|
||||
default:
|
||||
Rsp += toString(Arg) + " ";
|
||||
Rsp += toString(Arg) + "\n";
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -634,7 +634,7 @@ void runMSVCLinker(std::string Rsp, ArrayRef<StringRef> Objects) {
|
|||
std::vector<TemporaryFile> Temps;
|
||||
for (StringRef S : Objects) {
|
||||
Temps.emplace_back("lto", "obj", S);
|
||||
Rsp += quote(Temps.back().Path) + " ";
|
||||
Rsp += quote(Temps.back().Path) + "\n";
|
||||
}
|
||||
|
||||
log("link.exe " + Rsp);
|
||||
|
|
Loading…
Reference in New Issue