• Linus Torvalds's avatar
    Merge tag 'clang-lto-v5.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux · 79db4d22
    Linus Torvalds authored
    Pull clang LTO updates from Kees Cook:
     "Clang Link Time Optimization.
    
      This is built on the work done preparing for LTO by arm64 folks,
      tracing folks, etc. This includes the core changes as well as the
      remaining pieces for arm64 (LTO has been the default build method on
      Android for about 3 years now, as it is the prerequisite for the
      Control Flow Integrity protections).
    
      While x86 LTO enablement is done, it depends on some pending objtool
      clean-ups. It's possible that I'll send a "part 2" pull request for
      LTO that includes x86 support.
    
      For merge log posterity, and as detailed in commit dc5723b0
      ("kbuild: add support for Clang LTO"), here is the lt;dr to do an LTO
      build:
    
            make LLVM=1 LLVM_IAS=1 defconfig
            scripts/config -e LTO_CLANG_THIN
            make LLVM=1 LLVM_IAS=1
    
      (To do a cross-compile of arm64, add "CROSS_COMPILE=aarch64-linux-gnu-"
      and "ARCH=arm64" to the "make" command lines.)
    
      Summary:
    
       - Clang LTO build infrastructure and arm64-specific enablement (Sami
         Tolvanen)
    
       - Recursive build CC_FLAGS_LTO fix (Alexander Lobakin)"
    
    * tag 'clang-lto-v5.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
      kbuild: prevent CC_FLAGS_LTO self-bloating on recursive rebuilds
      arm64: allow LTO to be selected
      arm64: disable recordmcount with DYNAMIC_FTRACE_WITH_REGS
      arm64: vdso: disable LTO
      drivers/misc/lkdtm: disable LTO for rodata.o
      efi/libstub: disable LTO
      scripts/mod: disable LTO for empty.c
      modpost: lto: strip .lto from module names
      PCI: Fix PREL32 relocations for LTO
      init: lto: fix PREL32 relocations
      init: lto: ensure initcall ordering
      kbuild: lto: add a default list of used symbols
      kbuild: lto: merge module sections
      kbuild: lto: limit inlining
      kbuild: lto: fix module versioning
      kbuild: add support for Clang LTO
      tracing: move function tracer options to Kconfig
    79db4d22
Makefile 63.5 KB