[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