From: Sathvika Vasireddy <sv@linux.ibm.com>
To: nathan@kernel.org, nsc@kernel.org, maddy@linux.ibm.com,
mpe@ellerman.id.au, npiggin@gmail.com, chleroy@kernel.org,
jpoimboe@kernel.org, peterz@infradead.org, ojeda@kernel.org,
masahiroy@kernel.org, lossin@kernel.org, tamird@kernel.org,
thomas.weissschuh@linutronix.de, rostedt@goodmis.org,
ihor.solodrai@linux.dev, thuth@redhat.com, pmladek@suse.com,
aliceryhl@google.com, elver@google.com, kees@kernel.org,
legion@kernel.org, ardb@kernel.org, yuxuan.zuo@outlook.com,
alexghiti@rivosinc.com, alexandre.chartre@oracle.com,
bp@alien8.de, linux-kbuild@vger.kernel.org,
linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org,
sv@linux.ibm.com
Subject: [PATCH v1 4/6] objtool/powerpc: Skip jump destination analysis and unnanotated intra-function call warnings for --ftr-fixup
Date: Tue, 5 May 2026 14:16:26 +0530 [thread overview]
Message-ID: <20260505084628.17940-5-sv@linux.ibm.com> (raw)
In-Reply-To: <20260505084628.17940-1-sv@linux.ibm.com>
Objtool is throwing unannotated intra-function call warnings
when run on vmlinux with --ftr-fixup option.
One such example:
vmlinux: warning: objtool: .text+0x3d94:
unannotated intra-function call
.text + 0x3d94 = c000000000008000 + 3d94 = c0000000000081d4
c0000000000081d4: 45 24 02 48 bl c00000000002a618
<system_reset_exception+0x8>
c00000000002a610 <system_reset_exception>:
c00000000002a610: 0e 01 4c 3c addis r2,r12,270
c00000000002a610: R_PPC64_REL16_HA .TOC.
c00000000002a614: f0 6c 42 38 addi r2,r2,27888
c00000000002a614: R_PPC64_REL16_LO .TOC.+0x4
c00000000002a618: a6 02 08 7c mflr r0
This is happening because we should be looking for destination
symbols that are at absolute offsets instead of relative offsets.
After fixing dest_off to point to absolute offset, there are still
a lot of these warnings shown.
In the above example, objtool is computing the destination
offset to be c00000000002a618, which points to a completely
different instruction. find_call_destination() is looking for this
offset and failing. Instead, we should be looking for destination
offset c00000000002a610 which points to system_reset_exception
function.
Even after fixing the way destination offset is computed, and
after looking for dest_off - 0x8 in cases where the original offset
is not found, there are still a lot of unannotated intra-function
call warnings generated. This is due to symbols that are not
properly annotated.
So, for now, as a hack to curb these warnings, do not emit
unannotated intra-function call warnings when objtool is run
with --ftr-fixup option.
Skip add_jump_destinations() and suppress intra-function call
errors in --ftr-fixup mode. The feature fixup pass only needs fixup
entry tables, relocation entries from .__ftr_alternates.text, and
elf_write_insn() to patch branch offsets.
Signed-off-by: Sathvika Vasireddy <sv@linux.ibm.com>
---
tools/objtool/check.c | 14 +++++++++-----
1 file changed, 9 insertions(+), 5 deletions(-)
diff --git a/tools/objtool/check.c b/tools/objtool/check.c
index f3501b149829..14644ca36d73 100644
--- a/tools/objtool/check.c
+++ b/tools/objtool/check.c
@@ -1644,7 +1644,6 @@ static int add_jump_destinations(struct objtool_file *file)
dest_off == func->offset + func->len)
continue;
-
ERROR_INSN(insn, "can't find jump dest instruction at %s",
offstr(dest_sec, dest_off));
return -1;
@@ -1727,8 +1726,11 @@ static int add_call_destinations(struct objtool_file *file)
continue;
if (!insn_call_dest(insn)) {
- ERROR_INSN(insn, "unannotated intra-function call");
- return -1;
+ if (!opts.ftr_fixup) {
+ ERROR_INSN(insn, "unannotated intra-function call");
+ return -1;
+ }
+ continue;
}
if (func && !is_func_sym(insn_call_dest(insn))) {
@@ -2681,8 +2683,10 @@ static int decode_sections(struct objtool_file *file)
return -1;
}
- if (add_jump_destinations(file))
- return -1;
+ if (!opts.ftr_fixup) {
+ if (add_jump_destinations(file))
+ return -1;
+ }
/*
* Must be before add_call_destination(); it changes INSN_CALL to
--
2.43.0
next prev parent reply other threads:[~2026-05-05 8:47 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-05 8:46 [PATCH v1 0/6] objtool: Fixup alternate feature relative addresses Sathvika Vasireddy
2026-05-05 8:46 ` [PATCH v1 1/6] objtool/powerpc: Add build-time fixup of alternate feature branch targets Sathvika Vasireddy
2026-05-05 14:45 ` Peter Zijlstra
2026-05-05 14:49 ` Peter Zijlstra
2026-05-05 15:48 ` Christophe Leroy (CS GROUP)
2026-05-06 7:17 ` Peter Zijlstra
2026-05-06 14:28 ` Segher Boessenkool
2026-05-05 15:56 ` Segher Boessenkool
2026-05-06 7:00 ` Peter Zijlstra
2026-05-06 13:58 ` Segher Boessenkool
2026-05-06 14:22 ` Peter Zijlstra
2026-05-06 14:42 ` Segher Boessenkool
2026-05-05 8:46 ` [PATCH v1 2/6] objtool: Set ELF_F_LAYOUT flag to preserve vmlinux segment layout Sathvika Vasireddy
2026-05-05 8:46 ` [PATCH v1 3/6] objtool: Fix "can't find starting instruction" warnings on vmlinux Sathvika Vasireddy
2026-05-05 8:46 ` Sathvika Vasireddy [this message]
2026-05-05 8:46 ` [PATCH v1 5/6] kbuild: Add objtool integration for PowerPC feature fixups Sathvika Vasireddy
2026-05-05 8:46 ` [PATCH v1 6/6] powerpc: Enable build-time feature fixup processing by default Sathvika Vasireddy
2026-05-05 9:05 ` [PATCH v1 0/6] objtool: Fixup alternate feature relative addresses Christophe Leroy (CS GROUP)
2026-05-05 11:40 ` Peter Zijlstra
2026-06-11 17:40 ` Shivang Upadhyay
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260505084628.17940-5-sv@linux.ibm.com \
--to=sv@linux.ibm.com \
--cc=alexandre.chartre@oracle.com \
--cc=alexghiti@rivosinc.com \
--cc=aliceryhl@google.com \
--cc=ardb@kernel.org \
--cc=bp@alien8.de \
--cc=chleroy@kernel.org \
--cc=elver@google.com \
--cc=ihor.solodrai@linux.dev \
--cc=jpoimboe@kernel.org \
--cc=kees@kernel.org \
--cc=legion@kernel.org \
--cc=linux-kbuild@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=lossin@kernel.org \
--cc=maddy@linux.ibm.com \
--cc=masahiroy@kernel.org \
--cc=mpe@ellerman.id.au \
--cc=nathan@kernel.org \
--cc=npiggin@gmail.com \
--cc=nsc@kernel.org \
--cc=ojeda@kernel.org \
--cc=peterz@infradead.org \
--cc=pmladek@suse.com \
--cc=rostedt@goodmis.org \
--cc=tamird@kernel.org \
--cc=thomas.weissschuh@linutronix.de \
--cc=thuth@redhat.com \
--cc=yuxuan.zuo@outlook.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.