[PATCH] aarch64: Fix PLT fixups when BTI is used [PR32572]
Richard Earnshaw (lists)
Richard.Earnshaw@arm.com
Fri Jan 24 15:00:18 GMT 2025
On 24/01/2025 08:31, Aurelien Jarno wrote:
> 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
>
Thanks for checking. I've now pushed this to master and the binutils-2.44 branch.
R.
More information about the Binutils
mailing list