[lld] [LLD][COFF] Add EC alias symbols for undefined x86_64 symbols on ARM64EC target (PR #114466)
Jacek Caban via llvm-commits
llvm-commits at lists.llvm.org
Mon Nov 4 07:26:55 PST 2024
================
@@ -534,7 +534,22 @@ void ObjFile::initializeSymbols() {
Symbol *ObjFile::createUndefined(COFFSymbolRef sym, bool overrideLazy) {
StringRef name = check(coffObj->getSymbolName(sym));
- return ctx.symtab.addUndefined(name, this, overrideLazy);
+ Symbol *s = ctx.symtab.addUndefined(name, this, overrideLazy);
+
+ // Add an anti-dependency alias for undefined AMD64 symbols on the ARM64EC
+ // target.
+ if (isArm64EC(ctx.config.machine) && getMachineType() == AMD64) {
+ auto u = dyn_cast<Undefined>(s);
+ if (u && !u->weakAlias) {
+ if (std::optional<std::string> mangledName =
+ getArm64ECMangledFunctionName(name)) {
+ Symbol *m =
+ ctx.symtab.addUndefined(saver().save(*mangledName), this, false);
----------------
cjacek wrote:
I added those comments and merged, thanks.
https://github.com/llvm/llvm-project/pull/114466
More information about the llvm-commits
mailing list