[clang] [llvm] [Clang][LLVM] Disable NonLazyBind when pointer authentication is enabled (PR #188638)
Ahmed Bougacha via llvm-commits
llvm-commits at lists.llvm.org
Fri Mar 27 06:24:15 PDT 2026
ahmedbougacha wrote:
`__auth_got` is for the linker's `__auth_stubs`. The compiler uses `__DATA,__auth_ptr`, which is generally treated in similar ways at link-time and later. It obviates the need for the extra relocation, because the compiler can describe the signing scheme it wants using the same `@AUTH`. For several reasons, we now generally avoid using it, except for cases that don't have better alternatives (extern_weak materialization, mostly, and even then, there are several issues that need addressing.)
If one were to make nonlazybind use a signed pointer, that could be one way to do it. A better way would be something like LOADgotPAC, performing a call rather than a load, i.e., an atomic GOT-ADRP-LDR-BLR using x16 instead of a GPR.
But anyway, more to the point: what the toolchain indeed doesn't support is `-fno-plt`. Can you make it ignored for darwin targets? Would that be enough for your usage?
https://github.com/llvm/llvm-project/pull/188638
More information about the llvm-commits
mailing list