Linux-KBuild Archive on lore.kernel.org
 help / color / Atom feed
From: Andi Kleen <andi@firstfloor.org>
To: linux-kernel@vger.kernel.org
Cc: x86@kernel.org, samitolvanen@google.com, alxmtvv@gmail.com,
	linux-kbuild@vger.kernel.org, yamada.masahiro@socionext.com,
	akpm@linux-foundation.org, Andi Kleen <ak@linux.intel.com>,
	rostedt@goodmis.org
Subject: [PATCH 11/21] trace: Use -mcount-record for dynamic ftrace
Date: Mon, 27 Nov 2017 13:34:13 -0800
Message-ID: <20171127213423.27218-12-andi@firstfloor.org> (raw)
In-Reply-To: <20171127213423.27218-1-andi@firstfloor.org>

From: Andi Kleen <ak@linux.intel.com>

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.

Cc: rostedt@goodmis.org
Signed-off-by: Andi Kleen <ak@linux.intel.com>
---
 scripts/Makefile.build | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/scripts/Makefile.build b/scripts/Makefile.build
index cb8997ed0149..8179563bcd85 100644
--- a/scripts/Makefile.build
+++ b/scripts/Makefile.build
@@ -219,6 +219,11 @@ cmd_modversions_c =								\
 endif
 
 ifdef CONFIG_FTRACE_MCOUNT_RECORD
+# gcc 5 supports generating the mcount tables directly
+ifneq ($(call cc-option,-mrecord-mcount,y),y)
+KBUILD_CFLAGS += -mrecord-mcount
+else
+# else do it all manually
 ifdef BUILD_C_RECORDMCOUNT
 ifeq ("$(origin RECORDMCOUNT_WARN)", "command line")
   RECORDMCOUNT_FLAGS = -w
@@ -264,6 +269,7 @@ objtool_args += --no-unreachable
 else
 objtool_args += $(call cc-ifversion, -lt, 0405, --no-unreachable)
 endif
+endif
 
 # 'OBJECT_FILES_NON_STANDARD := y': skip objtool checking for a directory
 # 'OBJECT_FILES_NON_STANDARD_foo.o := 'y': skip objtool checking for a file
-- 
2.13.6


  parent reply index

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-11-27 21:34 Link time optimization for LTO/x86 Andi Kleen
2017-11-27 21:34 ` [PATCH 01/21] x86/xen: Mark pv stub assembler symbol visible Andi Kleen
2017-11-27 21:34 ` [PATCH 02/21] afs: Fix const confusion in AFS Andi Kleen
2017-11-27 21:34 ` [PATCH 03/21] x86/timer: Don't inline __const_udelay Andi Kleen
2017-11-27 21:34 ` [PATCH 04/21] locking/spinlocks: Mark spinlocks noinline when inline spinlocks are disabled Andi Kleen
2017-11-27 21:34 ` [PATCH 05/21] x86/kvm: Make steal_time visible Andi Kleen
2017-11-27 21:34 ` [PATCH 06/21] x86/syscalls: Make x86 syscalls use real prototypes Andi Kleen
2017-11-27 21:34 ` [PATCH 07/21] x86: Make exception handler functions visible Andi Kleen
2017-11-27 21:34 ` [PATCH 08/21] x86/idt: Make const __initconst Andi Kleen
2017-11-27 21:34 ` [PATCH 09/21] lto: Use C version for SYSCALL_ALIAS Andi Kleen
2017-11-27 21:34 ` [PATCH 10/21] Fix read buffer overflow in delta-ipc Andi Kleen
2017-11-27 21:34 ` Andi Kleen [this message]
2017-12-01  0:22   ` [PATCH 11/21] trace: Use -mcount-record for dynamic ftrace Steven Rostedt
2018-05-01 18:42     ` Steven Rostedt
2017-11-27 21:34 ` [PATCH 12/21] ftrace: Mark function tracer test functions noinline/noclone Andi Kleen
2017-11-27 21:34 ` [PATCH 13/21] ftrace: Disable LTO for ftrace self tests Andi Kleen
2017-11-27 21:34 ` [PATCH 14/21] lto, fs: Avoid static variable in linux/fs.h Andi Kleen
2017-11-27 21:34 ` [PATCH 15/21] lto, x86, mm: Disable vmalloc BUILD_BUG_ON for LTO Andi Kleen
2017-11-27 21:34 ` [PATCH 16/21] lto: Add __noreorder and mark initcalls __noreorder Andi Kleen
2017-11-27 21:34 ` [PATCH 17/21] lto, workaround: Disable LTO for BPF Andi Kleen
2017-11-27 21:34 ` [PATCH 18/21] lto, crypto: Disable LTO for camelia glue Andi Kleen
2017-11-27 21:34 ` [PATCH 19/21] lto, x86: Disable LTO for realmode / vDSO / head64 Andi Kleen
2017-11-27 21:34 ` [PATCH 20/21] Kbuild, lto: Add Link Time Optimization support Andi Kleen
2018-01-27  0:15   ` Arnd Bergmann
2018-01-27  0:55     ` Andi Kleen
2018-01-27 14:26       ` Arnd Bergmann
2018-01-28 18:33         ` Andi Kleen
2017-11-27 21:34 ` [PATCH 21/21] x86: Enable Link Time Optimization Andi Kleen
2017-11-28 16:04 ` [PATCH 02/21] afs: Fix const confusion in AFS David Howells
2017-11-28 16:50   ` Andi Kleen
2017-11-29 23:09 ` Link time optimization for LTO/x86 Sami Tolvanen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20171127213423.27218-12-andi@firstfloor.org \
    --to=andi@firstfloor.org \
    --cc=ak@linux.intel.com \
    --cc=akpm@linux-foundation.org \
    --cc=alxmtvv@gmail.com \
    --cc=linux-kbuild@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rostedt@goodmis.org \
    --cc=samitolvanen@google.com \
    --cc=x86@kernel.org \
    --cc=yamada.masahiro@socionext.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

Linux-KBuild Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/linux-kbuild/0 linux-kbuild/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 linux-kbuild linux-kbuild/ https://lore.kernel.org/linux-kbuild \
		linux-kbuild@vger.kernel.org
	public-inbox-index linux-kbuild

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.kernel.vger.linux-kbuild


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git