objtool: Add ORC unwind table generation
authorJosh Poimboeuf <jpoimboe@redhat.com>
Tue, 11 Jul 2017 15:33:42 +0000 (10:33 -0500)
committerIngo Molnar <mingo@kernel.org>
Tue, 18 Jul 2017 08:57:43 +0000 (10:57 +0200)
commit627fce14809ba5610b0cb476cd0186d3fcedecfc
tree88b2dec0ddbd243b1f9143ebec36948bb1042677
parent5a3cf86978a1ac433407704ec280919751aa2699
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>
14 files changed:
tools/objtool/Build
tools/objtool/Documentation/stack-validation.txt
tools/objtool/builtin-check.c
tools/objtool/builtin-orc.c [new file with mode: 0644]
tools/objtool/builtin.h
tools/objtool/check.c
tools/objtool/check.h
tools/objtool/elf.c
tools/objtool/elf.h
tools/objtool/objtool.c
tools/objtool/orc.h [new file with mode: 0644]
tools/objtool/orc_dump.c [new file with mode: 0644]
tools/objtool/orc_gen.c [new file with mode: 0644]
tools/objtool/orc_types.h [new file with mode: 0644]