History

Merge tag 'clang-lto-v5.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux

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 dc5723b02e52 ("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

Linus Torvalds committed 5 years ago

Commit 79db4d22 parents 3b9cdaf 2b8689524 files · +704 −59Browse files

Showing the changes to kernel (1 of 24 files). Show all

Unified · Split

kernel/trace/Kconfig+16−0
@@ -602,6 +602,22 @@ config FTRACE_MCOUNT_RECORD · 601 unmodified lines
602602 depends on DYNAMIC_FTRACE
603603 depends on HAVE_FTRACE_MCOUNT_RECORD
604604
605+config FTRACE_MCOUNT_USE_PATCHABLE_FUNCTION_ENTRY
606+ bool
607+ depends on FTRACE_MCOUNT_RECORD
608+
609+config FTRACE_MCOUNT_USE_CC
610+ def_bool y
611+ depends on $(cc-option,-mrecord-mcount)
612+ depends on !FTRACE_MCOUNT_USE_PATCHABLE_FUNCTION_ENTRY
613+ depends on FTRACE_MCOUNT_RECORD
614+
615+config FTRACE_MCOUNT_USE_RECORDMCOUNT
616+ def_bool y
617+ depends on !FTRACE_MCOUNT_USE_PATCHABLE_FUNCTION_ENTRY
618+ depends on !FTRACE_MCOUNT_USE_CC
619+ depends on FTRACE_MCOUNT_RECORD
620+
605621 config TRACING_MAP
606622 bool
607623 depends on ARCH_HAVE_NMI_SAFE_CMPXCHG

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t