Re: [PATCH v2 1/3] vmlinux.lds.h: Add .gnu.version* to DISCARDS

From: FÄng-ruà SÃng
Date: Mon Jun 22 2020 - 19:04:54 EST


On Mon, Jun 22, 2020 at 3:57 PM Kees Cook <keescook@xxxxxxxxxxxx> wrote:
>
> On Mon, Jun 22, 2020 at 03:52:37PM -0700, Fangrui Song wrote:
> > > And it's not in the output:
> > >
> > > $ readelf -Vs arch/x86/boot/compressed/vmlinux | grep version
> > > No version information found in this file.
> > >
> > > So... for the kernel we need to silence it right now.
> >
> > Re-link with -M (or -Map file) to check where .gnu.version{,_d,_r} input
> > sections come from?
>
> It's not reporting it correctly:
>
> .gnu.version_d 0x00000000008966b0 0x0
> .gnu.version_d
> 0x00000000008966b0 0x0 arch/x86/boot/compressed/kernel_info.o
>
> .gnu.version 0x00000000008966b0 0x0
> .gnu.version 0x00000000008966b0 0x0 arch/x86/boot/compressed/kernel_info.o
>
> .gnu.version_r 0x00000000008966b0 0x0
> .gnu.version_r
> 0x00000000008966b0 0x0 arch/x86/boot/compressed/kernel_info.o
>
> it just reports whatever file is listed on the link command line first.
>
> > If it is a bug, we should probably figure out which version of binutils
> > has fixed the bug.
>
> I see this with binutils 2.34...
>
> --
> Kees Cook

:( It deserves a binutils bug
(https://sourceware.org/bugzilla/enter_bug.cgi?product=binutils ) and
a comment..

With the description adjusted to say that this works around a bug

Reviewed-by: Fangrui Song <maskray@xxxxxxxxxx>