[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