Re: [PATCH] x86: Enable clang LTO for 32-bit as well

From: Kees Cook
Date: Fri Apr 30 2021 - 19:04:54 EST


On Fri, Apr 30, 2021 at 01:58:57PM -0700, Nick Desaulniers wrote:
> On Thu, Apr 29, 2021 at 4:26 PM Nathan Chancellor <nathan@xxxxxxxxxx> wrote:
> >
> > Commit b33fff07e3e3 ("x86, build: allow LTO to be selected") enabled
> > support for LTO for x86_64 but 32-bit works fine as well.
> >
> > I tested the following config combinations:
> >
> > * i386_defconfig + CONFIG_LTO_CLANG_FULL=y
> >
> > * i386_defconfig + CONFIG_LTO_CLANG_THIN=y
> >
> > * ARCH=i386 allmodconfig + CONFIG_LTO_CLANG_THIN=y
>
> For allmodconfig
> HAS_LTO_CLANG cannot be selected unless
> FTRACE
> GCOV_KERNEL
> are disabled.
>
> I was able to run through similar tests, though I only did so for ToT LLVM.
>
> Reviewed-by: Nick Desaulniers <ndesaulniers@xxxxxxxxxx>
> Tested-by: Nick Desaulniers <ndesaulniers@xxxxxxxxxx>
>
> I additionally tried full LTO allmodconfig. Full LTO allmodconfig can
> be tested by disabling CONFIG_COMPILE_TEST (in addition to the above),
> though I hit https://github.com/ClangBuiltLinux/linux/issues/1215 (the
> xfs tests aren't building under LTO). I think this change though is
> fine, and enables another avenue to help us debug that failure.

Awesome; thank you both! I'll collect this for -next once -rc2 is
released.

--
Kees Cook