qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Paolo Bonzini <pbonzini@redhat.com>
To: qemu-devel@nongnu.org
Cc: Fabiano Rosas <farosas@suse.de>,
	Vasiliy Ulyanov <vulyanov@suse.de>,
	Thomas Huth <thuth@redhat.com>,
	stable@vger.kernel.org
Subject: [PULL 01/24] optionrom: Remove build-id section
Date: Tue,  3 Oct 2023 10:30:18 +0200	[thread overview]
Message-ID: <20231003083042.110065-2-pbonzini@redhat.com> (raw)
In-Reply-To: <20231003083042.110065-1-pbonzini@redhat.com>

From: Fabiano Rosas <farosas@suse.de>

Our linker script for optionroms specifies only the placement of the
.text section, leaving the linker free to place the remaining sections
at arbitrary places in the file.

Since at least binutils 2.39, the .note.gnu.build-id section is now
being placed at the start of the file, which causes label addresses to
be shifted. For linuxboot_dma.bin that means that the PnP header
(among others) will not be found when determining the type of ROM at
optionrom_setup():

(0x1c is the label _pnph, where the magic "PnP" is)

$ xxd /usr/share/qemu/linuxboot_dma.bin | grep "PnP"
00000010: 0000 0000 0000 0000 0000 1c00 2450 6e50  ............$PnP

$ xxd pc-bios/optionrom/linuxboot_dma.bin | grep "PnP"
00000010: 0000 0000 0000 0000 0000 4c00 2450 6e50  ............$PnP
                                   ^bad

Using a freshly built linuxboot_dma.bin ROM results in a broken boot:

  SeaBIOS (version rel-1.16.2-0-gea1b7a073390-prebuilt.qemu.org)
  Booting from Hard Disk...
  Boot failed: could not read the boot disk

  Booting from Floppy...
  Boot failed: could not read the boot disk

  No bootable device.

We're not using the build-id section, so pass the --build-id=none
option to the linker to remove it entirely.

Note: In theory, this same issue could happen with any other
section. The ideal solution would be to have all unused sections
discarded in the linker script. However that would be a larger change,
specially for the pvh rom which uses the .bss and COMMON sections so
I'm addressing only the immediate issue here.

Reported-by: Vasiliy Ulyanov <vulyanov@suse.de>
Signed-off-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Message-ID: <20230926192502.15986-1-farosas@suse.de>
Cc: stable@vger.kernel.org
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 pc-bios/optionrom/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pc-bios/optionrom/Makefile b/pc-bios/optionrom/Makefile
index b1fff0ba6c8..30d07026c79 100644
--- a/pc-bios/optionrom/Makefile
+++ b/pc-bios/optionrom/Makefile
@@ -36,7 +36,7 @@ config-cc.mak: Makefile
 	    $(call cc-option,-Wno-array-bounds)) 3> config-cc.mak
 -include config-cc.mak
 
-override LDFLAGS = -nostdlib -Wl,-T,$(SRC_DIR)/flat.lds
+override LDFLAGS = -nostdlib -Wl,--build-id=none,-T,$(SRC_DIR)/flat.lds
 
 pvh.img: pvh.o pvh_main.o
 
-- 
2.41.0



  reply	other threads:[~2023-10-03  8:31 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-10-03  8:30 [PULL 00/24] Audio, build system, misc fixes for 2023-10-03 Paolo Bonzini
2023-10-03  8:30 ` Paolo Bonzini [this message]
2023-10-03 10:04   ` [PULL 01/24] optionrom: Remove build-id section Michael Tokarev
2023-10-03  8:30 ` [PULL 02/24] accel/kvm/kvm-all: Handle register access errors Paolo Bonzini
2023-10-03  8:30 ` [PULL 03/24] e1000: remove old compatibility code Paolo Bonzini
2023-10-03  8:30 ` [PULL 04/24] pc: remove short_root_bus property Paolo Bonzini
2023-10-03  8:30 ` [PULL 05/24] make-release: do not ship dtc sources Paolo Bonzini
2023-10-03  8:30 ` [PULL 06/24] meson: clean up static_library keyword arguments Paolo Bonzini
2023-10-03  8:30 ` [PULL 07/24] Makefile: build plugins before running TCG tests Paolo Bonzini
2023-10-03  8:30 ` [PULL 08/24] esp: use correct type for esp_dma_enable() in sysbus_esp_gpio_demux() Paolo Bonzini
2023-10-03  8:30 ` [PULL 09/24] esp: restrict non-DMA transfer length to that of available data Paolo Bonzini
2023-10-03  8:30 ` [PULL 10/24] scsi-disk: ensure that FORMAT UNIT commands are terminated Paolo Bonzini
2023-10-03  8:30 ` [PULL 11/24] crypto: only include tls-cipher-suites in emulators Paolo Bonzini
2023-10-03  8:30 ` [PULL 12/24] ui/vnc: Require audiodev= to enable audio Paolo Bonzini
2023-10-03  8:30 ` [PULL 13/24] audio: Require AudioState in AUD_add_capture Paolo Bonzini
2023-10-03  8:30 ` [PULL 14/24] audio: allow returning an error from the driver init Paolo Bonzini
2023-10-03  8:30 ` [PULL 15/24] audio: return Error ** from audio_state_by_name Paolo Bonzini
2023-10-03  8:30 ` [PULL 16/24] audio: commonize voice initialization Paolo Bonzini
2023-10-03  8:30 ` [PULL 17/24] audio: simplify flow in audio_init Paolo Bonzini
2023-10-03  8:30 ` [PULL 18/24] audio: remove QEMU_AUDIO_* and -audio-help support Paolo Bonzini
2023-10-03  8:30 ` [PULL 19/24] Introduce machine property "audiodev" Paolo Bonzini
2023-10-03  8:30 ` [PULL 20/24] hw/arm: Support machine-default audiodev with fallback Paolo Bonzini
2023-10-03  8:30 ` [PULL 21/24] hw/ppc: " Paolo Bonzini
2023-10-03  8:30 ` [PULL 22/24] vt82c686 machines: " Paolo Bonzini
2023-10-03  8:30 ` [PULL 23/24] audio: propagate Error * out of audio_init Paolo Bonzini
2023-10-03  8:30 ` [PULL 24/24] audio: forbid default audiodev backend with -nodefaults Paolo Bonzini
2023-10-03 14:43 ` [PULL 00/24] Audio, build system, misc fixes for 2023-10-03 Stefan Hajnoczi
2023-10-03 15:36 ` Michael Tokarev

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20231003083042.110065-2-pbonzini@redhat.com \
    --to=pbonzini@redhat.com \
    --cc=farosas@suse.de \
    --cc=qemu-devel@nongnu.org \
    --cc=stable@vger.kernel.org \
    --cc=thuth@redhat.com \
    --cc=vulyanov@suse.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).