This is a preparatory patch. A future patch will not even use
$(CFLAGS) to seed $(XEN_CFLAGS).
Signed-off-by: Anthony PERARD
---
xen/Makefile | 41 ++---
xen/arch/arm/arch.mk | 4 +--
xen/arch/riscv/arch.mk | 4 +--
xen/arch/x86/arch.mk | 58 +-
4 files changed, 54 insertions(+), 53 deletions(-)
diff --git a/xen/Makefile b/xen/Makefile
index c4a83fca76..b3bffe8c6f 100644
--- a/xen/Makefile
+++ b/xen/Makefile
@@ -259,6 +259,7 @@ export KBUILD_DEFCONFIG := $(ARCH)_defconfig
export XEN_TREEWIDE_CFLAGS := $(CFLAGS)
XEN_AFLAGS =
+XEN_CFLAGS = $(CFLAGS)
# CLANG_FLAGS needs to be calculated before calling Kconfig
ifneq ($(shell $(CC) --version 2>&1 | head -n 1 | grep clang),)
@@ -284,7 +285,7 @@ CLANG_FLAGS += $(call or,$(t1),$(t2),$(t3))
endif
CLANG_FLAGS += -Werror=unknown-warning-option
-CFLAGS += $(CLANG_FLAGS)
+XEN_CFLAGS += $(CLANG_FLAGS)
export CLANG_FLAGS
endif
@@ -293,7 +294,7 @@ ifeq ($(call ld-ver-build-id,$(LD)),n)
XEN_LDFLAGS_BUILD_ID :=
XEN_HAS_BUILD_ID := n
else
-CFLAGS += -DBUILD_ID
+XEN_CFLAGS += -DBUILD_ID
XEN_TREEWIDE_CFLAGS += -DBUILD_ID
XEN_HAS_BUILD_ID := y
XEN_LDFLAGS_BUILD_ID := --build-id=sha1
@@ -388,30 +389,30 @@ include/config/%.conf include/config/%.conf.cmd:
$(KCONFIG_CONFIG)
$(Q)$(MAKE) $(build)=tools/kconfig syncconfig
ifeq ($(CONFIG_DEBUG),y)
-CFLAGS += -O1
+XEN_CFLAGS += -O1
else
-CFLAGS += -O2
+XEN_CFLAGS += -O2
endif
ifeq ($(CONFIG_FRAME_POINTER),y)
-CFLAGS += -fno-omit-frame-pointer
+XEN_CFLAGS += -fno-omit-frame-pointer
else
-CFLAGS += -fomit-frame-pointer
+XEN_CFLAGS += -fomit-frame-pointer
endif
CFLAGS-$(CONFIG_CC_SPLIT_SECTIONS) += -ffunction-sections -fdata-sections
-CFLAGS += -nostdinc -fno-builtin -fno-common
-CFLAGS += -Werror -Wredundant-decls -Wno-pointer-arith
-$(call cc-option-add,CFLAGS,CC,-Wvla)
-CFLAGS += -pipe -D__XEN__ -include $(srctree)/include/xen/config.h
+XEN_CFLAGS += -nostdinc -fno-builtin -fno-common
+XEN_CFLAGS += -Werror -Wredundant-decls -Wno-pointer-arith
+$(call cc-option-add,XEN_CFLAGS,CC,-Wvla)
+XEN_CFLAGS += -pipe -D__XEN__ -include $(srctree)/include/xen/config.h
CFLAGS-$(CONFIG_DEBUG_INFO) += -g
ifneq ($(CONFIG_CC_IS_CLANG),y)
# Clang doesn't understand this command line argument, and doesn't appear to
# have a suitable alternative. The resulting compiled binary does function,
# but has an excessively large symbol table.
-CFLAGS += -Wa,--strip-local-absolute
+XEN_CFLAGS += -Wa,--strip-local-absolute
endif
XEN_AFLAGS += -D__ASSEMBLY__
@@ -420,14 +421,14 @@ $(call
cc-option-add,XEN_AFLAGS,CC,-Wa$(comma)--noexecstack)
LDFLAGS-$(call ld-option,--warn-rwx-segments) += --no-warn-rwx-segments
-CFLAGS += $(CFLAGS-y)
+XEN_CFLAGS += $(CFLAGS-y)
# allow extra CFLAGS externally via EXTRA_CFLAGS_XEN_CORE
-CFLAGS += $(EXTRA_CFLAGS_XEN_CORE)
+XEN_CFLAGS += $(EXTRA_CFLAGS_XEN_CORE)
# Most CFLAGS are safe for assembly files:
# -std=gnu{89,99} gets confused by #-prefixed end-of-line comments
# -flto makes no sense and annoys clang
-XEN_AFLAGS += $(filter-out -std=gnu% -flto,$(CFLAGS)) $(AFLAGS-y)
+XEN_AFLAGS += $(filter-out -std=gnu% -flto,$(XEN_CFLAGS)) $(AFLAGS-y)
# LDFLAGS are only passed directly to $(LD)
LDFLAGS += $(LDFLAGS_DIRECT) $(LDFLAGS-y)
@@ -439,16 +440,16 @@ CFLAGS_UBSAN :=
endif
ifeq ($(CONFIG_LTO),y)
-CFLAGS += -flto
+XEN_CFLAGS += -flto
LDFLAGS-$(CONFIG_CC_IS_CLANG) += -plugin LLVMgold.so
endif
ifdef building_out_of_srctree
-CFLAGS += -I$(objtree)/include
-CFLAGS += -I$(objtree)/arch/$(TARGET_ARCH)/include
+XEN_CFLAGS += -I$(objtree)/include
+XEN_CFLAGS += -I$(objtree)/arch/$(TARGET_ARCH)/include
endif
-CFLAGS += -I$(srctree)/include
-CFLAGS += -I$(srctree)/arch/$(TARGET_ARCH)/include
+XEN_CFLAGS += -I$(srctree)/include
+XEN_CFLAGS += -I$(srctree)/arch/$(TARGET_ARCH)/include
# Note that link order matters!
ALL_OBJS-y:= common/built_in.o
@@ -463,7 +464,7 @@ ALL_LIBS-y:= lib/lib.a
include $(srctree)/arch/$(TARGET_ARCH)/arch.mk
# define new variables to avoid the ones defined in Config.mk
-export XEN_CFLAGS := $(CFLAGS)
+export XEN_CFLAGS := $(XEN_CFLAGS)
export XEN_AFLAGS := $(XEN_AFLAGS)
export XEN_LDFLAGS := $(LDFLAGS)
export CFLAGS_UBSAN
diff --git a/xen/arch/arm/arch.mk b/xen/arch/arm/arch.mk
index 58db76c4e1..300b8bf7ae 100644
--- a/xen/arch/arm/arch.mk
+++ b/xen/arch/arm/arch.mk
@@ -1,8 +1,8 @@
# arm-specific definitions
-$(call cc-options-add,CFLAGS,CC,$(EMBEDDED_EXTRA_CFLAGS))
-$(call cc-option-add,CFLAGS,CC,-Wnested-externs)
+$(call cc-options-add,XEN_CFLAGS,CC,$(EMBEDDED_EXTRA_CFLAGS))
+$(call cc-option-add,XEN_CFLAGS,CC,-Wnested-externs)
# Prevent floating-point variables from creeping into Xen.
CFLAGS-$(CONFIG_ARM_32) += -msoft-float
diff --git a/xen/arch/riscv/arch.mk b/xen/arch/riscv/arch.mk
index 7448f759b4..aadf373ce8 100644
--- a/xen/arch/riscv/arch.mk
+++