[prev in list] [next in list] [prev in thread] [next in thread]
List: qemu-devel
Subject: Re: hppa-firmware.img missing build-id
From: Helge Deller <deller () gmx ! de>
Date: 2024-04-23 15:07:17
Message-ID: 96f04d1a-2470-4118-8e07-b864f58f241e () gmx ! de
[Download RAW message or body]
On 4/23/24 16:58, Cole Robinson wrote:
> On 4/23/24 10:11 AM, Cole Robinson wrote:
> > Hi,
> >
> > hppa-firmware.img and hppa-firmware64.img in qemu.git are missing ELF
> > build-id annotations. rpm builds on Fedora will error if an ELF binary
> > doesn't have build-id:
> >
> > RPM build errors:
> > Missing build-id in
> > /tmp/rpmbuild/BUILDROOT/qemu-9.0.0-1.rc2.fc41.x86_64/usr/share/qemu/hppa-firmware.img
> > Missing build-id in
> > /tmp/rpmbuild/BUILDROOT/qemu-9.0.0-1.rc2.fc41.x86_64/usr/share/qemu/hppa-firmware64.img
> > Generating build-id links failed
> >
> > I didn't hit this with qemu 8.2.* builds FWIW
> >
>
> Though checking older bundled hppa-firmware binaries with `readelf` I
> don't see build-id either, so now I'm not sure why those RPM builds were
> passing.
>
> FWIW the RPM check is deep in RPM code:
> https://github.com/rpm-software-management/rpm/blob/68d0f3119c3d46b6184f4704edb51749ce9f819e/build/files.c#L1976
>
> Maybe something else in hppa-firmware ELF headers caused this check to
> be skipped in the past
Maybe Fedora ignores binaries which don't have the executable flag set?
Qemu does not need it.
If so, a "chmod -x pc-bios/hppa-firmware*.img" should be sufficient.
Otherwise, adding "--build-id" to the link line when building the SeaBIOS
hppa-firmware.img does adds a build-id:
diff --git a/Makefile.parisc b/Makefile.parisc
index 5c34eb3d..256142f4 100644
--- a/Makefile.parisc
+++ b/Makefile.parisc
@@ -169,7 +169,7 @@ $(OUT)hppa-firmware$(BIT_SUFFIX).img: $(OUT)autoconf.h \
$(OUT)head.o $(OUT)ccode3 @echo " Linking $@"
$(Q)$(CPP) $(CPPFLAGS) -Isrc -D__ASSEMBLY__ -DBITS=$(BITS) \
src/parisc/pafirmware.lds.S -o $(OUT)pafirmware.lds $(Q)$(CC) $(CFLAGS32FLAT) -c \
src/version.c -o $(OUT)version.o
- $(Q)$(LD) -N -T $(OUT)pafirmware.lds $(OUT)head.o $(OUT)version.o -X -o $@ -e \
startup --as-needed $(OUT)ccode32flat.o $(LIBGCC) + $(Q)$(LD) -N -T \
$(OUT)pafirmware.lds $(OUT)head.o $(OUT)version.o -X -o $@ -e startup --as-needed \
--build-id $(OUT)ccode32flat.o $(LIBGCC)
deller@carbonx1:/home/cvs/LINUX/seabios$ eu-readelf -n out/hppa-firmware.img
Note section [ 1] '.note.gnu.build-id' of 36 bytes at offset 0x100:
Owner Data size Type
GNU 20 GNU_BUILD_ID
Build ID: 61a59ebba32fd40eadda7083983a1e1b04ec4082
Are you using the firmware blobs which come with qemu, or do you build Seabios-hppa \
yourself?
Helge
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic