<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<p><font face="monospace">Hi Nicolas, <br>
</font></p>
<p><font face="monospace">Thank you for the review and suggestions!</font><br>
</p>
<div class="moz-cite-prefix"><font face="monospace">On 10/5/25 1:13
AM, Nicolas Schier wrote:</font><br>
</div>
<blockquote type="cite" cite="mid:aOF4223Q5egUS_in@levanger">
<pre wrap="" class="moz-quote-pre">On Mon, Sep 29, 2025 at 01:34:55PM +0530, Sathvika Vasireddy wrote:
</pre>
<blockquote type="cite">
<pre wrap="" class="moz-quote-pre">Add build system support for PowerPC feature fixup processing:
- Add HAVE_OBJTOOL_FTR_FIXUP config option for architectures that support
build-time feature fixup processing
- Integrate objtool feature fixup processing into vmlinux build
Suggested-by: Masahiro Yamada <a class="moz-txt-link-rfc2396E" href="mailto:masahiroy@kernel.org"><masahiroy@kernel.org></a>
Signed-off-by: Sathvika Vasireddy <a class="moz-txt-link-rfc2396E" href="mailto:sv@linux.ibm.com"><sv@linux.ibm.com></a>
---
Makefile | 7 +++++++
arch/Kconfig | 3 +++
scripts/Makefile.lib | 5 +++--
scripts/Makefile.vmlinux | 13 ++++++++++++-
4 files changed, 25 insertions(+), 3 deletions(-)
</pre>
</blockquote>
<pre wrap="" class="moz-quote-pre">...
</pre>
<blockquote type="cite">
<pre wrap="" class="moz-quote-pre">diff --git a/arch/Kconfig b/arch/Kconfig
index d1b4ffd6e085..d870aab17cba 100644
--- a/arch/Kconfig
+++ b/arch/Kconfig
@@ -1334,6 +1334,9 @@ config HAVE_UACCESS_VALIDATION
bool
select OBJTOOL
+config HAVE_OBJTOOL_FTR_FIXUP
</pre>
</blockquote>
<pre wrap="" class="moz-quote-pre">
For me, FTR is not that natural to parse. Is there a reason for using
FTR instead of FEATURE?</pre>
</blockquote>
<p><font face="monospace">The naming comes from the PowerPC-specific
section names (__ftr_alt_*) , and (*ftr_fixup) in vmlinux.
However, I agree that FEATURE is more readable and I'll update
all references to use FEATURE_FIXUP instead.</font></p>
<p><font face="monospace">Also, on a second thought, since feature
fixup is PowerPC-specific and no other architecture has this
mechanism (please correct me if I am wrong), I will move
HAVE_OBJTOOL_FEATURE_FIXUP from arch/Kconfig to
arch/powerpc/Kconfig in the next version.<br>
</font></p>
<blockquote type="cite" cite="mid:aOF4223Q5egUS_in@levanger">
<pre wrap="" class="moz-quote-pre">
...
</pre>
<blockquote type="cite">
<pre wrap="" class="moz-quote-pre">diff --git a/scripts/Makefile.vmlinux b/scripts/Makefile.vmlinux
index b64862dc6f08..94cc2bba929a 100644
--- a/scripts/Makefile.vmlinux
+++ b/scripts/Makefile.vmlinux
@@ -84,7 +84,8 @@ ARCH_POSTLINK := $(wildcard $(srctree)/arch/$(SRCARCH)/Makefile.postlink)
# Final link of vmlinux with optional arch pass after final link
cmd_link_vmlinux = \
$< "$(LD)" "$(KBUILD_LDFLAGS)" "$(LDFLAGS_vmlinux)" "$@"; \
- $(if $(ARCH_POSTLINK), $(MAKE) -f $(ARCH_POSTLINK) $@, true)
+ $(if $(ARCH_POSTLINK), $(MAKE) -f $(ARCH_POSTLINK) $@, true) \
+ $(cmd_objtool_vmlinux)
targets += $(vmlinux-final)
$(vmlinux-final): scripts/link-vmlinux.sh vmlinux.o $(KBUILD_LDS) FORCE
@@ -131,3 +132,13 @@ existing-targets := $(wildcard $(sort $(targets)))
-include $(foreach f,$(existing-targets),$(dir $(f)).$(notdir $(f)).cmd)
.PHONY: $(PHONY)
+
+# objtool for vmlinux
+# ----------------------------------
+#
+# For feature fixup, objtool does not run on individual
+# translation units. Run this on vmlinux instead.
+
+ifdef CONFIG_HAVE_OBJTOOL_FTR_FIXUP
+cmd_objtool_vmlinux = ; $(objtool) --ftr-fixup --link $@
</pre>
</blockquote>
<pre wrap="" class="moz-quote-pre">
This cmd_* definition is broken as $(call cmd,objtool_vmlinux) would be
evaluated to '... ; ; ...' (shell syntax error).
What about putting the objtool call right into cmd_link_vmlinux?</pre>
</blockquote>
<p><font face="monospace">Sure, I will include the changes to put
the objtool call into cmd_link_vmlinux as suggested, in the next
version.</font><span style="white-space: pre-wrap">
</span></p>
<font face="monospace"><span style="white-space: pre-wrap">Thanks,
Sathvika</span></font><span style="white-space: pre-wrap">
</span>
</body>
</html>