[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20220424190811.1678416-1-masahiroy@kernel.org>
Date: Mon, 25 Apr 2022 04:07:44 +0900
From: Masahiro Yamada <masahiroy@...nel.org>
To: linux-kbuild@...r.kernel.org
Cc: linux-kernel@...r.kernel.org,
Masahiro Yamada <masahiroy@...nel.org>,
Michal Marek <michal.lkml@...kovi.net>,
Nathan Chancellor <nathan@...nel.org>,
Nick Desaulniers <ndesaulniers@...gle.com>,
Nicolas Schier <nicolas@...sle.eu>,
Rasmus Villemoes <linux@...musvillemoes.dk>,
llvm@...ts.linux.dev
Subject: [PATCH 00/27] kbuild: yet another series of cleanups (modpost and LTO)
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.
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
Powered by blists - more mailing lists