Re: [PATCH 1/7] powerpc/build: put sys_call_table in .data.rel.ro if RELOCATABLE
From: "Nicholas Piggin" <npiggin@gmail.com>
Date: 2022-09-16 00:31:08
On Thu Sep 15, 2022 at 10:51 PM AEST, Michael Ellerman wrote:
Christophe Leroy [off-list ref] writes:quoted
Le 14/09/2022 à 17:47, Nicholas Piggin a écrit :quoted
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.
Yeah that explains the relocations I was seeing, I should have dug further into that, so they're really unrelated to this patch.
quoted
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.quoted
quoted
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.
Yeah that should be fine. Thanks, Nick