Masahiro Yamada <masahiroy@xxxxxxxxxx> writes: > On Thu, Aug 25, 2022 at 4:53 PM Michael Ellerman <mpe@xxxxxxxxxxxxxx> wrote: >> >> Masahiro Yamada <masahiroy@xxxxxxxxxx> writes: >> > Christophe Leroy reported that commit 7b4537199a4a ("kbuild: link >> > symbol CRCs at final link, removing CONFIG_MODULE_REL_CRCS") broke >> > mpc85xx_defconfig + CONFIG_RELOCATABLE=y. >> > >> > LD vmlinux >> > SYSMAP System.map >> > SORTTAB vmlinux >> > CHKREL vmlinux >> > WARNING: 451 bad relocations >> > c0b312a9 R_PPC_UADDR32 .head.text-0x3ff9ed54 >> > c0b312ad R_PPC_UADDR32 .head.text-0x3ffac224 >> > c0b312b1 R_PPC_UADDR32 .head.text-0x3ffb09f4 >> > c0b312b5 R_PPC_UADDR32 .head.text-0x3fe184dc >> > c0b312b9 R_PPC_UADDR32 .head.text-0x3fe183a8 >> > ... >> > >> > The compiler emits a bunch of R_PPC_UADDR32, which is not supported by >> > arch/powerpc/kernel/reloc_32.S. >> > >> > The reason is there exists an unaligned symbol. >> > >> > $ powerpc-linux-gnu-nm -n vmlinux >> > ... >> > c0b31258 d spe_aligninfo >> > c0b31298 d __func__.0 >> > c0b312a9 D sys_call_table >> > c0b319b8 d __func__.0 >> > >> > Commit 7b4537199a4a is not the root cause. Even before that, I can >> > reproduce the same issue for mpc85xx_defconfig + CONFIG_RELOCATABLE=y >> > + CONFIG_MODVERSIONS=n. >> > >> > It is just that nobody did not notice it because when CONFIG_MODVERSIONS > > I wrote weird English (double negation) > > nobody did not notice --> nobody noticed > > Please fix it if you have not yet. Yeah I did fix it up when applying :) It is just that nobody noticed because when CONFIG_MODVERSIONS is enabled, a __crc_* symbol inserted before sys_call_table was hiding the unalignment issue. cheers