diff options
author | Rui Ueyama <ruiu@google.com> | 2015-02-12 20:33:40 +0000 |
---|---|---|
committer | Rui Ueyama <ruiu@google.com> | 2015-02-12 20:33:40 +0000 |
commit | 3c3c7d8911f561ae890bb9436555235afd1531d6 (patch) | |
tree | 7b6f6283428ae07917d8afc47ff48660756a1522 /lld/lib/Driver/WinLinkDriver.cpp | |
parent | 443c7967eacb73b22805bab12e45475ec15feeef (diff) | |
download | bcm5719-llvm-3c3c7d8911f561ae890bb9436555235afd1531d6.tar.gz bcm5719-llvm-3c3c7d8911f561ae890bb9436555235afd1531d6.zip |
PECOFF: Don't parse files in .drectve asynchronously.
Looks like there's a race condition around here that caused LLD to crash
on Windows. Currently we are parsing libraries specified by .drectve section
asynchronously, and something is wrong in that process. Disable the feature
for now to make buildbots happy.
llvm-svn: 228955
Diffstat (limited to 'lld/lib/Driver/WinLinkDriver.cpp')
-rw-r--r-- | lld/lib/Driver/WinLinkDriver.cpp | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/lld/lib/Driver/WinLinkDriver.cpp b/lld/lib/Driver/WinLinkDriver.cpp index b29d2350d0d..de6b926f89b 100644 --- a/lld/lib/Driver/WinLinkDriver.cpp +++ b/lld/lib/Driver/WinLinkDriver.cpp @@ -1348,10 +1348,8 @@ bool WinLinkDriver::parse(int argc, const char *argv[], // Add the input files to the linking context. for (std::unique_ptr<File> &file : files) { - if (isReadingDirectiveSection) { - File *f = file.get(); - ctx.getTaskGroup().spawn([f] { f->parse(); }); - } + if (isReadingDirectiveSection) + file.get()->parse(); ctx.getNodes().push_back(llvm::make_unique<FileNode>(std::move(file))); } @@ -1364,10 +1362,8 @@ bool WinLinkDriver::parse(int argc, const char *argv[], // Add the library files to the library group. for (std::unique_ptr<File> &file : libraries) { if (!hasLibrary(ctx, file.get())) { - if (isReadingDirectiveSection) { - File *f = file.get(); - ctx.getTaskGroup().spawn([f] { f->parse(); }); - } + if (isReadingDirectiveSection) + file.get()->parse(); ctx.addLibraryFile(llvm::make_unique<FileNode>(std::move(file))); } } |