On Sat, Aug 20, 2022 at 11:15 PM Christophe Leroy <christophe.leroy@xxxxxxxxxx> wrote: > > > > 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 I posted a patch (although I believe my commit is innocent). https://lore.kernel.org/lkml/20220820165129.1147589-1-masahiroy@xxxxxxxxxx/T/#u The relocs_check.sh warnings are gone. Please do a boot test. Thanks. -- Best Regards Masahiro Yamada