Message ID | 20220424190811.1678416-1-masahiroy@kernel.org (mailing list archive) |
---|---|
Headers | show |
Series | kbuild: yet another series of cleanups (modpost and LTO) | expand |
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
On Wed, Apr 27, 2022 at 5:11 AM Nicolas Schier <nicolas@fjasle.eu> 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@fjasle.eu irc://oftc.net/nsc > ↳ gpg: 18ed 52db e34f 860e e9fb c82b 7d97 0932 55a0 ce7f > -- frykten for herren er opphav til kunnskap --
On Wed, Apr 27, 2022 at 12:18 PM Masahiro Yamada <masahiroy@kernel.org> wrote: > > On Wed, Apr 27, 2022 at 5:11 AM Nicolas Schier <nicolas@fjasle.eu> 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 01-05 and 12 applied. I will send v2 for the rest.