summaryrefslogtreecommitdiff
path: root/tools/objtool/Documentation
diff options
context:
space:
mode:
authorAlexandre Chartre <alexandre.chartre@oracle.com>2020-04-14 13:36:12 +0300
committerPeter Zijlstra <peterz@infradead.org>2020-04-30 21:14:33 +0300
commit8aa8eb2a8f5b3305a95f39957dd2b715fa668e21 (patch)
treeed624343256478e97b84d39fac09bdc3228512e8 /tools/objtool/Documentation
parentb490f45362002fef57996388e395efc974b013f4 (diff)
downloadlinux-8aa8eb2a8f5b3305a95f39957dd2b715fa668e21.tar.xz
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.txt8
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.