Re: [PATCH 1/7] powerpc/build: put sys_call_table in .data.rel.ro if RELOCATABLE
From: Christophe Leroy <hidden>
Date: 2022-09-15 05:54:47
Le 14/09/2022 à 17:47, Nicholas Piggin a écrit :
Const function pointers live in .data.rel.ro rather than .rodata because they must be relocated. This change prevents powerpc/32 from generating R_PPC_UADDR32 relocations (which are not handled). The sys_call_table is moved to writeable memory, but a later change will move it back.
Aren't you missing commit c7acee3d2f12 ("powerpc: align syscall table
for ppc32") ?
I can't see any R_PPC_UADDR32 relocations generated by ppc4xx_defconfig
+ CONFIG_RELOCATABLE unless I revert that commit.
quoted hunk ↗ jump to hunk
After this patch, 44x_defconfig + CONFIG_RELOCATABLE boots to busybox. Signed-off-by: Nicholas Piggin <npiggin@gmail.com> --- arch/powerpc/kernel/systbl.S | 4 ++++ 1 file changed, 4 insertions(+)diff --git a/arch/powerpc/kernel/systbl.S b/arch/powerpc/kernel/systbl.S index cb3358886203..0bec33e86f50 100644 --- a/arch/powerpc/kernel/systbl.S +++ b/arch/powerpc/kernel/systbl.S@@ -12,7 +12,11 @@ #include <asm/ppc_asm.h> +#ifdef CONFIG_RELOCATABLE +.section .data.rel.ro,"aw" +#else .section .rodata,"a" +#endif #ifdef CONFIG_PPC64 .p2align 3