[PATCH 1/7] powerpc/build: put sys_call_table in .data.rel.ro if RELOCATABLE

Michael Ellerman mpe at ellerman.id.au
Thu Sep 15 22:51:28 AEST 2022


Christophe Leroy <christophe.leroy at csgroup.eu> writes:
> 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") ?

That's in fixes. I'll sort it out when I apply this, or when I merge
fixes into next.

> I can't see any R_PPC_UADDR32 relocations generated by ppc4xx_defconfig 
> + CONFIG_RELOCATABLE unless I revert that commit.

Presumably this change accidentally aligns the syscall table.

>> After this patch, 44x_defconfig + CONFIG_RELOCATABLE boots to busybox.
 
So that's probably just because of the alignment too.

I think this patch should go after .data.rel.ro is made read only.

cheers


More information about the Linuxppc-dev mailing list