From: Sami Tolvanen <samitolvanen@google.com> To: Masahiro Yamada <masahiroy@kernel.org>, Will Deacon <will@kernel.org>, Steven Rostedt <rostedt@goodmis.org> Cc: Peter Zijlstra <peterz@infradead.org>, Greg Kroah-Hartman <gregkh@linuxfoundation.org>, "Paul E. McKenney" <paulmck@kernel.org>, Kees Cook <keescook@chromium.org>, Nick Desaulniers <ndesaulniers@google.com>, clang-built-linux@googlegroups.com, kernel-hardening@lists.openwall.com, linux-arch@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kbuild@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, x86@kernel.org, Sami Tolvanen <samitolvanen@google.com> Subject: [PATCH v5 05/29] tracing: add support for objtool mcount Date: Fri, 9 Oct 2020 09:13:14 -0700 [thread overview] Message-ID: <20201009161338.657380-6-samitolvanen@google.com> (raw) In-Reply-To: <20201009161338.657380-1-samitolvanen@google.com> This change adds build support for using objtool to generate __mcount_loc sections. Signed-off-by: Sami Tolvanen <samitolvanen@google.com> --- Makefile | 12 ++++++++++-- kernel/trace/Kconfig | 13 +++++++++++++ 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 434da9fcbf3c..fb2cf557d3ca 100644 --- a/Makefile +++ b/Makefile @@ -850,6 +850,9 @@ ifdef CONFIG_FTRACE_MCOUNT_USE_CC endif endif endif +ifdef CONFIG_FTRACE_MCOUNT_USE_OBJTOOL + CC_FLAGS_USING += -DCC_USING_NOP_MCOUNT +endif ifdef CONFIG_FTRACE_MCOUNT_USE_RECORDMCOUNT ifdef CONFIG_HAVE_C_RECORDMCOUNT BUILD_C_RECORDMCOUNT := y @@ -1209,11 +1212,16 @@ uapi-asm-generic: PHONY += prepare-objtool prepare-resolve_btfids prepare-objtool: $(objtool_target) ifeq ($(SKIP_STACK_VALIDATION),1) +objtool-lib-prompt := "please install libelf-dev, libelf-devel or elfutils-libelf-devel" +ifdef CONFIG_FTRACE_MCOUNT_USE_OBJTOOL + @echo "error: Cannot generate __mcount_loc for CONFIG_DYNAMIC_FTRACE=y, $(objtool-lib-prompt)" >&2 + @false +endif ifdef CONFIG_UNWINDER_ORC - @echo "error: Cannot generate ORC metadata for CONFIG_UNWINDER_ORC=y, please install libelf-dev, libelf-devel or elfutils-libelf-devel" >&2 + @echo "error: Cannot generate ORC metadata for CONFIG_UNWINDER_ORC=y, $(objtool-lib-prompt)" >&2 @false else - @echo "warning: Cannot use CONFIG_STACK_VALIDATION=y, please install libelf-dev, libelf-devel or elfutils-libelf-devel" >&2 + @echo "warning: Cannot use CONFIG_STACK_VALIDATION=y, $(objtool-lib-prompt)" >&2 endif endif diff --git a/kernel/trace/Kconfig b/kernel/trace/Kconfig index 927ad004888a..89263210ab26 100644 --- a/kernel/trace/Kconfig +++ b/kernel/trace/Kconfig @@ -51,6 +51,11 @@ config HAVE_NOP_MCOUNT help Arch supports the gcc options -pg with -mrecord-mcount and -nop-mcount +config HAVE_OBJTOOL_MCOUNT + bool + help + Arch supports objtool --mcount + config HAVE_C_RECORDMCOUNT bool help @@ -605,10 +610,18 @@ config FTRACE_MCOUNT_USE_CC depends on !FTRACE_MCOUNT_USE_PATCHABLE_FUNCTION_ENTRY depends on FTRACE_MCOUNT_RECORD +config FTRACE_MCOUNT_USE_OBJTOOL + def_bool y + depends on HAVE_OBJTOOL_MCOUNT + depends on !FTRACE_MCOUNT_USE_PATCHABLE_FUNCTION_ENTRY + depends on !FTRACE_MCOUNT_USE_CC + depends on FTRACE_MCOUNT_RECORD + config FTRACE_MCOUNT_USE_RECORDMCOUNT def_bool y depends on !FTRACE_MCOUNT_USE_PATCHABLE_FUNCTION_ENTRY depends on !FTRACE_MCOUNT_USE_CC + depends on !FTRACE_MCOUNT_USE_OBJTOOL depends on FTRACE_MCOUNT_RECORD config TRACING_MAP -- 2.28.0.1011.ga647a8990f-goog
WARNING: multiple messages have this Message-ID (diff)
From: Sami Tolvanen <samitolvanen@google.com> To: Masahiro Yamada <masahiroy@kernel.org>, Will Deacon <will@kernel.org>, Steven Rostedt <rostedt@goodmis.org> Cc: linux-arch@vger.kernel.org, x86@kernel.org, Kees Cook <keescook@chromium.org>, "Paul E. McKenney" <paulmck@kernel.org>, kernel-hardening@lists.openwall.com, Peter Zijlstra <peterz@infradead.org>, Greg Kroah-Hartman <gregkh@linuxfoundation.org>, linux-kbuild@vger.kernel.org, Nick Desaulniers <ndesaulniers@google.com>, linux-kernel@vger.kernel.org, clang-built-linux@googlegroups.com, Sami Tolvanen <samitolvanen@google.com>, linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org Subject: [PATCH v5 05/29] tracing: add support for objtool mcount Date: Fri, 9 Oct 2020 09:13:14 -0700 [thread overview] Message-ID: <20201009161338.657380-6-samitolvanen@google.com> (raw) In-Reply-To: <20201009161338.657380-1-samitolvanen@google.com> This change adds build support for using objtool to generate __mcount_loc sections. Signed-off-by: Sami Tolvanen <samitolvanen@google.com> --- Makefile | 12 ++++++++++-- kernel/trace/Kconfig | 13 +++++++++++++ 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 434da9fcbf3c..fb2cf557d3ca 100644 --- a/Makefile +++ b/Makefile @@ -850,6 +850,9 @@ ifdef CONFIG_FTRACE_MCOUNT_USE_CC endif endif endif +ifdef CONFIG_FTRACE_MCOUNT_USE_OBJTOOL + CC_FLAGS_USING += -DCC_USING_NOP_MCOUNT +endif ifdef CONFIG_FTRACE_MCOUNT_USE_RECORDMCOUNT ifdef CONFIG_HAVE_C_RECORDMCOUNT BUILD_C_RECORDMCOUNT := y @@ -1209,11 +1212,16 @@ uapi-asm-generic: PHONY += prepare-objtool prepare-resolve_btfids prepare-objtool: $(objtool_target) ifeq ($(SKIP_STACK_VALIDATION),1) +objtool-lib-prompt := "please install libelf-dev, libelf-devel or elfutils-libelf-devel" +ifdef CONFIG_FTRACE_MCOUNT_USE_OBJTOOL + @echo "error: Cannot generate __mcount_loc for CONFIG_DYNAMIC_FTRACE=y, $(objtool-lib-prompt)" >&2 + @false +endif ifdef CONFIG_UNWINDER_ORC - @echo "error: Cannot generate ORC metadata for CONFIG_UNWINDER_ORC=y, please install libelf-dev, libelf-devel or elfutils-libelf-devel" >&2 + @echo "error: Cannot generate ORC metadata for CONFIG_UNWINDER_ORC=y, $(objtool-lib-prompt)" >&2 @false else - @echo "warning: Cannot use CONFIG_STACK_VALIDATION=y, please install libelf-dev, libelf-devel or elfutils-libelf-devel" >&2 + @echo "warning: Cannot use CONFIG_STACK_VALIDATION=y, $(objtool-lib-prompt)" >&2 endif endif diff --git a/kernel/trace/Kconfig b/kernel/trace/Kconfig index 927ad004888a..89263210ab26 100644 --- a/kernel/trace/Kconfig +++ b/kernel/trace/Kconfig @@ -51,6 +51,11 @@ config HAVE_NOP_MCOUNT help Arch supports the gcc options -pg with -mrecord-mcount and -nop-mcount +config HAVE_OBJTOOL_MCOUNT + bool + help + Arch supports objtool --mcount + config HAVE_C_RECORDMCOUNT bool help @@ -605,10 +610,18 @@ config FTRACE_MCOUNT_USE_CC depends on !FTRACE_MCOUNT_USE_PATCHABLE_FUNCTION_ENTRY depends on FTRACE_MCOUNT_RECORD +config FTRACE_MCOUNT_USE_OBJTOOL + def_bool y + depends on HAVE_OBJTOOL_MCOUNT + depends on !FTRACE_MCOUNT_USE_PATCHABLE_FUNCTION_ENTRY + depends on !FTRACE_MCOUNT_USE_CC + depends on FTRACE_MCOUNT_RECORD + config FTRACE_MCOUNT_USE_RECORDMCOUNT def_bool y depends on !FTRACE_MCOUNT_USE_PATCHABLE_FUNCTION_ENTRY depends on !FTRACE_MCOUNT_USE_CC + depends on !FTRACE_MCOUNT_USE_OBJTOOL depends on FTRACE_MCOUNT_RECORD config TRACING_MAP -- 2.28.0.1011.ga647a8990f-goog _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2020-10-09 16:14 UTC|newest] Thread overview: 111+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-10-09 16:13 [PATCH v5 00/29] Add support for Clang LTO Sami Tolvanen 2020-10-09 16:13 ` Sami Tolvanen 2020-10-09 16:13 ` Sami Tolvanen 2020-10-09 16:13 ` [PATCH v5 01/29] kbuild: preprocess module linker script Sami Tolvanen 2020-10-09 16:13 ` Sami Tolvanen 2020-10-09 16:13 ` Sami Tolvanen 2020-10-09 16:13 ` [PATCH v5 02/29] objtool: Add a pass for generating __mcount_loc Sami Tolvanen 2020-10-09 16:13 ` Sami Tolvanen 2020-10-09 16:13 ` Sami Tolvanen 2020-10-09 16:13 ` [PATCH v5 03/29] objtool: Don't autodetect vmlinux.o Sami Tolvanen 2020-10-09 16:13 ` Sami Tolvanen 2020-10-09 16:13 ` Sami Tolvanen 2020-10-09 16:13 ` [PATCH v5 04/29] tracing: move function tracer options to Kconfig Sami Tolvanen 2020-10-09 16:13 ` Sami Tolvanen 2020-10-09 16:13 ` Sami Tolvanen 2020-10-09 16:13 ` Sami Tolvanen [this message] 2020-10-09 16:13 ` [PATCH v5 05/29] tracing: add support for objtool mcount Sami Tolvanen 2020-10-09 16:13 ` Sami Tolvanen 2020-10-09 16:13 ` [PATCH v5 06/29] x86, build: use " Sami Tolvanen 2020-10-09 16:13 ` Sami Tolvanen 2020-10-09 16:13 ` Sami Tolvanen 2020-10-09 16:13 ` [PATCH v5 07/29] treewide: remove DISABLE_LTO Sami Tolvanen 2020-10-09 16:13 ` Sami Tolvanen 2020-10-09 16:13 ` Sami Tolvanen 2020-10-09 16:13 ` [PATCH v5 08/29] kbuild: add support for Clang LTO Sami Tolvanen 2020-10-09 16:13 ` Sami Tolvanen 2020-10-09 16:13 ` Sami Tolvanen 2020-10-09 16:13 ` [PATCH v5 09/29] kbuild: lto: fix module versioning Sami Tolvanen 2020-10-09 16:13 ` Sami Tolvanen 2020-10-09 16:13 ` Sami Tolvanen 2020-10-09 16:13 ` [PATCH v5 10/29] objtool: Split noinstr validation from --vmlinux Sami Tolvanen 2020-10-09 16:13 ` Sami Tolvanen 2020-10-09 16:13 ` Sami Tolvanen 2020-10-09 16:13 ` [PATCH v5 11/29] kbuild: lto: postpone objtool Sami Tolvanen 2020-10-09 16:13 ` Sami Tolvanen 2020-10-09 16:13 ` Sami Tolvanen 2020-10-09 16:13 ` [PATCH v5 12/29] kbuild: lto: limit inlining Sami Tolvanen 2020-10-09 16:13 ` Sami Tolvanen 2020-10-09 16:13 ` Sami Tolvanen 2020-10-09 16:13 ` [PATCH v5 13/29] kbuild: lto: merge module sections Sami Tolvanen 2020-10-09 16:13 ` Sami Tolvanen 2020-10-09 16:13 ` Sami Tolvanen 2020-10-09 16:13 ` [PATCH v5 14/29] kbuild: lto: remove duplicate dependencies from .mod files Sami Tolvanen 2020-10-09 16:13 ` Sami Tolvanen 2020-10-09 16:13 ` Sami Tolvanen 2020-10-09 16:13 ` [PATCH v5 15/29] init: lto: ensure initcall ordering Sami Tolvanen 2020-10-09 16:13 ` Sami Tolvanen 2020-10-09 16:13 ` Sami Tolvanen 2020-10-09 16:13 ` [PATCH v5 16/29] init: lto: fix PREL32 relocations Sami Tolvanen 2020-10-09 16:13 ` Sami Tolvanen 2020-10-09 16:13 ` Sami Tolvanen 2020-10-09 16:13 ` [PATCH v5 17/29] PCI: Fix PREL32 relocations for LTO Sami Tolvanen 2020-10-09 16:13 ` Sami Tolvanen 2020-10-09 16:13 ` Sami Tolvanen 2020-10-09 16:13 ` [PATCH v5 18/29] modpost: lto: strip .lto from module names Sami Tolvanen 2020-10-09 16:13 ` Sami Tolvanen 2020-10-09 16:13 ` Sami Tolvanen 2020-10-09 16:13 ` [PATCH v5 19/29] scripts/mod: disable LTO for empty.c Sami Tolvanen 2020-10-09 16:13 ` Sami Tolvanen 2020-10-09 16:13 ` Sami Tolvanen 2020-10-09 16:13 ` [PATCH v5 20/29] efi/libstub: disable LTO Sami Tolvanen 2020-10-09 16:13 ` Sami Tolvanen 2020-10-09 16:13 ` Sami Tolvanen 2020-10-09 16:13 ` [PATCH v5 21/29] drivers/misc/lkdtm: disable LTO for rodata.o Sami Tolvanen 2020-10-09 16:13 ` Sami Tolvanen 2020-10-09 16:13 ` Sami Tolvanen 2020-10-09 16:13 ` [PATCH v5 22/29] arm64: vdso: disable LTO Sami Tolvanen 2020-10-09 16:13 ` Sami Tolvanen 2020-10-09 16:13 ` Sami Tolvanen 2020-10-09 16:13 ` [PATCH v5 23/29] KVM: arm64: disable LTO for the nVHE directory Sami Tolvanen 2020-10-09 16:13 ` Sami Tolvanen 2020-10-09 16:13 ` Sami Tolvanen 2020-10-09 16:13 ` [PATCH v5 24/29] arm64: disable recordmcount with DYNAMIC_FTRACE_WITH_REGS Sami Tolvanen 2020-10-09 16:13 ` Sami Tolvanen 2020-10-09 16:13 ` Sami Tolvanen 2020-10-09 16:13 ` [PATCH v5 25/29] arm64: allow LTO_CLANG and THINLTO to be selected Sami Tolvanen 2020-10-09 16:13 ` Sami Tolvanen 2020-10-09 16:13 ` Sami Tolvanen 2020-10-12 8:31 ` Will Deacon 2020-10-12 8:31 ` Will Deacon 2020-10-12 20:44 ` Kees Cook 2020-10-12 20:44 ` Kees Cook 2020-10-12 20:51 ` Will Deacon 2020-10-12 20:51 ` Will Deacon 2020-10-12 21:02 ` Kees Cook 2020-10-12 21:02 ` Kees Cook 2020-10-09 16:13 ` [PATCH v5 26/29] x86/asm: annotate indirect jumps Sami Tolvanen 2020-10-09 16:13 ` Sami Tolvanen 2020-10-09 16:13 ` Sami Tolvanen 2020-10-09 16:13 ` [PATCH v5 27/29] x86, vdso: disable LTO only for vDSO Sami Tolvanen 2020-10-09 16:13 ` Sami Tolvanen 2020-10-09 16:13 ` Sami Tolvanen 2020-10-09 16:13 ` [PATCH v5 28/29] x86, cpu: disable LTO for cpu.c Sami Tolvanen 2020-10-09 16:13 ` Sami Tolvanen 2020-10-09 16:13 ` Sami Tolvanen 2020-10-09 16:13 ` [PATCH v5 29/29] x86, build: allow LTO_CLANG and THINLTO to be selected Sami Tolvanen 2020-10-09 16:13 ` Sami Tolvanen 2020-10-09 16:13 ` Sami Tolvanen 2020-10-09 16:30 ` [PATCH v5 00/29] Add support for Clang LTO Sedat Dilek 2020-10-09 16:30 ` Sedat Dilek 2020-10-09 16:30 ` Sedat Dilek 2020-10-09 20:50 ` Sami Tolvanen 2020-10-09 20:50 ` Sami Tolvanen 2020-10-09 19:35 ` Steven Rostedt 2020-10-09 21:05 ` Sami Tolvanen 2020-10-09 21:05 ` Sami Tolvanen 2020-10-09 23:38 ` Steven Rostedt 2020-10-09 23:38 ` Steven Rostedt 2020-10-10 0:00 ` Sami Tolvanen 2020-10-10 0:00 ` Sami Tolvanen 2020-10-10 0:00 ` 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=20201009161338.657380-6-samitolvanen@google.com \ --to=samitolvanen@google.com \ --cc=clang-built-linux@googlegroups.com \ --cc=gregkh@linuxfoundation.org \ --cc=keescook@chromium.org \ --cc=kernel-hardening@lists.openwall.com \ --cc=linux-arch@vger.kernel.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kbuild@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-pci@vger.kernel.org \ --cc=masahiroy@kernel.org \ --cc=ndesaulniers@google.com \ --cc=paulmck@kernel.org \ --cc=peterz@infradead.org \ --cc=rostedt@goodmis.org \ --cc=will@kernel.org \ --cc=x86@kernel.org \ /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: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.