aboutsummaryrefslogtreecommitdiffstats
path: root/buildconfigs
diff options
context:
space:
mode:
authorIan Campbell <ian.campbell@xensource.com>2007-07-09 11:29:39 +0100
committerIan Campbell <ian.campbell@xensource.com>2007-07-09 11:29:39 +0100
commit97e8f14b87c39052aeaf017b7e5aef1e329486a0 (patch)
tree70a05aa27be81cdeb5188a76bb49b0022cf10c57 /buildconfigs
parent2141bdd107a177a87f010853ee998107ae77bb96 (diff)
downloadxen-97e8f14b87c39052aeaf017b7e5aef1e329486a0.tar.gz
xen-97e8f14b87c39052aeaf017b7e5aef1e329486a0.tar.bz2
xen-97e8f14b87c39052aeaf017b7e5aef1e329486a0.zip
Add hooks for a script to update kernel configuration after tree has been
prepared. This is to support upstream sources which do not enable Xen in their default configurations. Signed-off-by: Ian Campbell <ian.campbell@xensource.com>
Diffstat (limited to 'buildconfigs')
-rw-r--r--buildconfigs/enable-xen-config36
-rw-r--r--buildconfigs/mk.linux-2.6-paravirt4
-rw-r--r--buildconfigs/mk.linux-2.6-xen4
3 files changed, 43 insertions, 1 deletions
diff --git a/buildconfigs/enable-xen-config b/buildconfigs/enable-xen-config
new file mode 100644
index 0000000000..b427a12d90
--- /dev/null
+++ b/buildconfigs/enable-xen-config
@@ -0,0 +1,36 @@
+#!/bin/sh
+
+set -ex
+
+if [ $# -ne 1 ] ; then
+ echo "Usage $(basename $0) <config-file>" 1>&2
+ exit 1
+fi
+
+CONFIG=$1
+
+setopt()
+{
+ OPTION=$1
+ VALUE=$2
+
+ # First remove any existing instances of this option
+ sed -e "s/^# ${OPTION} is not set$//g ; s/^^{OPTION}=.$//g" -i "${CONFIG}"
+
+ # Then append the new value
+ case ${VALUE} in
+ y|m) echo "${OPTION}=${VALUE}" >> "${CONFIG}" ;;
+ n) echo "# ${OPTION} is not set" >> "${CONFIG}" ;;
+ *) echo "Invalid value ${VALUE} for ${OPTION}" 1>&2 ; exit 1 ;;
+ esac
+}
+
+setopt CONFIG_PARAVIRT y
+setopt CONFIG_XEN y
+setopt CONFIG_VMI y
+setopt CONFIG_LGUEST n
+setopt CONFIG_XEN_BLKDEV_FRONTEND y
+setopt CONFIG_XEN_NETDEV_FRONTEND y
+setopt CONFIG_HVC_XEN y
+
+exit 0
diff --git a/buildconfigs/mk.linux-2.6-paravirt b/buildconfigs/mk.linux-2.6-paravirt
index 4ff8d7b99b..a48da17600 100644
--- a/buildconfigs/mk.linux-2.6-paravirt
+++ b/buildconfigs/mk.linux-2.6-paravirt
@@ -8,6 +8,8 @@ IMAGE_TARGET ?= vmlinux bzImage
XEN_LINUX_ALLOW_INTERFACE_MISMATCH := y
-EXTRAVERSION ?=
+XEN_LINUX_CONFIG_UPDATE := buildconfigs/enable-xen-config
+
+EXTRAVERSION ?= -paravirt
include buildconfigs/mk.linux-2.6-xen
diff --git a/buildconfigs/mk.linux-2.6-xen b/buildconfigs/mk.linux-2.6-xen
index a0c6916349..4fd195b397 100644
--- a/buildconfigs/mk.linux-2.6-xen
+++ b/buildconfigs/mk.linux-2.6-xen
@@ -74,6 +74,10 @@ $(LINUX_DIR)/include/linux/autoconf.h: $(LINUX_SRCDIR)/.valid-src
else \
echo "No configuration method found for this kernel" ; \
fi
+ifneq ($(XEN_LINUX_CONFIG_UPDATE),)
+ echo "Updating $(CONFIG_FILE) using $(XEN_LINUX_CONFIG_UPDATE)"
+ sh $(XEN_LINUX_CONFIG_UPDATE) $(CONFIG_FILE)
+endif
ifeq ($(XEN_TARGET_ARCH),x86_32)
ifeq ($(pae),y)
sed -e 's!^CONFIG_HIGHMEM4G=y$$!\# CONFIG_HIGHMEM4G is not set!;s!^\# CONFIG_HIGHMEM64G is not set$$!CONFIG_HIGHMEM64G=y!' $(CONFIG_FILE) > $(CONFIG_FILE)- && mv $(CONFIG_FILE)- $(CONFIG_FILE)