Pull in r322041 from upstream lld trunk (by Rui Ueyama):
Do not use parallelForEach to call maybeCompress(). Currently LLVM's paralellForEach has a problem with reentracy. That caused https://bugs.llvm.org/show_bug.cgi?id=35788 (lld somtimes hangs while linking Ruby 2.4) because maybeCompress calls writeTo which uses paralellForEach. This patch is to avoid using paralellForEach to call maybeCompress to workaround the issue. This should fix potential hangs when linking parts of ruby24.
This commit is contained in:
parent
53743bd4bb
commit
18a7633888
@ -432,8 +432,8 @@ template <class ELFT> void Writer<ELFT>::run() {
|
||||
// If -compressed-debug-sections is specified, we need to compress
|
||||
// .debug_* sections. Do it right now because it changes the size of
|
||||
// output sections.
|
||||
parallelForEach(OutputSections,
|
||||
[](OutputSection *Sec) { Sec->maybeCompress<ELFT>(); });
|
||||
for (OutputSection *Sec : OutputSections)
|
||||
Sec->maybeCompress<ELFT>();
|
||||
|
||||
Script->allocateHeaders(Phdrs);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user