Re: Build/boot problem with 7b4537199a4a (Re: [PATCH v6 02/10] kbuild: link symbol CRCs at final link, removing CONFIG_MODULE_REL_CRCS)
From: Christophe Leroy <hidden>
Date: 2022-08-20 14:10:30
Also in:
linux-kbuild, linux-modules, lkml, llvm
Le 20/08/2022 à 14:05, Sedat Dilek a écrit :
On Sat, Aug 20, 2022 at 12:04 PM Christophe Leroy [off-list ref] wrote:quoted
Hi, Le 13/05/2022 à 13:39, Masahiro Yamada a écrit :quoted
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@kernel.org> Tested-by: Nathan Chancellor <nathan@kernel.org> Tested-by: Nicolas Schier <redacted> Reviewed-by: Nicolas Schier <redacted>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")What you are looking for is... commit 7d13fd96df875a9d786ee6dcc8fec460d35d4b12 ("modpost: fix module versioning when a symbol lacks valid CRC") It's pending in kbuild.git#fixes. -Sedat- [1] https://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild.git/commit/?h=fixes&id=7d13fd96df875a9d786ee6dcc8fec460d35d4b12 [2] https://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild.git/log/?h=fixes
That patch doesn't fix the problem. Christophe