[PATCH 0/2] aarch64: Fix issue causing out-of-range relocations
Richard Earnshaw
rearnsha@arm.com
Tue Jan 6 10:54:52 GMT 2026
We've been seeing reports that users are encoutering issues with
out-of-range relocation failures on aarch64 despite the linker having
code that is supposed to insert long-branch veneers for this
situation. Investigation suggests that it is related to the
mitigations used for one of the Cortex-a53 errata that is perturbing
the results of an earlier calculation and is in fact leading to the
veneer being too far from the original branch to be reachable.
The solution to this problem is to adjust the order in which we do the
calculations so that the problematic pass is run before we create the
veneer stub groups (the pass creates its own stubs and doesn't rely on
the stub groups).
This short series contains two patches. The first isn't strictly
necessary, but fixes a minor issue in the names of some symbols: we
try to look up the name of the target symbol, but sometimes that is
empty and we thus create a rather anonymous symbol for the stub as
well. This patch addresses this by using the section name for this
case.
The second patch is the main bug fix and is in fact less complicated
than the diff implies; it simply moves the pass that scans for erratum
843419 before the code that creates the section groups.
I'll hold off pushing this for a couple of days, just to allow others
to have a look at the change.
R.
Richard Earnshaw (2):
aarch64: Use section names for empty stub symbols
aarch64: Fix out-of-range branch veneers when --fix-cortex-a53-843419
bfd/elfnn-aarch64.c | 51 ++++++++++-------
ld/testsuite/ld-aarch64/farcall-b-section.d | 10 ++--
ld/testsuite/ld-aarch64/farcall-bl-section.d | 10 ++--
.../ld-aarch64/protections/bti-far-1.d | 18 +++---
.../ld-aarch64/protections/bti-far-2.d | 16 +++---
.../ld-aarch64/protections/bti-far-opt.d | 56 +++++++++----------
6 files changed, 85 insertions(+), 76 deletions(-)
--
2.43.0
More information about the Binutils
mailing list