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

From: Kees Cook
Date: Mon Jun 22 2020 - 18:57:25 EST


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