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

Masahiro Yamada
2022-05-13T11:42:33Z

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

Changes in v6:
- Fix false-positive warnings when CONFIG_TRIM_UNUSED_KSYMS=y

Changes in v5:
- Fix the build error when CONFIG_DEBUG_INFO_BTF=y (reported by Nathan)
- Clean up arch/m68k/include/asm/export.h (Nick)
- Keep gen_symversions (and will be removed by a later patch)
- Add more comments in the script

Changes in v4:
- Rename .vmlinux-symver.c to .vmlinux.export.c
because I notice this approach is useful for further cleanups,
not only for modversioning but also for overall EXPORT_SYMBOL.
- New patch
- New.
Resent of my previous submission.
https://lore.kernel.org/all/20210831074004.3195284-10-masahiroy@kernel.org/
- New
Resent of my previous submission
https://lore.kernel.org/linux-kbuild/20210831074004.3195284-11-masahiroy@kernel.org/

Changes in v3:
- New patch

Changes in v2:
- Simplify the implementation (parse .cmd files after ELF)
- New patch
- replace the chain of $(if ...) with $(and )
- New patch
- New patch

Masahiro Yamada (10):
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/m68k/include/asm/Kbuild | 1 +
arch/m68k/include/asm/export.h | 2 -
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 | 64 +++++++++
scripts/genksyms/genksyms.c | 18 +--
scripts/link-vmlinux.sh | 33 ++---
scripts/mod/modpost.c | 236 +++++++++++++++++++++-----------
19 files changed, 320 insertions(+), 284 deletions(-)
delete mode 100644 arch/m68k/include/asm/export.h
create mode 100644 include/linux/export-internal.h
create mode 100755 scripts/check-local-export

--
2.32.0