[lld] [LLD][COFF] Allow overriding EC alias symbols with lazy archive symbols (PR #113283)
Martin Storsjö via llvm-commits
llvm-commits at lists.llvm.org
Tue Oct 22 05:01:48 PDT 2024
================
@@ -455,11 +455,34 @@ void ObjFile::initializeSymbols() {
COFFSymbolRef coffSym = check(coffObj->getSymbol(i));
bool prevailingComdat;
if (coffSym.isUndefined()) {
- symbols[i] = createUndefined(coffSym);
+ symbols[i] = createUndefined(coffSym, false);
} else if (coffSym.isWeakExternal()) {
- symbols[i] = createUndefined(coffSym);
- weakAliases.emplace_back(symbols[i],
- coffSym.getAux<coff_aux_weak_external>());
+ auto aux = coffSym.getAux<coff_aux_weak_external>();
+ bool overrideLazy = true;
+
+ // On ARM64EC, external functions don't emit undefined symbols. Instead,
----------------
mstorsjo wrote:
Can you elaborate here and in the commit message, about what you mean about how external functions emit things. Outside of ARM64EC, where would external functions emit undefined symbols - do you mean when a calling function calls an external function? (Instinctively, the only thing I would expect a function to emit, would be a defined symbol?)
https://github.com/llvm/llvm-project/pull/113283
More information about the llvm-commits
mailing list