[PATCH] aarch64: Fix PLT fixups when BTI is used [PR32572]

Aurelien Jarno aurelien@aurel32.net
Fri Jan 24 08:31:31 GMT 2025


Hi,

On 2025-01-23 13:07, Richard Earnshaw wrote:
> PR ld/32572
> 
> There are two problems addressed in this PR.  Firstly, the choice of
> whether or not a PLT stub needs a BTI on entry was too strict,
> resulting in non-pie executables not having a BTI on their stub.  But
> secondly, the logic to handle each stub types did not agree across the
> various places where this information is used.
> 
> The first issue is fixed by using bfd_link_executable rather than
> bfd_link_pde.  The second is addressed by recording a delta for PLT
> stub alongside the stub itself.  This is then used without needing
> additional logic later on since it has been pre-calculated.
> 
> A more comprehensive fix would involve creating a data structure to
> describe each fixup, including a call-back function to apply any
> relocations.  But that's a fairly large change and not appropriate for
> backporting.
> ---
> 
> Yury has run this patch through the GLIBC testsuite and confirmed that
> it fixes all the failures there.
> 
> I'll wait 24hrs before applying, though in case anybody else has some
> comments.
> 
> R.
> 
>  bfd/elfnn-aarch64.c | 21 ++++++++++++++-------
>  1 file changed, 14 insertions(+), 7 deletions(-)

Thanks a lot for this patch. I have tested it, I have found no
regression on the binutils testsuite, and I confirm it fixes the two
glibc tests when it is built with -mbranch-protection=standard.

Regards,
Aurelien

-- 
Aurelien Jarno                          GPG: 4096R/1DDD8C9B
aurelien@aurel32.net                     http://aurel32.net


More information about the Binutils mailing list