On Mon, Feb 09, 2026 at 02:18:20PM +0530, Sathvika Vasireddy wrote: > diff --git a/scripts/Makefile.vmlinux b/scripts/Makefile.vmlinux > index e3dd7fc62f20..3d2a203b8908 100644 > --- a/scripts/Makefile.vmlinux > +++ b/scripts/Makefile.vmlinux > @@ -88,6 +88,11 @@ remove-section-$(CONFIG_ARCH_VMLINUX_NEEDS_RELOCS) += > '.rel*' '!.rel*.dyn' > # > https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=c12d9fa2afe7abcbe407a00e15719e1a1350c2a7 > remove-section-$(CONFIG_ARCH_VMLINUX_NEEDS_RELOCS) += '.rel.*' > > +# --emit-relocs produces .rela.* sections needed by objtool --ftr-fixup; > +# strip them from vmlinux after fixup processing is complete. > +remove-section-$(CONFIG_HAVE_OBJTOOL_FTR_FIXUP) += '.rel*' '!.rel*.dyn' > +remove-section-$(CONFIG_HAVE_OBJTOOL_FTR_FIXUP) += '.rel.*'
Rather than duplicating the remove-section values from CONFIG_ARCH_VMLINUX_NEEDS_RELOCS, I would like to see them combined with something like: diff --git a/scripts/Makefile.vmlinux b/scripts/Makefile.vmlinux index fcae1e432d9a..f70c3a36aee2 100644 --- a/scripts/Makefile.vmlinux +++ b/scripts/Makefile.vmlinux @@ -81,11 +81,15 @@ endif # vmlinux # --------------------------------------------------------------------------- +# These configurations require vmlinux.unstripped to be linked with +# '--emit-relocs', which need to be stripped from the final vmlinux. +uses-emit-relocs := $(or $(CONFIG_ARCH_VMLINUX_NEEDS_RELOCS),$(CONFIG_HAVE_OBJTOOL_FTR_FIXUP)) + remove-section-y := .modinfo -remove-section-$(CONFIG_ARCH_VMLINUX_NEEDS_RELOCS) += '.rel*' '!.rel*.dyn' +remove-section-$(uses-emit-relocs) += '.rel*' '!.rel*.dyn' # for compatibility with binutils < 2.32 # https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=c12d9fa2afe7abcbe407a00e15719e1a1350c2a7 -remove-section-$(CONFIG_ARCH_VMLINUX_NEEDS_RELOCS) += '.rel.*' +remove-section-$(uses-emit-relocs) += '.rel.*' remove-symbols := -w --strip-unneeded-symbol='__mod_device_table__*'
