[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] build: silence GNU ld 2.39 warning about executable stacks



Jan Beulich, le mar. 24 oct. 2023 12:20:40 +0200, a ecrit:
> 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 <jbeulich@xxxxxxxx>

Reviewed-by: Samuel Thibault <samuel.thibault@xxxxxxxxxxxx>

> 
> --- 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),)
> --- 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



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.