History

trace: Use -mcount-record for dynamic ftrace

gcc 5 supports a new -mcount-record option to generate ftrace tables directly. This avoids the need to run record_mcount manually. Use this option when available. So far doesn't use -mcount-nop, which also exists now. This is needed to make ftrace work with LTO because the normal record-mcount script doesn't run over the link time output. It should also improve build times slightly in the general case. Link: http://lkml.kernel.org/r/20171127213423.27218-12-andi@firstfloor.org

Andi Kleen committed 8 years ago

Commit 96f60df1 parent 2824f501 file · +6 −0Browse files

Unified · Split

scripts/Makefile.build+6−0
@@ -207,6 +207,11 @@ cmd_modversions_c = \ · 206 unmodified lines
207endif207endif
208 208
209ifdef CONFIG_FTRACE_MCOUNT_RECORD209ifdef CONFIG_FTRACE_MCOUNT_RECORD
210# gcc 5 supports generating the mcount tables directly
211ifneq ($(call cc-option,-mrecord-mcount,y),y)
212KBUILD_CFLAGS += -mrecord-mcount
213else
214# else do it all manually
210ifdef BUILD_C_RECORDMCOUNT215ifdef BUILD_C_RECORDMCOUNT
211ifeq ("$(origin RECORDMCOUNT_WARN)", "command line")216ifeq ("$(origin RECORDMCOUNT_WARN)", "command line")
212 RECORDMCOUNT_FLAGS = -w217 RECORDMCOUNT_FLAGS = -w
@@ -259,6 +264,7 @@ ifneq ($(RETPOLINE_CFLAGS),) · 46 unmodified lines
259 objtool_args += --retpoline264 objtool_args += --retpoline
260endif265endif
261endif266endif
267endif
262 268
263 269
264ifdef CONFIG_MODVERSIONS270ifdef CONFIG_MODVERSIONS