|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH] x86/boot: Reinstate -nostdinc for CFLAGS_x86_32
On Tue, Sep 03, 2024 at 11:49:40AM +0100, Andrew Cooper wrote:
> Most of Xen is build using -nostdinc and a fully specified include path.
> However, the makefile line:
>
> $(head-bin-objs): XEN_CFLAGS := $(CFLAGS_x86_32) -fpic
>
> discards XEN_CFLAGS and replaces them with CFLAGS_x86_32.
>
> Reinstate -nostdinc, and add the arch include path to the command line. This
> is a latent bug for now, but it breaks properly with subsequent include
> changes.
>
> Fixes: d58a509e01c4 ("build,x86: remove the need for build32.mk")
> Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
> ---
> CC: Jan Beulich <JBeulich@xxxxxxxx>
> CC: Roger Pau Monné <roger.pau@xxxxxxxxxx>
> CC: Anthony PERARD <anthony.perard@xxxxxxxxxx>
> ---
> xen/arch/x86/boot/Makefile | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/xen/arch/x86/boot/Makefile b/xen/arch/x86/boot/Makefile
> index 03d8ce3a9e48..19eec01e176e 100644
> --- a/xen/arch/x86/boot/Makefile
> +++ b/xen/arch/x86/boot/Makefile
> @@ -13,11 +13,11 @@ $(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))
> -CFLAGS_x86_32 += -Werror -fno-builtin -g0 -msoft-float
> +CFLAGS_x86_32 += -Werror -nostdinc -fno-builtin -g0 -msoft-float
> ifneq ($(abs_objtree),$(abs_srctree))
> -CFLAGS_x86_32 += -I$(objtree)/include
> +CFLAGS_x86_32 += -I$(objtree)/include -I$(objtree)/arch/$(SRCARCH)/include
> endif
> -CFLAGS_x86_32 += -I$(srctree)/include
> +CFLAGS_x86_32 += -I$(srctree)/include -I$(srctree)/arch/$(SRCARCH)/include
I think it might be best to just filter out the include paths from
XEN_CFLAGS, iow:
CFLAGS_x86_32 += $(filter -I%,$(XEN_CFLAGS))
Instead of having to open-code the paths for the include search paths
here again. Using the filter leads to the following CC command line:
clang -MMD -MP -MF arch/x86/boot/.cmdline.o.d -m32 -march=i686 -DBUILD_ID
-fno-strict-aliasing -std=gnu99 -Wall -Wstrict-prototypes
-Wno-unused-but-set-variable -Wno-unused-local-typedefs -fno-pie
-fno-stack-protector -fno-exceptions -fno-asynchronous-unwind-tables -Werror
-fno-builtin -g0 -msoft-float -mregparm=3 -I./include -I./arch/x86/include
-I./arch/x86/include/generated -I./arch/x86/include/asm/mach-generic
-I./arch/x86/include/asm/mach-default -fpic
'-D__OBJECT_LABEL__=arch/x86/boot/cmdline.o' -c arch/x86/boot/cmdline.c -o
arch/x86/boot/.cmdline.o.tmp -MQ arch/x86/boot/cmdline.o
Thanks, Roger.
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |