|
Message-ID: <CABCJKueCJhwRL1T1k6EYpUy_-Rj85K98iz5FO6K+dZLY25z8_Q@mail.gmail.com> Date: Fri, 11 Dec 2020 11:40:23 -0800 From: Sami Tolvanen <samitolvanen@...gle.com> To: Kees Cook <keescook@...omium.org> 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 <clang-built-linux@...glegroups.com>, Kernel Hardening <kernel-hardening@...ts.openwall.com>, linux-arch <linux-arch@...r.kernel.org>, linux-arm-kernel <linux-arm-kernel@...ts.infradead.org>, linux-kbuild <linux-kbuild@...r.kernel.org>, LKML <linux-kernel@...r.kernel.org>, PCI <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 11:32 AM Kees Cook <keescook@...omium.org> wrote: > > 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? Sure, I can rename this in the next version. Does anyone have strong opinions about the name and/or extension? Sami
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.