summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAmit Machhiwal <amachhiw@linux.ibm.com>2026-05-25 21:46:01 +0530
committerMadhavan Srinivasan <maddy@linux.ibm.com>2026-06-15 16:24:07 +0530
commit97f902dd4c99f8d085da5343dc58ae4f6ce7bdd9 (patch)
treeead0ac7ec3c00cc45ba228dfa972658926c1f194
parent90b45dbf59d50e32c4f86072545ff44bec9cb28e (diff)
powerpc/boot: Allow text relocations for pseries wrapper with binutils 2.46+
Binutils 2.46 changed the default linker behavior from '-z notext' to '-z text', which treats dynamic relocations in read-only segments as errors rather than warnings. This causes the pseries boot wrapper build to fail with: /usr/bin/ld.bfd: arch/powerpc/boot/wrapper.a(crt0.o): warning: relocation against `_platform_stack_top' in read-only section `.text' /usr/bin/ld.bfd: error: read-only segment has dynamic relocations The pseries wrapper uses '-pie' to create position-independent code. However, crt0.S contains a pointer to '_platform_stack_top' in the .text section, which requires a dynamic relocation at runtime. This creates DT_TEXTREL (text relocations), which were allowed by default in binutils 2.45 and earlier (via implicit '-z notext') but are now rejected by binutils 2.46+. Add '-z notext' linker flag to explicitly allow text relocations for the pseries platform, similar to what is already done for the epapr platform. This restores the previous behavior and allows the boot wrapper to build successfully with binutils 2.46+. Signed-off-by: Amit Machhiwal <amachhiw@linux.ibm.com> Tested-by: Anushree Mathur <anushree.mathur@linux.ibm.com> Signed-off-by: Madhavan Srinivasan <maddy@linux.ibm.com> Link: https://patch.msgid.link/20260525161601.32097-1-amachhiw@linux.ibm.com
-rwxr-xr-xarch/powerpc/boot/wrapper1
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/powerpc/boot/wrapper b/arch/powerpc/boot/wrapper
index 1efd1206fcab..25321ce262e8 100755
--- a/arch/powerpc/boot/wrapper
+++ b/arch/powerpc/boot/wrapper
@@ -262,6 +262,7 @@ pseries)
if [ "$format" != "elf32ppc" ]; then
link_address=
pie=-pie
+ notext='-z notext'
fi
make_space=n
;;