]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/commit
objtool: Add ORC unwind table generation
authorJosh Poimboeuf <jpoimboe@redhat.com>
Tue, 11 Jul 2017 15:33:42 +0000 (10:33 -0500)
committerKleber Sacilotto de Souza <kleber.souza@canonical.com>
Sat, 6 Jan 2018 12:22:21 +0000 (13:22 +0100)
commit9460f7766786ad0f8330f78f22b81842632a5398
tree1797888dccb04c00b4fe59f82434503924a9d0d3
parent0e6a37a43aa876327e7d21881c09977da2d5c270
objtool: Add ORC unwind table generation

CVE-2017-5754

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>
(cherry picked from commit 627fce14809ba5610b0cb476cd0186d3fcedecfc)
Signed-off-by: Andy Whitcroft <apw@canonical.com>
Signed-off-by: Kleber Sacilotto de Souza <kleber.souza@canonical.com>
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]