|
Message-ID: <202012111131.E41AFFCDB@keescook> Date: Fri, 11 Dec 2020 11:32:33 -0800 From: Kees Cook <keescook@...omium.org> To: Sami Tolvanen <samitolvanen@...gle.com> Cc: Masahiro Yamada <masahiroy@...nel.org>, Steven Rostedt <rostedt@...dmis.org>, Will Deacon <will@...nel.org>, Josh Poimboeuf <jpoimboe@...hat.com>, Peter Zijlstra <peterz@...radead.org>, Greg Kroah-Hartman <gregkh@...uxfoundation.org>, "Paul E. McKenney" <paulmck@...nel.org>, Nick Desaulniers <ndesaulniers@...gle.com>, clang-built-linux@...glegroups.com, kernel-hardening@...ts.openwall.com, linux-arch@...r.kernel.org, linux-arm-kernel@...ts.infradead.org, linux-kbuild@...r.kernel.org, linux-kernel@...r.kernel.org, linux-pci@...r.kernel.org Subject: Re: [PATCH v9 06/16] kbuild: lto: add a default list of used symbols On Fri, Dec 11, 2020 at 10:46:23AM -0800, Sami Tolvanen wrote: > With CONFIG_LTO_CLANG, LLVM bitcode has not yet been compiled into a > binary when the .mod files are generated, which means they don't yet > contain references to certain symbols that will be present in the final > binaries. This includes intrinsic functions, such as memcpy, memmove, > and memset [1], and stack protector symbols [2]. This change adds a > default symbol list to use with CONFIG_TRIM_UNUSED_KSYMS when Clang's > LTO is used. > > [1] https://llvm.org/docs/LangRef.html#standard-c-c-library-intrinsics > [2] https://llvm.org/docs/LangRef.html#llvm-stackprotector-intrinsic > > Signed-off-by: Sami Tolvanen <samitolvanen@...gle.com> Reviewed-by: Kees Cook <keescook@...omium.org> > --- > init/Kconfig | 1 + > scripts/lto-used-symbollist | 5 +++++ > 2 files changed, 6 insertions(+) > create mode 100644 scripts/lto-used-symbollist > > diff --git a/init/Kconfig b/init/Kconfig > index 0872a5a2e759..e88c919c1bf1 100644 > --- a/init/Kconfig > +++ b/init/Kconfig > @@ -2297,6 +2297,7 @@ config TRIM_UNUSED_KSYMS > config UNUSED_KSYMS_WHITELIST > string "Whitelist of symbols to keep in ksymtab" > depends on TRIM_UNUSED_KSYMS > + default "scripts/lto-used-symbollist" if LTO_CLANG > help > By default, all unused exported symbols will be un-exported from the > build when TRIM_UNUSED_KSYMS is selected. > diff --git a/scripts/lto-used-symbollist b/scripts/lto-used-symbollist > new file mode 100644 > index 000000000000..38e7bb9ebaae > --- /dev/null > +++ b/scripts/lto-used-symbollist > @@ -0,0 +1,5 @@ > +memcpy > +memmove > +memset > +__stack_chk_fail > +__stack_chk_guard > -- > 2.29.2.576.ga3fc446d84-goog > bikeshed: Should this filename use some kind of extension, like lto-user-symbols.txt or .list, to make it more human-friendly? -- Kees Cook
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.