Re: [PATCH 2/3] kbuild: Add '.rel.*' strip pattern for vmlinux
From: Ard Biesheuvel
Date: Fri Oct 10 2025 - 13:16:36 EST
On Wed, 8 Oct 2025 at 15:47, Nathan Chancellor <nathan@xxxxxxxxxx> wrote:
>
> Prior to binutils commit c12d9fa2afe ("Support objcopy
> --remove-section=.relaFOO") [1] in 2.32, stripping relocation sections
> required the trailing period (i.e., '.rel.*') to work properly.
>
> After commit 3e86e4d74c04 ("kbuild: keep .modinfo section in
> vmlinux.unstripped"), there is an error with binutils 2.31.1 or earlier
> because these sections are not properly removed:
>
> s390-linux-objcopy: st6tO8Ev: symbol `.modinfo' required but not present
> s390-linux-objcopy:st6tO8Ev: no symbols
>
> Add the old pattern to resolve this issue (along with a comment to allow
> cleaning this when binutils 2.32 or newer is the minimum supported
> version). While the aforementioned kbuild change exposes this, the
> pattern was originally changed by commit 71d815bf5dfd ("kbuild: Strip
> runtime const RELA sections correctly"), where it would still be
> incorrect with binutils older than 2.32.
>
> Fixes: 71d815bf5dfd ("kbuild: Strip runtime const RELA sections correctly")
> Link: https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=c12d9fa2afe7abcbe407a00e15719e1a1350c2a7 [1]
> Reported-by: Linux Kernel Functional Testing <lkft@xxxxxxxxxx>
> Closes: https://lore.kernel.org/CA+G9fYvVktRhFtZXdNgVOL8j+ArsJDpvMLgCitaQvQmCx=hwOQ@xxxxxxxxxxxxxx/
> Signed-off-by: Nathan Chancellor <nathan@xxxxxxxxxx>
Acked-by: Ard Biesheuvel <ardb@xxxxxxxxxx>
> ---
> Cc: Ard Biesheuvel <ardb@xxxxxxxxxx>
> ---
> scripts/Makefile.vmlinux | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/scripts/Makefile.vmlinux b/scripts/Makefile.vmlinux
> index a62639982be5..c02f85c2e241 100644
> --- a/scripts/Makefile.vmlinux
> +++ b/scripts/Makefile.vmlinux
> @@ -83,6 +83,9 @@ endif
>
> remove-section-y := .modinfo
> remove-section-$(CONFIG_ARCH_VMLINUX_NEEDS_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-symbols := -w --strip-symbol='__mod_device_table__*'
>
>
> --
> 2.51.0
>