Blob Blame History Raw
From 12cbd48e1e78f07b19df900b0f9ccdd633aa42ee Mon Sep 17 00:00:00 2001
From: Cole Robinson <crobinso@redhat.com>
Date: Mon, 27 Nov 2023 12:51:25 -0500
Subject: [PATCH] pc-bios/optionrom: Fix pvh.img ld build failure on fedora
 rawhide
Content-type: text/plain

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 | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/pc-bios/optionrom/Makefile b/pc-bios/optionrom/Makefile
index 30d07026c7..87cfc484c7 100644
--- a/pc-bios/optionrom/Makefile
+++ b/pc-bios/optionrom/Makefile
@@ -38,6 +38,16 @@ config-cc.mak: Makefile
 
 override LDFLAGS = -nostdlib -Wl,--build-id=none,-T,$(SRC_DIR)/flat.lds
 
+ld-test = $(LD) -v $1 >/dev/null 2>/dev/null
+ld-option = if $(call ld-test, $1); then \
+    echo "$(TARGET_PREFIX)$1 detected" && echo "override LDFLAGS += -Wl,$1" >&3; else \
+    echo "$(TARGET_PREFIX)$1 not detected" $(if $2,&& echo "override LDFLAGS += $2" >&3); fi
+
+config-ld.mak: Makefile
+	$(quiet-@)($(call ld-option,--no-warn-rwx-segments); \
+	    $(call ld-option,--no-warn-execstack)) 3> config-ld.mak
+-include config-ld.mak
+
 pvh.img: pvh.o pvh_main.o
 
 %.o: %.S
@@ -61,7 +71,7 @@ clean:
 	rm -f *.o *.d *.raw *.img *.bin *~
 
 distclean:
-	rm -f config-cc.mak
+	rm -f config-cc.mak config-ld.mak
 
 # suppress auto-removal of intermediate files
 .SECONDARY: