[lld][WebAssembly] Ignore local symbols when parsing lazy object files. (#104876)

This was broken back in #78658 when we transitioned away from archive
indexes to parsing lazy object files.

Fixes: #94077
Fixes: https://github.com/emscripten-core/emscripten/issues/22008
This commit is contained in:
Sam Clegg
2024-08-19 21:51:40 -07:00
committed by GitHub
parent ca148b2150
commit 5403123197
2 changed files with 25 additions and 1 deletions

View File

@@ -392,7 +392,7 @@ void ObjFile::parseLazy() {
<< wasmObj.get() << "\n");
for (const SymbolRef &sym : wasmObj->symbols()) {
const WasmSymbol &wasmSym = wasmObj->getWasmSymbol(sym.getRawDataRefImpl());
if (!wasmSym.isDefined())
if (wasmSym.isUndefined() || wasmSym.isBindingLocal())
continue;
symtab->addLazy(wasmSym.Info.Name, this);
// addLazy() may trigger this->extract() if an existing symbol is an