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
602 depends on DYNAMIC_FTRACE602 depends on DYNAMIC_FTRACE
603 depends on HAVE_FTRACE_MCOUNT_RECORD603 depends on HAVE_FTRACE_MCOUNT_RECORD
604 604
605config FTRACE_MCOUNT_USE_PATCHABLE_FUNCTION_ENTRY
606 bool
607 depends on FTRACE_MCOUNT_RECORD
608
609config 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
615config 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
605config TRACING_MAP621config TRACING_MAP
606 bool622 bool
607 depends on ARCH_HAVE_NMI_SAFE_CMPXCHG623 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