[PATCH] D143039: [AArch64] Unconditionally use DW_EH_PE_indirect|DW_EH_PE_pcrel personality/lsda/ttype encodings

Fangrui Song via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sat Feb 4 12:09:57 PST 2023


MaskRay added a comment.

In D143039#4104375 <https://reviews.llvm.org/D143039#4104375>, @lhames wrote:

>   JIT session error: Symbols not found: [ DW.ref.__gxx_personality_v0 ]
>
> If I hand-compile source for the failing `simple-execution.cpp` testcase on Darwin with `clang --target=arm64-pc-linux-gnu -fno-pic -S` I see new references to `DW.ref.__gxx_personality_v0`, but I also see a definition:
>
>           .hidden DW.ref.__gxx_personality_v0
>           .weak   DW.ref.__gxx_personality_v0
>           .section        .data.DW.ref.__gxx_personality_v0,"aGw", at progbits,DW.ref.__gxx_personality_v0,comdat
>           .p2align        3, 0x0
>           .type   DW.ref.__gxx_personality_v0, at object
>           .size   DW.ref.__gxx_personality_v0, 8
>   DW.ref.__gxx_personality_v0:
>           .xword  __gxx_personality_v0
>
> My best guess is that the JIT linker is dropping this. I'm just doing a Linux build now so that I can figure out what's going wrong.

I suspect that 43acef48d38ec0dd391f212144d4a25095e4fc5f <https://reviews.llvm.org/rG43acef48d38ec0dd391f212144d4a25095e4fc5f> has incomplete support.

`rg DW_EH_PE_indirect llvm/lib/ExecutionEngine` has no occurrence while I think it should. `libunwind/src/AddressSpace.hpp:352` describes how `DW_EH_PE_indirect` works.

For `llvm/test/ExecutionEngine/JITLink/X86/ELF_ehframe_large_static_personality_encodings.s`, I think `.cfi_personality 0, __gxx_personality_v0` and `.cfi_personality 156, DW.ref.__gxx_personality_v0` should be in separate tests to show that `.cfi_personality 156, DW.ref.__gxx_personality_v0` is correctly handled.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D143039/new/

https://reviews.llvm.org/D143039



More information about the llvm-commits mailing list