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 <[email protected]>
> Signed-off-by: Sathvika Vasireddy <[email protected]>
> ---
>  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 <[email protected]>  # kbuild

Attachment: signature.asc
Description: PGP signature

Reply via email to