[PATCH] x86: Discard .note.gnu.property sections

Tom Rini trini at konsulko.com
Fri Jun 18 00:07:55 CEST 2021


On Fri, Jun 18, 2021 at 12:12:28AM +0800, Bin Meng wrote:

> When switching to kernel.org x86_64 gcc 11.1.0 toolchain, u-boot.rom
> built from qemu-x86_defconfig no longer boots anymore. Investigation
> shows that U-Boot fails at a very early stage during the boot process,
> in fdtdec_prepare_fdt() where fdt_check_header() complains that there
> is not a valid device tree found at gd->fdt_blob which points to _end.
> Now _end points to an allocated section .note.gnu.property which of
> course is wrong.
> 
> This issue is however not seen when using the default Ubuntu 20.04 gnu
> toolchain (gcc 9.3.0 with binutils 2.34). Further investigation shows
> that it is caused by a behavior change of binutils v2.36 which is part
> of the kernel.org gcc 11.1.0 toolchain, via the following commit:
> 
>   939b95c77bf2 ("Linux/x86: Configure gas with --enable-x86-used-note by default")
> 
> In fact, there was already a regression bug report [1] for binutils two
> months ago, but the binutils folks did not think it is a bug :(
> 
> To resolve this, there are several options:
> 
> * pass -Wa,-mx86-used-note=no to gas
> * pass -R .note.gnu.property to objcopy
> * discard the section in the linker script
> 
> Linux kernel uses the discard way [2], so let's do the same for U-Boot.
> 
> [1] https://sourceware.org/bugzilla/show_bug.cgi?id=27753
> [2] commit 4caffe6a28d3 ("x86/vdso: Discard .note.gnu.property sections in vDSO")
> 
> Signed-off-by: Bin Meng <bmeng.cn at gmail.com>

Reviewed-by: Tom Rini <trini at konsulko.com>

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 659 bytes
Desc: not available
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20210617/85ade7cd/attachment.sig>


More information about the U-Boot mailing list