diff options
author | Alexandre Chartre <alexandre.chartre@oracle.com> | 2020-04-14 12:36:12 +0200 |
---|---|---|
committer | Peter Zijlstra <peterz@infradead.org> | 2020-04-30 20:14:33 +0200 |
commit | 8aa8eb2a8f5b3305a95f39957dd2b715fa668e21 (patch) | |
tree | ed624343256478e97b84d39fac09bdc3228512e8 /tools/objtool/Documentation | |
parent | b490f45362002fef57996388e395efc974b013f4 (diff) | |
download | lwn-8aa8eb2a8f5b3305a95f39957dd2b715fa668e21.tar.gz lwn-8aa8eb2a8f5b3305a95f39957dd2b715fa668e21.zip |
objtool: Add support for intra-function calls
Change objtool to support intra-function calls. On x86, an intra-function
call is represented in objtool as a push onto the stack (of the return
address), and a jump to the destination address. That way the stack
information is correctly updated and the call flow is still accurate.
Signed-off-by: Alexandre Chartre <alexandre.chartre@oracle.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: Miroslav Benes <mbenes@suse.cz>
Acked-by: Josh Poimboeuf <jpoimboe@redhat.com>
Link: https://lkml.kernel.org/r/20200414103618.12657-4-alexandre.chartre@oracle.com
Diffstat (limited to 'tools/objtool/Documentation')
-rw-r--r-- | tools/objtool/Documentation/stack-validation.txt | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/tools/objtool/Documentation/stack-validation.txt b/tools/objtool/Documentation/stack-validation.txt index 0189039489e9..0542e46c7552 100644 --- a/tools/objtool/Documentation/stack-validation.txt +++ b/tools/objtool/Documentation/stack-validation.txt @@ -323,6 +323,14 @@ they mean, and suggestions for how to fix them. The easiest way to enforce this is to ensure alternatives do not contain any ORC entries, which in turn implies the above constraint. +11. file.o: warning: unannotated intra-function call + + This warning means that a direct call is done to a destination which + is not at the beginning of a function. If this is a legit call, you + can remove this warning by putting the ANNOTATE_INTRA_FUNCTION_CALL + directive right before the call. + + If the error doesn't seem to make sense, it could be a bug in objtool. Feel free to ask the objtool maintainer for help. |