From: Peter Zijlstra <peterz@infradead.org>
To: tglx@linutronix.de, jpoimboe@redhat.com
Cc: linux-kernel@vger.kernel.org, x86@kernel.org,
peterz@infradead.org, mhiramat@kernel.org, mbenes@suse.cz,
jthierry@redhat.com, alexandre.chartre@oracle.com
Subject: [PATCH v5 13/17] kbuild/objtool: Add objtool-vmlinux.o pass
Date: Thu, 16 Apr 2020 13:47:19 +0200 [thread overview]
Message-ID: <20200416115119.287494491@infradead.org> (raw)
In-Reply-To: <20200416114706.625340212@infradead.org>
Now that objtool is capable of processing vmlinux.o and actually has
something useful to do there, (conditionally) add it to the final link
pass.
This will increase build time by a few seconds.
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
---
lib/Kconfig.debug | 5 +++++
scripts/link-vmlinux.sh | 24 ++++++++++++++++++++++++
2 files changed, 29 insertions(+)
--- a/lib/Kconfig.debug
+++ b/lib/Kconfig.debug
@@ -379,6 +379,11 @@ config STACK_VALIDATION
For more information, see
tools/objtool/Documentation/stack-validation.txt.
+config VMLINUX_VALIDATION
+ bool
+ depends on STACK_VALIDATION && DEBUG_ENTRY && !PARAVIRT
+ default y
+
config DEBUG_FORCE_WEAK_PER_CPU
bool "Force weak per-cpu definitions"
depends on DEBUG_KERNEL
--- a/scripts/link-vmlinux.sh
+++ b/scripts/link-vmlinux.sh
@@ -55,6 +55,29 @@ modpost_link()
${LD} ${KBUILD_LDFLAGS} -r -o ${1} ${objects}
}
+objtool_link()
+{
+ local objtoolopt;
+
+ if [ -n "${CONFIG_VMLINUX_VALIDATION}" ]; then
+ objtoolopt="check"
+ if [ -z "${CONFIG_FRAME_POINTER}" ]; then
+ objtoolopt="${objtoolopt} --no-fp"
+ fi
+ if [ -n "${CONFIG_GCOV_KERNEL}" ]; then
+ objtoolopt="${objtoolopt} --no-unreachable"
+ fi
+ if [ -n "${CONFIG_RETPOLINE}" ]; then
+ objtoolopt="${objtoolopt} --retpoline"
+ fi
+ if [ -n "${CONFIG_X86_SMAP}" ]; then
+ objtoolopt="${objtoolopt} --uaccess"
+ fi
+ info OBJTOOL ${1}
+ tools/objtool/objtool ${objtoolopt} ${1}
+ fi
+}
+
# Link of vmlinux
# ${1} - output file
# ${2}, ${3}, ... - optional extra .o files
@@ -244,6 +267,7 @@ ${MAKE} -f "${srctree}/scripts/Makefile.
#link vmlinux.o
info LD vmlinux.o
modpost_link vmlinux.o
+objtool_link vmlinux.o
# modpost vmlinux.o to check for section mismatches
${MAKE} -f "${srctree}/scripts/Makefile.modpost" MODPOST_VMLINUX=1
next prev parent reply other threads:[~2020-04-16 11:54 UTC|newest]
Thread overview: 64+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-04-16 11:47 [PATCH v5 00/17] objtool: vmlinux.o and noinstr validation Peter Zijlstra
2020-04-16 11:47 ` [PATCH v5 01/17] objtool: Support multiple stack_op per instruction Peter Zijlstra
2020-04-16 11:47 ` [PATCH v5 02/17] objtool: Better handle IRET Peter Zijlstra
2020-04-17 11:29 ` Miroslav Benes
2020-04-17 12:25 ` Peter Zijlstra
2020-04-17 12:35 ` Miroslav Benes
2020-04-17 17:37 ` Alexandre Chartre
2020-04-17 18:23 ` Peter Zijlstra
2020-04-17 23:53 ` Andy Lutomirski
2020-04-18 17:18 ` Josh Poimboeuf
2020-04-22 22:24 ` [tip: objtool/core] " tip-bot2 for Peter Zijlstra
2020-04-23 7:49 ` tip-bot2 for Peter Zijlstra
2020-04-16 11:47 ` [PATCH v5 03/17] objtool: Introduce HINT_RET_OFFSET Peter Zijlstra
2020-04-22 22:24 ` [tip: objtool/core] " tip-bot2 for Peter Zijlstra
2020-04-23 7:49 ` tip-bot2 for Peter Zijlstra
2020-04-16 11:47 ` [PATCH v5 04/17] x86,ftrace: Fix ftrace_regs_caller() unwind Peter Zijlstra
2020-04-17 19:24 ` Alexandre Chartre
2020-04-22 0:33 ` Steven Rostedt
2020-04-22 9:44 ` Peter Zijlstra
2020-04-22 13:33 ` Steven Rostedt
2020-04-22 20:20 ` Steven Rostedt
2020-04-22 22:24 ` [tip: objtool/core] " tip-bot2 for Peter Zijlstra
2020-04-23 7:49 ` tip-bot2 for Peter Zijlstra
2020-04-16 11:47 ` [PATCH v5 05/17] x86,ftrace: Use SIZEOF_PTREGS Peter Zijlstra
2020-04-22 22:24 ` [tip: objtool/core] " tip-bot2 for Peter Zijlstra
2020-04-23 7:49 ` tip-bot2 for Peter Zijlstra
2020-04-16 11:47 ` [PATCH v5 06/17] x86,ftrace: Shrink ftrace_regs_caller() by one byte Peter Zijlstra
2020-04-22 22:24 ` [tip: objtool/core] " tip-bot2 for Peter Zijlstra
2020-04-23 7:49 ` tip-bot2 for Peter Zijlstra
2020-04-16 11:47 ` [PATCH v5 07/17] objtool: Remove SAVE/RESTORE hints Peter Zijlstra
2020-04-22 22:24 ` [tip: objtool/core] " tip-bot2 for Peter Zijlstra
2020-04-23 7:49 ` tip-bot2 for Peter Zijlstra
2020-04-16 11:47 ` [PATCH v5 08/17] objtool: Rename struct cfi_state Peter Zijlstra
2020-04-22 22:24 ` [tip: objtool/core] " tip-bot2 for Peter Zijlstra
2020-04-23 7:49 ` tip-bot2 for Peter Zijlstra
2020-04-16 11:47 ` [PATCH v5 09/17] objtool: Fix !CFI insn_state propagation Peter Zijlstra
2020-04-22 22:24 ` [tip: objtool/core] " tip-bot2 for Peter Zijlstra
2020-04-23 7:49 ` tip-bot2 for Peter Zijlstra
2020-04-16 11:47 ` [PATCH v5 10/17] objtool: Implement noinstr validation Peter Zijlstra
2020-04-22 22:24 ` [tip: objtool/core] " tip-bot2 for Peter Zijlstra
2020-04-23 7:49 ` tip-bot2 for Peter Zijlstra
2020-04-16 11:47 ` [PATCH v5 11/17] objtool: Optimize !vmlinux.o again Peter Zijlstra
2020-04-22 22:24 ` [tip: objtool/core] " tip-bot2 for Peter Zijlstra
2020-04-23 7:49 ` tip-bot2 for Peter Zijlstra
2020-04-16 11:47 ` [PATCH v5 12/17] objtool: Use sec_offset_hash() for insn_hash Peter Zijlstra
2020-04-22 22:24 ` [tip: objtool/core] " tip-bot2 for Peter Zijlstra
2020-04-23 7:49 ` tip-bot2 for Peter Zijlstra
2020-04-16 11:47 ` Peter Zijlstra [this message]
2020-04-22 22:24 ` [tip: objtool/core] kbuild/objtool: Add objtool-vmlinux.o pass tip-bot2 for Peter Zijlstra
2020-04-23 7:49 ` tip-bot2 for Peter Zijlstra
2020-04-16 11:47 ` [PATCH v5 14/17] objtool: Avoid iterating !text section symbols Peter Zijlstra
2020-04-22 22:24 ` [tip: objtool/core] " tip-bot2 for Peter Zijlstra
2020-04-23 7:49 ` tip-bot2 for Peter Zijlstra
2020-04-16 11:47 ` [PATCH v5 15/17] objtool: Rearrange validate_section() Peter Zijlstra
2020-04-22 22:24 ` [tip: objtool/core] " tip-bot2 for Peter Zijlstra
2020-04-23 7:49 ` tip-bot2 for Peter Zijlstra
2020-04-16 11:47 ` [PATCH v5 16/17] objtool: Add STT_NOTYPE noinstr validation Peter Zijlstra
2020-04-22 22:24 ` [tip: objtool/core] " tip-bot2 for Peter Zijlstra
2020-04-23 7:49 ` tip-bot2 for Peter Zijlstra
2020-04-16 11:47 ` [PATCH v5 17/17] objtool: Also consider .entry.text as noinstr Peter Zijlstra
2020-04-22 22:24 ` [tip: objtool/core] " tip-bot2 for Thomas Gleixner
2020-04-23 7:49 ` tip-bot2 for Thomas Gleixner
2020-04-17 12:33 ` [PATCH v5 00/17] objtool: vmlinux.o and noinstr validation Miroslav Benes
2020-04-17 20:22 ` Alexandre Chartre
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=20200416115119.287494491@infradead.org \
--to=peterz@infradead.org \
--cc=alexandre.chartre@oracle.com \
--cc=jpoimboe@redhat.com \
--cc=jthierry@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mbenes@suse.cz \
--cc=mhiramat@kernel.org \
--cc=tglx@linutronix.de \
--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: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®