[llvm-branch-commits] [lld] ELF: Only rewrite non-preemptible IFUNCs to IPLT functions if a non-IRELATIVE relocation is needed. (PR #133531)
Peter Smith via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Fri Apr 11 02:49:02 PDT 2025
smithp35 wrote:
I had been assuming that this patch didn't change lld behaviour from the comment in handleNonPreemptibleIfunc()
I've had some time to build and run lld on my example with this change and I notice that with this change I'm seeing the dynamic symbol table use the ifunc resolver.
```
7: 0000000000210814 12 IFUNC GLOBAL DEFAULT 14 ifn
```
Whereas my old lld uses
```
7: 00000000002108d0 0 FUNC GLOBAL DEFAULT 18 ifn
```
So as you say this will work and the comparison will go through OK. With that in mind this might be part of the reason why 3 tests are failing (visible in the CI):
lld :: ELF/gnu-ifunc-canon.s
lld :: ELF/ppc32-ifunc-nonpreemptible-pic.s
lld :: ELF/ppc64-toc-relax-ifunc.s
The last one (ppc64...) looks to be crashing.
Will be good to update the comment in handleNonPreemptibleIfunc() https://github.com/llvm/llvm-project/blob/main/lld/ELF/Relocations.cpp#L1759
https://github.com/llvm/llvm-project/pull/133531
More information about the llvm-branch-commits
mailing list