The variable $(CFLAGS) is too often set in the environment,
especially when building a package for a distribution. Often, those
CFLAGS are intended to be use to build user spaces binaries, not a
kernel. This mean packager needs to takes extra steps to build Xen by
overriding the CFLAGS provided by the package build environment.
With this patch, we avoid using the variable $(CFLAGS). Also, the
hypervisor's build system have complete control over which CFLAGS are
used.
No change intended to XEN_CFLAGS used, beside some flags which may be
in a different order on the command line.
Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
---
Notes:
There's still $(EXTRA_CFLAGS_XEN_CORE) which allows to add more CFLAGS
if someone building Xen needs to add more CFLAGS to the hypervisor
build.
xen/Makefile | 11 ++++++++++-
xen/arch/arm/arch.mk | 4 ++++
xen/arch/x86/arch.mk | 2 ++
3 files changed, 16 insertions(+), 1 deletion(-)
diff --git a/xen/Makefile b/xen/Makefile
index b3bffe8c6f..4dc3acf2a6 100644
--- a/xen/Makefile
+++ b/xen/Makefile
@@ -259,7 +259,16 @@ export KBUILD_DEFCONFIG := $(ARCH)_defconfig
export XEN_TREEWIDE_CFLAGS := $(CFLAGS)
XEN_AFLAGS =
-XEN_CFLAGS = $(CFLAGS)
+XEN_CFLAGS =
+ifeq ($(XEN_OS),SunOS)
+ XEN_CFLAGS += -Wa,--divide -D_POSIX_C_SOURCE=200112L -D__EXTENSIONS__
+endif
+XEN_CFLAGS += -fno-strict-aliasing
+XEN_CFLAGS += -std=gnu99
+XEN_CFLAGS += -Wall -Wstrict-prototypes
+$(call cc-option-add,XEN_CFLAGS,CC,-Wdeclaration-after-statement)
+$(call cc-option-add,XEN_CFLAGS,CC,-Wno-unused-but-set-variable)
+$(call cc-option-add,XEN_CFLAGS,CC,-Wno-unused-local-typedefs)
# CLANG_FLAGS needs to be calculated before calling Kconfig
ifneq ($(shell $(CC) --version 2>&1 | head -n 1 | grep clang),)
diff --git a/xen/arch/arm/arch.mk b/xen/arch/arm/arch.mk
index 300b8bf7ae..0478fadde2 100644
--- a/xen/arch/arm/arch.mk
+++ b/xen/arch/arm/arch.mk
@@ -1,6 +1,10 @@
########################################
# arm-specific definitions
+ifeq ($(XEN_TARGET_ARCH),arm32)
+ XEN_CFLAGS += -marm
+endif
+
$(call cc-options-add,XEN_CFLAGS,CC,$(EMBEDDED_EXTRA_CFLAGS))
$(call cc-option-add,XEN_CFLAGS,CC,-Wnested-externs)
diff --git a/xen/arch/x86/arch.mk b/xen/arch/x86/arch.mk
index 5df3cf6bc3..fc3b1dc922 100644
--- a/xen/arch/x86/arch.mk
+++ b/xen/arch/x86/arch.mk
@@ -1,6 +1,8 @@
########################################
# x86-specific definitions
+XEN_CFLAGS += -m64
+
export XEN_IMG_OFFSET := 0x200000
XEN_CFLAGS += -I$(srctree)/arch/x86/include/asm/mach-generic
--
Anthony PERARD