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
signature.asc
Description: PGP signature
