[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [xen-unstable] [BUILD] Fixup support for building upstream kernels.



# HG changeset patch
# User Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1202828341 0
# Node ID 419a141ca16d7b248805addb0465a6b48e9723dc
# Parent  319a54d5c8048e25fb2ca3fc431ea7fc2039762d
[BUILD] Fixup support for building upstream kernels.

In particular:
 - support merged x86 architecture. To facilitate this it made sense
   to encode some existing logic in shell scripts rather than
   increasing complicated make conditionals.
 - set CONFIG_PARAVIRT_GUEST=y which is required for newer kernels.

Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
---
 buildconfigs/enable-xen-config   |    9 ++++++++-
 buildconfigs/mk.linux-2.6-common |   24 ++++++++----------------
 buildconfigs/select-linux-arch   |   30 ++++++++++++++++++++++++++++++
 buildconfigs/select-linux-image  |   33 +++++++++++++++++++++++++++++++++
 4 files changed, 79 insertions(+), 17 deletions(-)

diff -r 319a54d5c804 -r 419a141ca16d buildconfigs/enable-xen-config
--- a/buildconfigs/enable-xen-config    Tue Feb 12 14:57:36 2008 +0000
+++ b/buildconfigs/enable-xen-config    Tue Feb 12 14:59:01 2008 +0000
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-set -ex
+set -e
 
 if [ $# -ne 1 ] ; then
        echo "Usage $(basename $0) <config-file>" 1>&2
@@ -26,6 +26,7 @@ setopt()
 }
 
 setopt CONFIG_PARAVIRT y
+setopt CONFIG_PARAVIRT_GUEST y
 setopt CONFIG_XEN y
 setopt CONFIG_VMI y
 setopt CONFIG_KVM y
@@ -37,4 +38,10 @@ setopt CONFIG_HVC_XEN y
 setopt CONFIG_HVC_XEN y
 setopt CONFIG_NUMA n
 
+case ${XEN_TARGET_ARCH} in
+    x86_32) setopt CONFIG_64BIT n ;;
+    x86_64) setopt CONFIG_64BIT y ;;
+    *) ;;
+esac
+
 exit 0
diff -r 319a54d5c804 -r 419a141ca16d buildconfigs/mk.linux-2.6-common
--- a/buildconfigs/mk.linux-2.6-common  Tue Feb 12 14:57:36 2008 +0000
+++ b/buildconfigs/mk.linux-2.6-common  Tue Feb 12 14:59:01 2008 +0000
@@ -20,22 +20,9 @@ __NONINT_CONFIG =
 __NONINT_CONFIG =
 endif
 
-# Let XEN_TARGET_ARCH override ARCH.
-ifeq ($(XEN_TARGET_ARCH),x86_32)
-LINUX_ARCH     ?= i386
-else
-LINUX_ARCH     ?= $(XEN_TARGET_ARCH)
-endif
-
 LINUX_DIR     = build-linux-$(LINUX_VER)$(EXTRAVERSION)_$(XEN_TARGET_ARCH)
 
 IMAGE_TARGET ?= vmlinuz
-ifneq ($(XEN_TARGET_ARCH),ia64)
-IMAGE_PATH ?= arch/$(LINUX_ARCH)/boot/$(firstword $(IMAGE_TARGET))
-else
-IMAGE_PATH ?= arch/ia64/hp/sim/boot/vmlinux.gz
-endif
-INSTALL_BOOT_PATH := $(DESTDIR)/boot
 
 LINUX_VER3  := $(LINUX_SERIES).$(word 3, $(subst ., ,$(LINUX_VER)))
 
@@ -43,6 +30,11 @@ _build: build
 _build: build
 
 include buildconfigs/src.$(XEN_LINUX_SOURCE)
+
+LINUX_ARCH = $$(sh buildconfigs/select-linux-arch $(LINUX_SRCDIR))
+IMAGE_PATH = $$(sh buildconfigs/select-linux-image $(LINUX_DIR) $(LINUX_ARCH) 
$(IMAGE_TARGET))
+
+INSTALL_BOOT_PATH := $(DESTDIR)/boot
 
 # Default to allowing interface mismatch
 ifndef XEN_LINUX_ALLOW_INTERFACE_MISMATCH
@@ -70,9 +62,9 @@ endif
        fi
        $(MAKE) -C $(LINUX_DIR) ARCH=$(LINUX_ARCH) INSTALL_PATH=$(DESTDIR) 
$(IMAGE_TARGET)
        mkdir -p $(INSTALL_BOOT_PATH)
-       cp $(LINUX_DIR)/$(IMAGE_PATH) 
$(INSTALL_BOOT_PATH)/vmlinuz-$(KERNELRELEASE)
-       cp $(LINUX_DIR)/.config $(INSTALL_BOOT_PATH)/config-$(KERNELRELEASE)
-       cp $(LINUX_DIR)/System.map 
$(INSTALL_BOOT_PATH)/System.map-$(KERNELRELEASE)
+       @cp -v $(IMAGE_PATH) $(INSTALL_BOOT_PATH)/vmlinuz-$(KERNELRELEASE)
+       @cp -v $(LINUX_DIR)/.config $(INSTALL_BOOT_PATH)/config-$(KERNELRELEASE)
+       @cp -v $(LINUX_DIR)/System.map 
$(INSTALL_BOOT_PATH)/System.map-$(KERNELRELEASE)
 
 $(LINUX_DIR)/include/linux/autoconf.h: 
CONFIG_FILE=$(CURDIR)/$(LINUX_DIR)/.config
 $(LINUX_DIR)/include/linux/autoconf.h: $(LINUX_SRCDIR)/.valid-src
diff -r 319a54d5c804 -r 419a141ca16d buildconfigs/select-linux-arch
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/buildconfigs/select-linux-arch    Tue Feb 12 14:59:01 2008 +0000
@@ -0,0 +1,30 @@
+#!/bin/sh
+
+ME=$(basename $0)
+
+if [ $# -lt 1 ] || [ $# -gt 2 ] ; then
+    echo "usage: $ME <linux-build-directory>" 1>&2
+    exit 1;
+fi
+
+LINUX_DIR=$1
+
+case ${XEN_TARGET_ARCH} in
+    x86_32|x86_64)
+       if [ -d ${LINUX_DIR}/arch/x86 ] ; then
+           ARCH=x86
+       elif [ "${XEN_TARGET_ARCH}" = "x86_32" ] ; then
+           ARCH=i386
+       else
+           ARCH=x86_64
+       fi
+       ;;
+    *)
+       ARCH=${XEN_TARGET_ARCH}
+       ;;
+esac
+
+echo "$ME: ${ARCH}" 1>&2
+echo ${ARCH}
+
+exit 0
diff -r 319a54d5c804 -r 419a141ca16d buildconfigs/select-linux-image
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/buildconfigs/select-linux-image   Tue Feb 12 14:59:01 2008 +0000
@@ -0,0 +1,33 @@
+#!/bin/sh
+
+ME=$(basename $0)
+
+if [ $# -lt 3 ] ; then
+    echo "usage: $ME <linux-build-directory> <linux-arch> <linux-targets...>" 
1>&2
+    exit 1;
+fi
+
+LINUX_DIR=$1
+LINUX_ARCH=$2
+LINUX_TARGET=$3 # We don't care about second and subsequent targets
+
+case ${XEN_TARGET_ARCH} in
+    ia64)
+       IMAGE=${LINUX_DIR}/arch/ia64/hp/sim/boot/vmlinux.gz
+       ;;
+    *)
+       if [ -f ${LINUX_DIR}/arch/${LINUX_ARCH}/boot/${LINUX_TARGET} ] ; then
+           IMAGE=${LINUX_DIR}/arch/${LINUX_ARCH}/boot/${LINUX_TARGET}
+       elif [ -f ${LINUX_DIR}/${LINUX_TARGET} ] ; then
+           IMAGE=${LINUX_DIR}/${LINUX_TARGET}
+       else
+           echo "$ME: cannot determine Linux image to use for ${LINUX_ARCH} in 
${LINUX_DIR}" 1>&2
+           exit 1
+       fi
+       ;;
+esac
+
+echo "$ME: ${IMAGE}" 1>&2
+echo ${IMAGE}
+
+exit 0

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.