pc-bios/optionrom/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
binutils 2.39 shows some warnings when building pvh.img
/usr/bin/ld: warning: pvh.o: missing .note.GNU-stack section implies executable stack
/usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
/usr/bin/ld: warning: pvh.img has a LOAD segment with RWX permissions
The latter of which is fatal on Fedora rawhide for some reason.
Add linker options to suppress the errors
Signed-off-by: Cole Robinson <crobinso@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 30d07026c7..f54ed39b54 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,--build-id=none,-T,$(SRC_DIR)/flat.lds
+override LDFLAGS = -nostdlib -Wl,--build-id=none,-T,$(SRC_DIR)/flat.lds -Wl,--no-warn-rwx-segments -Wl,--no-warn-execstack
pvh.img: pvh.o pvh_main.o
On Tue, Nov 28, 2023 at 09:36:47AM -0500, Cole Robinson wrote: > binutils 2.39 shows some warnings when building pvh.img > > /usr/bin/ld: warning: pvh.o: missing .note.GNU-stack section implies executable stack > /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker > /usr/bin/ld: warning: pvh.img has a LOAD segment with RWX permissions > > The latter of which is fatal on Fedora rawhide for some reason. > > Add linker options to suppress the errors This makes it silent, but I guess someone needs to confirm that this option ROM code genuinely does NOT need to have executable stack, otherwise the future change that is being warned about could impact it ? > > Signed-off-by: Cole Robinson <crobinso@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 30d07026c7..f54ed39b54 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,--build-id=none,-T,$(SRC_DIR)/flat.lds > +override LDFLAGS = -nostdlib -Wl,--build-id=none,-T,$(SRC_DIR)/flat.lds -Wl,--no-warn-rwx-segments -Wl,--no-warn-execstack > > pvh.img: pvh.o pvh_main.o > > > With regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
On Wed, Jan 03, 2024 at 12:44:39PM +0000, Daniel P. Berrangé wrote: > On Tue, Nov 28, 2023 at 09:36:47AM -0500, Cole Robinson wrote: > > binutils 2.39 shows some warnings when building pvh.img > > > > /usr/bin/ld: warning: pvh.o: missing .note.GNU-stack section implies executable stack > > /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker > > /usr/bin/ld: warning: pvh.img has a LOAD segment with RWX permissions > > > > The latter of which is fatal on Fedora rawhide for some reason. > > > > Add linker options to suppress the errors > > This makes it silent, but I guess someone needs to confirm that this > option ROM code genuinely does NOT need to have executable stack, > otherwise the future change that is being warned about could impact > it ? Skimming the code it does not look like it depends on a execute-able stack. Beside that the option rom will be loaded as raw binary by seabios and run without paging. There is nothing which could actually setup and enforce an NX stack ... Acked-by: Gerd Hoffmann <kraxel@redhat.com> take care, Gerd
On 1/3/24 10:44 AM, Gerd Hoffmann wrote: > On Wed, Jan 03, 2024 at 12:44:39PM +0000, Daniel P. Berrangé wrote: >> On Tue, Nov 28, 2023 at 09:36:47AM -0500, Cole Robinson wrote: >>> binutils 2.39 shows some warnings when building pvh.img >>> >>> /usr/bin/ld: warning: pvh.o: missing .note.GNU-stack section implies executable stack >>> /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker >>> /usr/bin/ld: warning: pvh.img has a LOAD segment with RWX permissions >>> >>> The latter of which is fatal on Fedora rawhide for some reason. >>> >>> Add linker options to suppress the errors >> >> This makes it silent, but I guess someone needs to confirm that this >> option ROM code genuinely does NOT need to have executable stack, >> otherwise the future change that is being warned about could impact >> it ? > > Skimming the code it does not look like it depends on a execute-able > stack. Beside that the option rom will be loaded as raw binary by > seabios and run without paging. There is nothing which could actually > setup and enforce an NX stack ... > > Acked-by: Gerd Hoffmann <kraxel@redhat.com> > I just realized this breaks the build on centos 9 with binutils 2.35.2-42.el9 make[1]: Leaving directory '/builddir/build/BUILD/qemu-8.2.0/qemu_kvm_build/pc-bios/optionrom' make[1]: Entering directory '/builddir/build/BUILD/qemu-8.2.0/qemu_kvm_build/pc-bios/optionrom' gcc -O2 -g -march=i486 -Wall -m32 -m16 -ffreestanding -I/builddir/build/BUILD/qemu-8.2.0/include -fcf-protection=none -fno-pie -no-pie -fno-stack-protector -Wno-array-bounds -nostdlib -Wl,--build-id=none,-T,/builddir/build/BUILD/qemu-8.2.0/pc-bios/optionrom/flat.lds -Wl,--no-warn-rwx-segments -Wl,--no-warn-execstack -s -o multiboot.img multiboot.o /usr/bin/ld: unrecognized option '--no-warn-rwx-segments' /usr/bin/ld: use the --help option for usage information This article has tips about how to fix these issues in the linker scripts, so maybe that's the better approach: https://www.redhat.com/en/blog/linkers-warnings-about-executable-stacks-and-segments Thanks, Cole
© 2016 - 2024 Red Hat, Inc.