[PATCH v2 00/26] kbuild: yet another series of cleanups (modpost and LTO)

From: Masahiro Yamada
Date: Sun May 01 2022 - 04:44:53 EST



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

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 (26):
modpost: use bool type where appropriate
modpost: change mod->gpl_compatible to bool type
modpost: import include/linux/list.h
modpost: traverse modules in order
modpost: add sym_add_unresolved() helper
modpost: traverse unresolved symbols in order
modpost: use doubly linked list for dump_lists
modpost: traverse the namespace_list in order
modpost: dump Module.symvers in the same order of modules.order
modpost: move static EXPORT_SYMBOL check to check_exports()
modpost: make multiple export error
modpost: make sym_add_exported() always allocate a new symbol
modpost: split new_symbol() to symbol allocation and hash table
addition
modpost: mitigate false-negatives for static EXPORT_SYMBOL checks
kbuild: record symbol versions in *.cmd files
kbuild: generate a list of objects in vmlinux
modpost: extract symbol versions from *.cmd files
modpost: generate linker script to collect symbol versions
kbuild: embed symbol versions at final link of vmlinux or modules
kbuild: stop merging *.symversions
genksyms: adjust the output format for .cmd files
kbuild: do not create *.prelink.o for Clang LTO or IBT
kbuild: make built-in.a rule robust against too long argument error
kbuild: make *.mod rule robust against too long argument error
modpost: simplify the ->is_static initialization
modpost: use hlist for hash table implementation

.gitignore | 1 +
Makefile | 1 +
scripts/Kbuild.include | 4 +
scripts/Makefile.build | 118 +++------
scripts/Makefile.lib | 7 -
scripts/Makefile.modfinal | 6 +-
scripts/Makefile.modpost | 10 +-
scripts/genksyms/genksyms.c | 17 +-
scripts/link-vmlinux.sh | 34 +--
scripts/mod/file2alias.c | 2 -
scripts/mod/list.h | 265 +++++++++++++++++++
scripts/mod/modpost.c | 501 ++++++++++++++++++++++--------------
scripts/mod/modpost.h | 24 +-
scripts/mod/sumversion.c | 8 +-
14 files changed, 650 insertions(+), 348 deletions(-)
create mode 100644 scripts/mod/list.h

--
2.32.0