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 -- Best Regards Masahiro Yamada