summaryrefslogtreecommitdiffstats
path: root/tools/objtool/objtool.c
diff options
context:
space:
mode:
authorJosh Poimboeuf2017-07-11 17:33:42 +0200
committerIngo Molnar2017-07-18 10:57:43 +0200
commit627fce14809ba5610b0cb476cd0186d3fcedecfc (patch)
tree88b2dec0ddbd243b1f9143ebec36948bb1042677 /tools/objtool/objtool.c
parentx86/dumpstack: Fix interrupt and exception stack boundary checks (diff)
downloadkernel-qcow2-linux-627fce14809ba5610b0cb476cd0186d3fcedecfc.tar.gz
kernel-qcow2-linux-627fce14809ba5610b0cb476cd0186d3fcedecfc.tar.xz
kernel-qcow2-linux-627fce14809ba5610b0cb476cd0186d3fcedecfc.zip
objtool: Add ORC unwind table generation
Now that objtool knows the states of all registers on the stack for each instruction, it's straightforward to generate debuginfo for an unwinder to use. Instead of generating DWARF, generate a new format called ORC, which is more suitable for an in-kernel unwinder. See Documentation/x86/orc-unwinder.txt for a more detailed description of this new debuginfo format and why it's preferable to DWARF. Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com> Cc: Andy Lutomirski <luto@kernel.org> Cc: Borislav Petkov <bp@alien8.de> Cc: Brian Gerst <brgerst@gmail.com> Cc: Denys Vlasenko <dvlasenk@redhat.com> Cc: H. Peter Anvin <hpa@zytor.com> Cc: Jiri Slaby <jslaby@suse.cz> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Mike Galbraith <efault@gmx.de> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: live-patching@vger.kernel.org Link: http://lkml.kernel.org/r/c9b9f01ba6c5ed2bdc9bb0957b78167fdbf9632e.1499786555.git.jpoimboe@redhat.com Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'tools/objtool/objtool.c')
-rw-r--r--tools/objtool/objtool.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/tools/objtool/objtool.c b/tools/objtool/objtool.c
index ecc5b1b5d15d..31e0f9143840 100644
--- a/tools/objtool/objtool.c
+++ b/tools/objtool/objtool.c
@@ -42,10 +42,11 @@ struct cmd_struct {
};
static const char objtool_usage_string[] =
- "objtool [OPTIONS] COMMAND [ARGS]";
+ "objtool COMMAND [ARGS]";
static struct cmd_struct objtool_cmds[] = {
{"check", cmd_check, "Perform stack metadata validation on an object file" },
+ {"orc", cmd_orc, "Generate in-place ORC unwind tables for an object file" },
};
bool help;