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