Re: [PATCH 0/3] MIPS: Add support for LTO

From: Nick Desaulniers
Date: Tue Dec 14 2021 - 14:34:18 EST


On Mon, Dec 13, 2021 at 2:49 PM Paul Cercueil <paul@xxxxxxxxxxxxxxx> wrote:
>
> Hi,
>
> With this set of patches, it becomes possible to build a LTO'd kernel
> with LLVM/Clang on MIPS.

Paul,
Overall, nice work pursuing this and working through all the related
issues; thanks for the series!

We should clarify whether this is LTO_CLANG_THIN or LTO_CLANG_FULL.
Getting support for either would be nice, but for each architecture
has had its own distinct challenges.

>
> This was tested on a Ingenic JZ4770 based system. It requires the
> linking step of the vmlinuz.bin to be done with binutils' LD instead of
> LLVM's ld.lld [1], but the vmlinuz ELF itself can be completely built
> with LLVM.

eh, this patch set sounds incomplete then; Can we wait to resolve
https://github.com/ClangBuiltLinux/linux/issues/1333 BEFORE this
series? Hacking up arch/mips/boot/compressed/Makefile to force a
different linker is not something we should encourage.

>
> Strangely, the LTO'd kernel is bigger in size (3.6 MiB vs. 3.1 MiB
> without LTO), which might be completely normal and I just have wrong
> expectations.

Are you building with CC_OPTIMIZE_FOR_SIZE or CC_OPTIMIZE_FOR_SIZE?
LTO != LD_DEAD_CODE_DATA_ELIMINATION

>
> Cheers,
> -Paul
>
> [1]: https://github.com/ClangBuiltLinux/linux/issues/1333
>
> Paul Cercueil (3):
> MIPS: boot/compressed: Disable abicalls
> MIPS: boot/compressed: Build without LTO
> MIPS: Add support for LTO
>
> arch/mips/Kconfig | 1 +
> arch/mips/boot/compressed/Makefile | 7 +++++--
> 2 files changed, 6 insertions(+), 2 deletions(-)
>
> --
> 2.33.0
>


--
Thanks,
~Nick Desaulniers