Le 20/08/2022 à 14:51, Masahiro Yamada a écrit : > On Sat, Aug 20, 2022 at 7:02 PM Christophe Leroy > <christophe.leroy@xxxxxxxxxx> wrote: >> >> Hi, >> >> Le 13/05/2022 à 13:39, Masahiro Yamada a écrit : >>> include/{linux,asm-generic}/export.h defines a weak symbol, __crc_* >>> as a placeholder. >>> >>> Genksyms writes the version CRCs into the linker script, which will be >>> used for filling the __crc_* symbols. The linker script format depends >>> on CONFIG_MODULE_REL_CRCS. If it is enabled, __crc_* holds the offset >>> to the reference of CRC. >>> >>> It is time to get rid of this complexity. >>> >>> Now that modpost parses text files (.*.cmd) to collect all the CRCs, >>> it can generate C code that will be linked to the vmlinux or modules. >>> >>> Generate a new C file, .vmlinux.export.c, which contains the CRCs of >>> symbols exported by vmlinux. It is compiled and linked to vmlinux in >>> scripts/link-vmlinux.sh. >>> >>> Put the CRCs of symbols exported by modules into the existing *.mod.c >>> files. No additional build step is needed for modules. As before, >>> *.mod.c are compiled and linked to *.ko in scripts/Makefile.modfinal. >>> >>> No linker magic is used here. The new C implementation works in the >>> same way, whether CONFIG_RELOCATABLE is enabled or not. >>> CONFIG_MODULE_REL_CRCS is no longer needed. >>> >>> Previously, Kbuild invoked additional $(LD) to update the CRCs in >>> objects, but this step is unneeded too. >>> >>> Signed-off-by: Masahiro Yamada <masahiroy@xxxxxxxxxx> >>> Tested-by: Nathan Chancellor <nathan@xxxxxxxxxx> >>> Tested-by: Nicolas Schier <nicolas@xxxxxxxxx> >>> Reviewed-by: Nicolas Schier <nicolas@xxxxxxxxx> >> >> Problem with v6.0-rc1 >> Problem with v5.19 >> No problem with v5.18 >> >> Bisected to 7b4537199a4a ("kbuild: link symbol CRCs at final link, >> removing CONFIG_MODULE_REL_CRCS") >> >> The above patch leads to the following problem building >> mpc85xx_defconfig + CONFIG_RELOCATABLE > > > > Is this because the relocation implementation on ppc is incomplete? > (and is it the reason why relock_check.sh exists?) > > arch/powerpc/kernel/reloc_32.S does not support R_PPC_UADDR32 > > Might be the reason. Is it expected that your patch adds an unsupported relocation ? Why was that relocation type unneeded before ? Thanks Christophe