[PATCH] D27035: [ELF][MIPS] Turn Config->Threads off for MIPS targets

Simon Atanasyan via llvm-commits llvm-commits at lists.llvm.org
Tue Nov 22 21:23:26 PST 2016


atanasyan created this revision.
atanasyan added a reviewer: ruiu.
atanasyan added a subscriber: llvm-commits.
atanasyan set the repository for this revision to rL LLVM.
atanasyan added a project: lld.

For now MipsGotSection class is not ready for concurrent access from multiple threads. The problem is in the getPageEntryOffset method. It changes state of MipsGotSection object and might be called from different threads at the same time. So turn Threads off for this target.

It's a temporary solution. The patch fixes MipsGotSection::getPageEntryOffset is almost ready.


Repository:
  rL LLVM

https://reviews.llvm.org/D27035

Files:
  ELF/Driver.cpp


Index: ELF/Driver.cpp
===================================================================
--- ELF/Driver.cpp
+++ ELF/Driver.cpp
@@ -509,6 +509,12 @@
   Config->Verbose = Args.hasArg(OPT_verbose);
   Config->WarnCommon = Args.hasArg(OPT_warn_common);
 
+  if (Config->Machine == EM_MIPS)
+    // For now MipsGotSection class is not ready for concurent access
+    // from multiple thread. The problem is in the getPageEntryOffset
+    // method. So turn Threads off for this target.
+    Config->Threads = false;
+
   Config->DynamicLinker = getString(Args, OPT_dynamic_linker);
   Config->Entry = getString(Args, OPT_entry);
   Config->Fini = getString(Args, OPT_fini, "_fini");


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D27035.79023.patch
Type: text/x-patch
Size: 679 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20161123/aa814525/attachment.bin>


More information about the llvm-commits mailing list