aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Config.mk1
-rw-r--r--Makefile4
-rw-r--r--xen/Rules.mk2
-rw-r--r--xen/arch/x86/Rules.mk9
4 files changed, 14 insertions, 2 deletions
diff --git a/Config.mk b/Config.mk
index 390a9b3abe..facf5ec123 100644
--- a/Config.mk
+++ b/Config.mk
@@ -3,6 +3,7 @@
# Currently supported architectures: x86_32, x86_64
XEN_COMPILE_ARCH ?= $(shell uname -m | sed -e s/i.86/x86_32/)
XEN_TARGET_ARCH ?= $(XEN_COMPILE_ARCH)
+XEN_TARGET_X86_PAE ?= n
# Tools to run on system hosting the build
HOSTCC = gcc
diff --git a/Makefile b/Makefile
index ebba9ffe9c..5545aa4977 100644
--- a/Makefile
+++ b/Makefile
@@ -31,6 +31,10 @@ all: dist
include Config.mk
include buildconfigs/Rules.mk
+ifeq ($(XEN_TARGET_X86_PAE),y)
+export pae=y
+endif
+
.PHONY: all dist install xen tools kernels docs world clean mkpatches mrproper
.PHONY: kbuild kdelete kclean
diff --git a/xen/Rules.mk b/xen/Rules.mk
index 751bf460d3..d14d388017 100644
--- a/xen/Rules.mk
+++ b/xen/Rules.mk
@@ -51,7 +51,6 @@ ALL_OBJS += $(BASEDIR)/acm/acm.o
endif
ALL_OBJS += $(BASEDIR)/arch/$(TARGET_ARCH)/arch.o
-
test-gcc-flag = $(shell $(CC) -v --help 2>&1 | grep -q " $(1) " && echo $(1))
include $(BASEDIR)/arch/$(TARGET_ARCH)/Rules.mk
@@ -91,4 +90,3 @@ CFLAGS := $(strip $(CFLAGS))
%.o: %.S $(HDRS) Makefile
$(CC) $(CFLAGS) -D__ASSEMBLY__ -c $< -o $@
-
diff --git a/xen/arch/x86/Rules.mk b/xen/arch/x86/Rules.mk
index 647640797d..0675d763cd 100644
--- a/xen/arch/x86/Rules.mk
+++ b/xen/arch/x86/Rules.mk
@@ -1,6 +1,12 @@
########################################
# x86-specific definitions
+#
+# If you change any of these configuration options then you must
+# 'make clean' before rebuilding.
+#
+pae ?= n
+
CFLAGS += -nostdinc -fno-builtin -fno-common -fno-strict-aliasing
CFLAGS += -iwithprefix include -Wall -Werror -Wno-pointer-arith -pipe
CFLAGS += -I$(BASEDIR)/include
@@ -24,6 +30,9 @@ CFLAGS += $(call test-gcc-flag,-fno-stack-protector-all)
ifeq ($(TARGET_SUBARCH),x86_32)
CFLAGS += -m32 -march=i686
LDFLAGS += -m elf_i386
+ifeq ($(pae),y)
+CFLAGS += -DCONFIG_X86_PAE=1
+endif
endif
ifeq ($(TARGET_SUBARCH),x86_64)