linux/tools/objtool
Josh Poimboeuf ee97638b57 objtool: Fix objtool fallthrough detection with function padding
When GCC adds NOP padding between functions, those NOPs aren't
associated with a function symbol, which breaks objtool's detection of a
function falling through to another function.  Instead it shows
confusing errors like:

  drivers/mtd/chips/cfi_util.o: warning: objtool: cfi_qry_mode_on()+0x8b: return with modified stack frame
  drivers/mtd/chips/cfi_util.o: warning: objtool: cfi_qry_mode_on()+0x0: stack state mismatch: cfa1=-4-32 cfa2=7+8
  drivers/mtd/chips/cfi_cmdset_0002.o: warning: objtool: fixup_use_fwh_lock()+0x8: unknown stack-related register move
  drivers/mtd/chips/cfi_cmdset_0002.o: warning: objtool: fixup_use_fwh_lock()+0x0: stack state mismatch: cfa1=6+16 cfa2=7+8
  drivers/mtd/chips/cfi_cmdset_0002.o: warning: objtool: do_otp_write()+0xa: unsupported stack pointer realignment
  drivers/mtd/chips/cfi_cmdset_0002.o: warning: objtool: do_otp_write()+0x0: stack state mismatch: cfa1=-4-40 cfa2=7+8

Reported-by: kbuild test robot <fengguang.wu@intel.com>
Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Link: http://lkml.kernel.org/r/43e7aae9a7a7710cd6df597fa9dc501da4ba0602.1502472193.git.jpoimboe@redhat.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
2017-08-21 16:06:05 +02:00
..
arch/x86 objtool: Fix '-mtune=atom' decoding support in objtool 2.0 2017-07-28 08:33:32 +02:00
Documentation objtool: Add ORC unwind table generation 2017-07-18 10:57:43 +02:00
.gitignore objtool: Add 'fixdep' to objtool/.gitignore 2016-07-27 11:07:11 +02:00
arch.h objtool: Assume unannotated UD2 instructions are dead ends 2017-07-28 08:33:32 +02:00
Build objtool: Add ORC unwind table generation 2017-07-18 10:57:43 +02:00
builtin-check.c objtool: Fix gcov check for older versions of GCC 2017-07-25 11:12:45 +02:00
builtin-orc.c objtool: Fix gcov check for older versions of GCC 2017-07-25 11:12:45 +02:00
builtin.h objtool: Add ORC unwind table generation 2017-07-18 10:57:43 +02:00
cfi.h objtool: Implement stack validation 2.0 2017-06-30 10:19:19 +02:00
check.c objtool: Fix objtool fallthrough detection with function padding 2017-08-21 16:06:05 +02:00
check.h objtool: Track DRAP separately from callee-saved registers 2017-08-11 14:06:15 +02:00
elf.c objtool: Add ORC unwind table generation 2017-07-18 10:57:43 +02:00
elf.h objtool: Add ORC unwind table generation 2017-07-18 10:57:43 +02:00
Makefile objtool: Disable GCC '-Wpacked' warnings 2017-07-28 08:33:32 +02:00
objtool.c objtool: Add ORC unwind table generation 2017-07-18 10:57:43 +02:00
orc_dump.c objtool: Add ORC unwind table generation 2017-07-18 10:57:43 +02:00
orc_gen.c objtool: Add ORC unwind table generation 2017-07-18 10:57:43 +02:00
orc_types.h objtool, x86: Add facility for asm code to provide unwind hints 2017-07-18 10:57:44 +02:00
orc.h objtool: Add ORC unwind table generation 2017-07-18 10:57:43 +02:00
special.c objtool: Implement stack validation 2.0 2017-06-30 10:19:19 +02:00
special.h objtool: Add tool to perform compile-time stack metadata validation 2016-02-29 08:35:12 +01:00
warn.h objtool: Implement stack validation 2.0 2017-06-30 10:19:19 +02:00