diff --git a/lld/ELF/Writer.cpp b/lld/ELF/Writer.cpp index 848db1f04b422..69fcad390d614 100644 --- a/lld/ELF/Writer.cpp +++ b/lld/ELF/Writer.cpp @@ -1890,9 +1890,11 @@ template void Writer::finalizeSections() { finalizeSynthetic(part.ehFrame.get()); } - if (config->hasDynSymTab) - for (Symbol *sym : symtab->symbols()) + if (config->hasDynSymTab) { + parallelForEach(symtab->symbols(), [](Symbol *sym) { sym->isPreemptible = computeIsPreemptible(*sym); + }); + } // Change values of linker-script-defined symbols from placeholders (assigned // by declareSymbols) to actual definitions.