<!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>