On Wed, Apr 27, 2022 at 5:11 AM Nicolas Schier <nicolas@xxxxxxxxx> wrote: > > 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? This series is based on linux-kbuild/kbuild branch 7c39c50dcb74 ("scripts: dummy-tools, add pahole") Anyway, this series is too big. For convenience, I pushed this to a topic branch. Please try: git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild.git lto-cleanup > 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 -- -- Best Regards Masahiro Yamada