[PATCH v4 00/14] kbuild: yet another series of cleanups (modpost, LTO, MODULE_REL_CRCS, export.h)

Masahiro Yamada
2022-05-08T19:18:39Z

This is the third batch of cleanups in this development cycle.

Major changes in v4:
- Move static EXPORT_SYMBOL check to a script
- Some refactoring

Major changes in v3:

- Generate symbol CRCs as C code, and remove CONFIG_MODULE_REL_CRCS.

Major changes in v2:

- V1 did not work with CONFIG_MODULE_REL_CRCS.
I fixed this for v2.

- Reflect some review comments in v1

- Refactor the code more

- Avoid too long argument error

Masahiro Yamada (14):
modpost: remove left-over cross_compile declaration
modpost: change the license of EXPORT_SYMBOL to bool type
modpost: split the section mismatch checks into section-check.c
modpost: add sym_find_with_module() helper
modpost: extract symbol versions from *.cmd files
kbuild: link symbol CRCs at final link, removing
CONFIG_MODULE_REL_CRCS
kbuild: stop merging *.symversions
genksyms: adjust the output format to modpost
kbuild: do not create *.prelink.o for Clang LTO or IBT
kbuild: check static EXPORT_SYMBOL* by script instead of modpost
kbuild: make built-in.a rule robust against too long argument error
kbuild: make *.mod rule robust against too long argument error
kbuild: add cmd_and_savecmd macro
kbuild: rebuild multi-object modules when objtool is updated

arch/powerpc/Kconfig | 1 -
arch/s390/Kconfig | 1 -
arch/um/Kconfig | 1 -
include/asm-generic/export.h | 22 +-
include/linux/export-internal.h | 16 +
include/linux/export.h | 30 +-
init/Kconfig | 4 -
kernel/module.c | 10 +-
scripts/Kbuild.include | 10 +-
scripts/Makefile.build | 134 +--
scripts/Makefile.lib | 7 -
scripts/Makefile.modfinal | 5 +-
scripts/Makefile.modpost | 9 +-
scripts/check-local-export | 48 +
scripts/genksyms/genksyms.c | 18 +-
scripts/link-vmlinux.sh | 33 +-
scripts/mod/Makefile | 2 +-
scripts/mod/modpost.c | 1499 ++++---------------------------
scripts/mod/modpost.h | 35 +-
scripts/mod/section-check.c | 1222 +++++++++++++++++++++++++
20 files changed, 1551 insertions(+), 1556 deletions(-)
create mode 100644 include/linux/export-internal.h
create mode 100755 scripts/check-local-export
create mode 100644 scripts/mod/section-check.c

--
2.32.0