aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorack@localhost.localdomain <ack@localhost.localdomain>2006-07-12 11:58:40 +0100
committerack@localhost.localdomain <ack@localhost.localdomain>2006-07-12 11:58:40 +0100
commit1c93221134a425b9e9b1012bc6647b9d13e76a23 (patch)
treea619a60f6736095008218bfdbb3faba9787521df
parenteb29a36350b1afd7b023383bb71c4fce48f0eedc (diff)
downloadxen-1c93221134a425b9e9b1012bc6647b9d13e76a23.tar.gz
xen-1c93221134a425b9e9b1012bc6647b9d13e76a23.tar.bz2
xen-1c93221134a425b9e9b1012bc6647b9d13e76a23.zip
Add linux config update script and native linux build.
Update script generates linux config files from others, reducing the burden of maintaining multiple parallel files. Signed-off-by: Emmanuel Ackaouy <ack@xensource.com>
-rw-r--r--.hgignore1
-rw-r--r--buildconfigs/conf.linux-native/00_xen_to_native84
-rw-r--r--buildconfigs/create_config.sh50
-rw-r--r--buildconfigs/mk.linux-2.6-native4
-rw-r--r--buildconfigs/mk.linux-2.6-xen11
5 files changed, 146 insertions, 4 deletions
diff --git a/.hgignore b/.hgignore
index 275736d739..f083160029 100644
--- a/.hgignore
+++ b/.hgignore
@@ -54,6 +54,7 @@
^extras/mini-os/h/xen-public$
^extras/mini-os/mini-os\..*$
^install/.*$
+^linux-[^/]*-native/.*$
^linux-[^/]*-xen/.*$
^linux-[^/]*-xen0/.*$
^linux-[^/]*-xenU/.*$
diff --git a/buildconfigs/conf.linux-native/00_xen_to_native b/buildconfigs/conf.linux-native/00_xen_to_native
new file mode 100644
index 0000000000..6f155024fc
--- /dev/null
+++ b/buildconfigs/conf.linux-native/00_xen_to_native
@@ -0,0 +1,84 @@
+# Linux kernel version: 2.6.16.13-native
+# Mon May 15 10:59:54 2006
+#
+CONFIG_X86_PC=y
+# CONFIG_X86_XEN is not set
+# CONFIG_HPET_TIMER is not set
+# CONFIG_SCHED_SMT is not set
+# CONFIG_X86_MCE is not set
+# CONFIG_X86_MSR is not set
+# CONFIG_SWIOTLB is not set
+# CONFIG_EDD is not set
+CONFIG_ARCH_FLATMEM_ENABLE=y
+CONFIG_ARCH_SPARSEMEM_ENABLE=y
+CONFIG_ARCH_SELECT_MEMORY_MODEL=y
+CONFIG_SPARSEMEM_STATIC=y
+CONFIG_SPLIT_PTLOCK_CPUS=4
+# CONFIG_HIGHPTE is not set
+# CONFIG_MATH_EMULATION is not set
+# CONFIG_EFI is not set
+CONFIG_IRQBALANCE=y
+# CONFIG_KEXEC is not set
+CONFIG_DOUBLEFAULT=y
+CONFIG_PM_LEGACY=y
+# CONFIG_PM_DEBUG is not set
+# CONFIG_SOFTWARE_SUSPEND is not set
+CONFIG_SUSPEND_SMP=y
+CONFIG_ACPI_SLEEP=y
+CONFIG_ACPI_SLEEP_PROC_FS=y
+# CONFIG_ACPI_SLEEP_PROC_SLEEP is not set
+CONFIG_X86_PM_TIMER=y
+# APM (Advanced Power Management) BIOS Support
+#
+# CONFIG_APM is not set
+
+#
+CONFIG_PCI_BIOS=y
+# CONFIG_XEN_PCIDEV_FRONTEND is not set
+# CONFIG_XEN_PCIDEV_FE_DEBUG is not set
+# CONFIG_PCI_MSI is not set
+# CONFIG_ISA is not set
+# CONFIG_MCA is not set
+# CONFIG_HOTPLUG_PCI_COMPAQ is not set
+# CONFIG_HOTPLUG_PCI_IBM is not set
+# CONFIG_I2O_EXT_ADAPTEC_DMA64 is not set
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+# CONFIG_TCG_XEN is not set
+# CONFIG_HUGETLBFS is not set
+# CONFIG_XEN is not set
+# CONFIG_XEN_INTERFACE_VERSION is not set
+
+#
+# XEN
+#
+# CONFIG_XEN_PRIVILEGED_GUEST is not set
+# CONFIG_XEN_UNPRIVILEGED_GUEST is not set
+# CONFIG_XEN_BACKEND is not set
+# CONFIG_XEN_PCIDEV_BACKEND is not set
+# CONFIG_XEN_PCIDEV_BACKEND_VPCI is not set
+# CONFIG_XEN_PCIDEV_BACKEND_PASS is not set
+# CONFIG_XEN_PCIDEV_BE_DEBUG is not set
+# CONFIG_XEN_BLKDEV_BACKEND is not set
+# CONFIG_XEN_BLKDEV_TAP_BE is not set
+# CONFIG_XEN_NETDEV_BACKEND is not set
+# CONFIG_XEN_NETDEV_PIPELINED_TRANSMITTER is not set
+# CONFIG_XEN_NETDEV_LOOPBACK is not set
+# CONFIG_XEN_TPMDEV_BACKEND is not set
+# CONFIG_XEN_BLKDEV_FRONTEND is not set
+# CONFIG_XEN_NETDEV_FRONTEND is not set
+# CONFIG_XEN_BLKDEV_TAP is not set
+# CONFIG_XEN_SCRUB_PAGES is not set
+# CONFIG_XEN_DISABLE_SERIAL is not set
+# CONFIG_XEN_SYSFS is not set
+# CONFIG_XEN_COMPAT_030002_AND_LATER is not set
+# CONFIG_XEN_COMPAT_LATEST_ONLY is not set
+# CONFIG_XEN_COMPAT_030002 is not set
+# CONFIG_HAVE_ARCH_ALLOC_SKB is not set
+# CONFIG_HAVE_ARCH_DEV_ALLOC_SKB is not set
+# CONFIG_NO_IDLE_HZ is not set
+CONFIG_X86_HT=y
+# CONFIG_X86_NO_TSS is not set
+# CONFIG_X86_NO_IDT is not set
diff --git a/buildconfigs/create_config.sh b/buildconfigs/create_config.sh
new file mode 100644
index 0000000000..7874f7e53c
--- /dev/null
+++ b/buildconfigs/create_config.sh
@@ -0,0 +1,50 @@
+#!/bin/sh
+set -e
+
+
+# Parse arguments
+#
+if [ $# -lt 1 -o $# -gt 4 ]; then
+ echo "Usage: $0 config-file EXTRAVERSION XEN_TARGET_ARCH XEN_SYSTYPE"
+ exit 1
+fi
+
+config_file=$1
+extraversion=$2
+target_arch=$3
+systype=$4
+
+
+# Start with initial config skeleton file, if any.
+# Derive from linux-defconfig_xen_x86_32 otherwise.
+#
+skeleton=buildconfigs/linux-defconfig_${extraversion}_${target_arch}${systype}
+[ -r $skeleton ] || skeleton=buildconfigs/linux-defconfig_xen_x86_32
+cp $skeleton $config_file
+
+
+# Update
+#
+filter_template="s/^#\{0,1\} *\(CONFIG[^= ]*\).*/\/^#\\\{0,1\\\} *\1[= ].*\/d/p"
+config_dirs="buildconfigs/conf.linux buildconfigs/conf.linux-${target_arch} buildconfigs/conf.linux-${extraversion} buildconfigs/conf.linux-${target_arch}-${extraversion}"
+
+for config_dir in $config_dirs
+do
+ if [ -d $config_dir ]; then
+ # processing is done in alphanumeric order
+ find $config_dir -type f | sort | while read update
+ do
+ # create the filter rules in a temp file
+ filter_rules=`mktemp -t xenupdateconf.XXXXXXXXXX`
+ sed -n "${filter_template}" < $update > $filter_rules
+
+ # filter the config file in place, removing any options that
+ # will be updated.
+ sed -f $filter_rules -i $config_file
+ cat $update >> $config_file
+
+ # clean up
+ rm -f $filter_rules
+ done
+ fi
+done
diff --git a/buildconfigs/mk.linux-2.6-native b/buildconfigs/mk.linux-2.6-native
new file mode 100644
index 0000000000..c3ee13bdca
--- /dev/null
+++ b/buildconfigs/mk.linux-2.6-native
@@ -0,0 +1,4 @@
+EXTRAVERSION = native
+IMAGE_TARGET = bzImage
+INSTALL_BOOT_PATH = $(DESTDIR)/boot
+include buildconfigs/mk.linux-2.6-xen
diff --git a/buildconfigs/mk.linux-2.6-xen b/buildconfigs/mk.linux-2.6-xen
index 5de144259f..8c52deca0c 100644
--- a/buildconfigs/mk.linux-2.6-xen
+++ b/buildconfigs/mk.linux-2.6-xen
@@ -5,6 +5,9 @@ EXTRAVERSION ?= xen
LINUX_DIR = linux-$(LINUX_VER)-$(EXTRAVERSION)
+IMAGE_TARGET ?= vmlinuz
+INSTALL_BOOT_PATH ?= $(DESTDIR)
+
LINUX_VER3 := $(LINUX_SERIES).$(word 3, $(subst ., ,$(LINUX_VER)))
include buildconfigs/Rules.mk
@@ -16,8 +19,9 @@ build: $(LINUX_DIR)/include/linux/autoconf.h
$(MAKE) -C $(LINUX_DIR) ARCH=$(LINUX_ARCH) modules ; \
$(MAKE) -C $(LINUX_DIR) ARCH=$(LINUX_ARCH) INSTALL_MOD_PATH=$(DESTDIR) modules_install ; \
fi
- $(MAKE) -C $(LINUX_DIR) ARCH=$(LINUX_ARCH) INSTALL_PATH=$(DESTDIR) vmlinuz
- $(MAKE) -C $(LINUX_DIR) ARCH=$(LINUX_ARCH) INSTALL_PATH=$(DESTDIR) install
+ $(MAKE) -C $(LINUX_DIR) ARCH=$(LINUX_ARCH) INSTALL_PATH=$(DESTDIR) $(IMAGE_TARGET)
+ mkdir -p $(INSTALL_BOOT_PATH)
+ $(MAKE) -C $(LINUX_DIR) ARCH=$(LINUX_ARCH) INSTALL_PATH=$(INSTALL_BOOT_PATH) install
$(LINUX_DIR)/include/linux/autoconf.h: ref-linux-$(LINUX_VER)/.valid-ref
rm -rf $(LINUX_DIR)
@@ -29,8 +33,7 @@ $(LINUX_DIR)/include/linux/autoconf.h: ref-linux-$(LINUX_VER)/.valid-ref
CONFIG_VERSION=$$(sed -ne 's/^EXTRAVERSION = //p' $(LINUX_DIR)/Makefile); \
[ -r $(DESTDIR)/boot/config-$(LINUX_VER3)$$CONFIG_VERSION-$(EXTRAVERSION) ] && \
cp $(DESTDIR)/boot/config-$(LINUX_VER3)$$CONFIG_VERSION-$(EXTRAVERSION) $(LINUX_DIR)/.config \
- || cp buildconfigs/linux-defconfig_$(EXTRAVERSION)_$(XEN_TARGET_ARCH)$(XEN_SYSTYPE) \
- $(LINUX_DIR)/.config
+ || sh buildconfigs/create_config.sh $(LINUX_DIR)/.config $(EXTRAVERSION) $(XEN_TARGET_ARCH) $(XEN_SYSTYPE)
# See if we need to munge config to enable PAE
$(MAKE) CONFIG_FILE=$(LINUX_DIR)/.config -f buildconfigs/Rules.mk config-update-pae
# Patch kernel Makefile to set EXTRAVERSION