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

Masahiro Yamada
2022-05-01T12:25:39Z

On Sun, May 1, 2022 at 5:42 PM Masahiro Yamada <masahiroy@kernel.org> wrote:
>
>
> 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
>

This series is available at:

git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild.git
lto-cleanup-v2

>
> 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
>

--
Best Regards
Masahiro Yamada