[RFC PATCH v4 5/6] kbuild: Add objtool integration for PowerPC feature fixups

Nicolas Schier nsc at kernel.org
Tue Mar 17 02:52:28 AEDT 2026


On Mon, Mar 16, 2026 at 11:52:36AM +0530, Sathvika Vasireddy wrote:
> 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 <masahiroy at kernel.org>
> Signed-off-by: Sathvika Vasireddy <sv at linux.ibm.com>
> ---
>  Makefile                 | 7 +++++++
>  scripts/Makefile.lib     | 4 ++--
>  scripts/Makefile.vmlinux | 3 ++-
>  3 files changed, 11 insertions(+), 3 deletions(-)
> 
> diff --git a/Makefile b/Makefile
> index 83ed80595378..861f5bec655c 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -1467,6 +1467,13 @@ ifdef CONFIG_OBJTOOL
>  prepare: tools/objtool
>  endif
>  
> +# CONFIG_OBJTOOL and CONFIG_HAVE_OBJTOOL_FTR_FIXUP are unrelated, separate
> +# options. It was integrated in objtool in order to borrow the elf parser,
> +# but this is different from how the other objtool commands are used.
> +ifdef CONFIG_HAVE_OBJTOOL_FTR_FIXUP
> +prepare: tools/objtool
> +endif
> +
>  ifdef CONFIG_BPF
>  ifdef CONFIG_DEBUG_INFO_BTF
>  prepare: tools/bpf/resolve_btfids
> diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib
> index e429d68b8594..c9478c717574 100644
> --- a/scripts/Makefile.lib
> +++ b/scripts/Makefile.lib
> @@ -179,10 +179,10 @@ cpp_flags      = -Wp,-MMD,$(depfile) $(NOSTDINC_FLAGS) $(LINUXINCLUDE)     \
>  
>  ld_flags       = $(KBUILD_LDFLAGS) $(ldflags-y) $(LDFLAGS_$(@F))
>  
> -ifdef CONFIG_OBJTOOL
> -
>  objtool := $(objtree)/tools/objtool/objtool
>  
> +ifdef CONFIG_OBJTOOL
> +
>  objtool-args-$(CONFIG_HAVE_JUMP_LABEL_HACK)		+= --hacks=jump_label
>  objtool-args-$(CONFIG_HAVE_NOINSTR_HACK)		+= --hacks=noinstr
>  objtool-args-$(CONFIG_MITIGATION_CALL_DEPTH_TRACKING)	+= --hacks=skylake
> diff --git a/scripts/Makefile.vmlinux b/scripts/Makefile.vmlinux
> index fcae1e432d9a..a1bef0638ecb 100644
> --- a/scripts/Makefile.vmlinux
> +++ b/scripts/Makefile.vmlinux
> @@ -65,7 +65,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);	\
> +	$(if $(CONFIG_HAVE_OBJTOOL_FTR_FIXUP), $(objtool) --ftr-fixup --link $@, true)
>  
>  targets += vmlinux.unstripped .vmlinux.export.o
>  vmlinux.unstripped: scripts/link-vmlinux.sh vmlinux.o .vmlinux.export.o $(KBUILD_LDS) FORCE
> -- 
> 2.43.0
> 

Acked-by: Nicolas Schier <nsc at kernel.org>  # kbuild
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://lists.ozlabs.org/pipermail/linuxppc-dev/attachments/20260316/0e405486/attachment.sig>


More information about the Linuxppc-dev mailing list