[lld] [LLD][COFF] Do another pass of resolveRemainingUndefines for undefined lazy symbols (PR #109082)

Martin Storsjö via llvm-commits llvm-commits at lists.llvm.org
Wed Sep 18 00:17:10 PDT 2024


================
@@ -2601,7 +2601,10 @@ void LinkerDriver::linkerMain(ArrayRef<const char *> argsArr) {
     createECExportThunks();
 
   // Resolve remaining undefined symbols and warn about imported locals.
-  ctx.symtab.resolveRemainingUndefines();
+  if (ctx.symtab.resolveRemainingUndefines()) {
+    run();
+    ctx.symtab.resolveRemainingUndefines();
----------------
mstorsjo wrote:

I'm pondering whether it would make sense to convert it into a loop,
```
while (ctx.symtab.resolveRemainingUndefines())
  run();
```
That has some charm of genericity to it - but also looks more prone to potentially hang (even though that really shouldn't happen). I don't have a very strong opinion on it either way though.

https://github.com/llvm/llvm-project/pull/109082


More information about the llvm-commits mailing list