summaryrefslogtreecommitdiffstats
path: root/tools/objtool
diff options
context:
space:
mode:
authorJosh Poimboeuf <jpoimboe@redhat.com>2019-07-18 03:36:49 +0200
committerThomas Gleixner <tglx@linutronix.de>2019-07-18 21:01:07 +0200
commit61e9b75a0ccf1fecacc28a2d77ea4a19aa404e39 (patch)
treebd51bf0c1091f2620f5adb159b194948fa73f433 /tools/objtool
parentobjtool: Refactor function alias logic (diff)
downloadlinux-61e9b75a0ccf1fecacc28a2d77ea4a19aa404e39.tar.xz
linux-61e9b75a0ccf1fecacc28a2d77ea4a19aa404e39.zip
objtool: Warn on zero-length functions
All callable functions should have an ELF size. Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Tested-by: Nick Desaulniers <ndesaulniers@google.com> Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org> Link: https://lkml.kernel.org/r/03d429c4fa87829c61c5dc0e89652f4d9efb62f1.1563413318.git.jpoimboe@redhat.com
Diffstat (limited to 'tools/objtool')
-rw-r--r--tools/objtool/check.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/tools/objtool/check.c b/tools/objtool/check.c
index 3f8664b0e3f9..dece3253ff6a 100644
--- a/tools/objtool/check.c
+++ b/tools/objtool/check.c
@@ -2357,6 +2357,12 @@ static int validate_functions(struct objtool_file *file)
if (func->type != STT_FUNC)
continue;
+ if (!func->len) {
+ WARN("%s() is missing an ELF size annotation",
+ func->name);
+ warnings++;
+ }
+
if (func->pfunc != func || func->alias != func)
continue;