[PATCH] D133452: [ORC] Fix auto-claim of weak defs in ObjectLinkingLayer
Jonas Hahnfeld via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Sun Oct 23 12:33:45 PDT 2022
Hahnfeld added a comment.
And sure enough,
diff
diff --git a/llvm/lib/ExecutionEngine/Orc/ObjectLinkingLayer.cpp b/llvm/lib/ExecutionEngine/Orc/ObjectLinkingLayer.cpp
index 7b4da052ed36..e79dd2e5e74c 100644
--- a/llvm/lib/ExecutionEngine/Orc/ObjectLinkingLayer.cpp
+++ b/llvm/lib/ExecutionEngine/Orc/ObjectLinkingLayer.cpp
@@ -426,7 +426,7 @@ private:
std::vector<std::pair<SymbolStringPtr, Symbol *>> NameToSym;
auto ProcessSymbol = [&](Symbol *Sym) {
- if (Sym->hasName() && Sym->getLinkage() == Linkage::Weak &&
+ if (Sym->isLive() && Sym->hasName() && Sym->getLinkage() == Linkage::Weak &&
Sym->getScope() != Scope::Local) {
auto Name = ES.intern(Sym->getName());
if (!MR->getSymbols().count(ES.intern(Sym->getName()))) {
seems to fix it. However, then I get crashes on x86_64 for `lli -jit-linker=jitlink --relocation-model=pic catch.ll`:
JIT session error: In catch.ll-jitted-objectbuffer, encountered duplicate section ".group" while building debug object
JIT session error: Unexpected definitions in module catch.ll-jitted-objectbuffer: [ DW.ref.__gxx_personality_v0 ]
./bin/lli: Failed to materialize symbols: { (main, { __clang_call_terminate, main }) }
The first error about duplicate sections is there even without the change, but I can't remember it from September. Is that something recent?
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D133452/new/
https://reviews.llvm.org/D133452
More information about the llvm-commits
mailing list