[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