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

From: Nicolas Schier
Date: Tue Apr 26 2022 - 16:12:27 EST


On Mon, Apr 25, 2022 at 04:07:44AM +0900 Masahiro Yamada wrote:
> This is the third batch of cleanups in this development cycle.
>
> This weekend, I wrote up the code I have been planning.
>
> After a bunch of modpost refactoring, I got rid of the ugly code
> in Makefiles.
>
> With this, Kbuild will get back much simpler and cleaner.
>

Hi Masahiro,

I tried applying the patch set onto your kbuild and
kbuild-fixes-v5.18, but it didn't apply. Can you give me
a hint on your commit base?

Kind regards,
Nicolas

>
> Masahiro Yamada (27):
> modpost: use snprintf() instead of sprintf() for safety
> modpost: do not write out any file when error occurred
> modpost: remove stale comment about sym_add_exported()
> modpost: add a separate error for exported symbols without definition
> modpost: retrieve the module dependency and CRCs in check_exports()
> modpost: use bool type where appropriate
> 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: move struct namespace_list to modpost.c
> 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: make sym_add_exported() a void function
> modpost: use hlist for hash table implementation
> 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: retrieve symbol versions by parsing *.cmd files
> modpost: generate linker script to collect symbol versions
> kbuild: embed symbol versions at final link of vmlinux or modules
> kbuild: stop generating *.symversions
> kbuild: do not create *.prelink.o for Clang LTO or IBT
>
> .gitignore | 1 +
> Makefile | 1 +
> scripts/Kbuild.include | 4 +
> scripts/Makefile.build | 107 ++------
> scripts/Makefile.lib | 7 -
> scripts/Makefile.modfinal | 6 +-
> scripts/Makefile.modpost | 9 +-
> scripts/link-vmlinux.sh | 38 ++-
> scripts/mod/file2alias.c | 2 -
> scripts/mod/list.h | 336 ++++++++++++++++++++++++
> scripts/mod/modpost.c | 529 +++++++++++++++++++++++---------------
> scripts/mod/modpost.h | 27 +-
> 12 files changed, 731 insertions(+), 336 deletions(-)
> create mode 100644 scripts/mod/list.h
>
> --
> 2.32.0

--
epost|xmpp: nicolas@xxxxxxxxx irc://oftc.net/nsc
↳ gpg: 18ed 52db e34f 860e e9fb c82b 7d97 0932 55a0 ce7f
-- frykten for herren er opphav til kunnskap --