From: Jan Beulich Date: Thu, 2 Nov 2023 07:25:59 +0000 (+0100) Subject: build: silence GNU ld 2.39 warning about executable stacks X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=9c20bc009c907001efcd590a796ed67068f09b92;p=people%2Faperard%2Fmini-os.git build: silence GNU ld 2.39 warning about executable stacks While for C files the compiler is supposed to arrange for emitting respective information, for assembly sources we're responsible ourselves. For the new use of cc-option to work we cannot pass -S to the compiler anymore. We need the compiler to actually invoke the assembler, so switch to using -c. Signed-off-by: Jan Beulich Reviewed-by: Samuel Thibault --- diff --git a/Config.mk b/Config.mk index 677e93d..bfdf885 100644 --- a/Config.mk +++ b/Config.mk @@ -1,4 +1,6 @@ -# +# Convenient variables +comma := , + # Compare $(1) and $(2) and replace $(2) with $(1) if they differ # # Typically $(1) is a newly generated file and $(2) is the target file @@ -20,7 +22,7 @@ endef # # Usage: cflags-y += $(call cc-option,$(CC),-march=winchip-c6,-march=i586) cc-option = $(shell if test -z "`echo 'void*p=1;' | \ - $(1) $(2) -S -o /dev/null -x c - 2>&1 | grep -- $(2) -`"; \ + $(1) $(2) -c -o /dev/null -x c - 2>&1 | grep -- $(2) -`"; \ then echo "$(2)"; else echo "$(3)"; fi ;) ifneq ($(MINIOS_CONFIG),) diff --git a/minios.mk b/minios.mk index ef4d2f9..f718ee6 100644 --- a/minios.mk +++ b/minios.mk @@ -28,6 +28,10 @@ endif # Make the headers define our internal stuff DEF_CFLAGS += -D__INSIDE_MINIOS__ +# Arrange for assembly files to have a proper .note.GNU-stack section added, +# to silence warnings otherwise issued by GNU ld 2.39 and newer. +DEF_ASFLAGS += $(call cc-option,$(CC),-Wa$(comma)--noexecstack) + # Build the CFLAGS and ASFLAGS for compiling and assembling. # DEF_... flags are the common mini-os flags, # ARCH_... flags may be defined in arch/$(TARGET_ARCH_FAM/rules.mk