|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH] zap linking-only option from EMBEDDED_EXTRA_CFLAGS
On Fri, Sep 09, 2022 at 09:22:52AM +0200, Jan Beulich wrote:
> While I was suspicious of the compiler issuing a diagnostic about an
> unused linking-only option when not doing any linking, I did check this
> with a couple of gcc versions only, but not with Clang. (Oddly enough at
> least older Clang versions complain about the use of '-nopie' now that
> we actually use '-no-pie'.) Filter out the problematic option in all
> cases where the variable is consumed for compilation only (which right
> now is everywhere).
>
> Fixes: ecd6b9759919 ("Config.mk: correct PIE-related option(s) in
> EMBEDDED_EXTRA_CFLAGS")
> Reported-by: Stefano Stabellini <sstabellini@xxxxxxxxxx>
> Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
> ---
> Arguably with all users of EMBEDDED_EXTRA_CFLAGS using these just for
> compiling, the option could be omitted from that variable right away.
> But if any compile-and-link-in-one-go use appeared, there would be an
> issue.
Is it feasible to have compile-and-link-in-one-go in one use feasible
with what we consider embedded (firmware or kernel like binaries). I
would expect those to always require a linker script and a separate
linking step.
>
> --- a/tools/firmware/Rules.mk
> +++ b/tools/firmware/Rules.mk
> @@ -13,7 +13,7 @@ endif
>
> CFLAGS += -Werror
>
> -$(call cc-options-add,CFLAGS,CC,$(EMBEDDED_EXTRA_CFLAGS))
> +$(call cc-options-add,CFLAGS,CC,$(filter-out
> -no-pie,$(EMBEDDED_EXTRA_CFLAGS)))
>
> $(call cc-option-add,CFLAGS,CC,-fcf-protection=none)
>
> --- a/tools/tests/x86_emulator/testcase.mk
> +++ b/tools/tests/x86_emulator/testcase.mk
> @@ -2,7 +2,7 @@ XEN_ROOT = $(CURDIR)/../../..
> CFLAGS :=
> include $(XEN_ROOT)/tools/Rules.mk
>
> -$(call cc-options-add,CFLAGS,CC,$(EMBEDDED_EXTRA_CFLAGS))
> +$(call cc-options-add,CFLAGS,CC,$(filter-out
> -no-pie,$(EMBEDDED_EXTRA_CFLAGS)))
Is the x86 emulator harness correct in using EMBEDDED_EXTRA_CFLAGS?
TBH I'm not sure the naming and usage of the variable is very
helpful, maybe it would better be STANDALONE_EXTRA_CFLAGS, and drop
it's usage from the x86 emulator test harness, open code the needed
flags for that use-case.
Thanks, Roger.
>
> CFLAGS += -fno-builtin -g0 $($(TESTCASE)-cflags)
>
> --- a/xen/arch/arm/arch.mk
> +++ b/xen/arch/arm/arch.mk
> @@ -1,7 +1,7 @@
> ########################################
> # arm-specific definitions
>
> -$(call cc-options-add,CFLAGS,CC,$(EMBEDDED_EXTRA_CFLAGS))
> +$(call cc-options-add,CFLAGS,CC,$(filter-out
> -no-pie,$(EMBEDDED_EXTRA_CFLAGS)))
> $(call cc-option-add,CFLAGS,CC,-Wnested-externs)
>
> # Prevent floating-point variables from creeping into Xen.
> --- a/xen/arch/x86/arch.mk
> +++ b/xen/arch/x86/arch.mk
> @@ -10,7 +10,7 @@ CFLAGS += -DXEN_IMG_OFFSET=$(XEN_IMG_OFF
> # Prevent floating-point variables from creeping into Xen.
> CFLAGS += -msoft-float
>
> -$(call cc-options-add,CFLAGS,CC,$(EMBEDDED_EXTRA_CFLAGS))
> +$(call cc-options-add,CFLAGS,CC,$(filter-out
> -no-pie,$(EMBEDDED_EXTRA_CFLAGS)))
> $(call cc-option-add,CFLAGS,CC,-Wnested-externs)
> $(call as-option-add,CFLAGS,CC,"vmcall",-DHAVE_AS_VMX)
> $(call as-option-add,CFLAGS,CC,"crc32 %eax$$(comma)%eax",-DHAVE_AS_SSE4_2)
> --- a/xen/arch/x86/boot/Makefile
> +++ b/xen/arch/x86/boot/Makefile
> @@ -12,7 +12,7 @@ endif
> $(obj)/head.o: $(head-bin-objs:.o=.bin)
>
> CFLAGS_x86_32 := $(subst -m64,-m32 -march=i686,$(XEN_TREEWIDE_CFLAGS))
> -$(call cc-options-add,CFLAGS_x86_32,CC,$(EMBEDDED_EXTRA_CFLAGS))
> +$(call cc-options-add,CFLAGS_x86_32,CC,$(filter-out
> -no-pie,$(EMBEDDED_EXTRA_CFLAGS)))
> CFLAGS_x86_32 += -Werror -fno-builtin -g0 -msoft-float
> ifdef building_out_of_srctree
> CFLAGS_x86_32 += -I$(objtree)/include
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |