aboutsummaryrefslogtreecommitdiffstats
path: root/stubdom
diff options
context:
space:
mode:
authorIan Campbell <ian.campbell@citrix.com>2013-08-06 11:32:32 +0100
committerIan Campbell <ian.campbell@citrix.com>2013-08-21 10:32:42 +0100
commitb0f69ec5c71de1248d915c193b57c43e786857dd (patch)
tree3e1d239ee2b68d08b80fe25385da22e71d4c6bd3 /stubdom
parent874f76a86adf1da70921884f5a868eec105cf8cd (diff)
downloadxen-b0f69ec5c71de1248d915c193b57c43e786857dd.tar.gz
xen-b0f69ec5c71de1248d915c193b57c43e786857dd.tar.bz2
xen-b0f69ec5c71de1248d915c193b57c43e786857dd.zip
tools: Make qemu-xen-traditional build optional.
Now that we have upstream qemu people may want to avoid building this extra code. There is a little bit of trickery in stubdom/configure.ac to ensure that the ioemu stubdom is only built if qemu-traditional is enabled. libxl will return an error if a caller tries to build a domain using qemu-xen-traditional when this support was disabled at build time. Since qemu-xen-traditional has been historically tightly bound to the Xen releases I don't see any value in supporting "3rd party" provision of qemu-xen-traditional. We also do not want/need this on ARM therefore default is on for x86 and off otherwise. Signed-off-by: Ian Campbell <ian.campbell@citrix.com> Acked-by: Ian Jackson <ian.jackson@eu.citrix.com> [ ijc -- trivial conflicts in Tools.mk.in and tools/configure.ac. Reran autogen.sh ]
Diffstat (limited to 'stubdom')
-rw-r--r--stubdom/Makefile6
-rwxr-xr-xstubdom/configure152
-rw-r--r--stubdom/configure.ac24
3 files changed, 168 insertions, 14 deletions
diff --git a/stubdom/Makefile b/stubdom/Makefile
index 35295f0bce..19f2228951 100644
--- a/stubdom/Makefile
+++ b/stubdom/Makefile
@@ -264,6 +264,10 @@ $(CROSS_ROOT): cross-newlib cross-zlib cross-libpci
QEMU_ROOT := $(shell if [ -d "$(CONFIG_QEMU)" ]; then echo "$(CONFIG_QEMU)"; else echo .; fi)
+ifneq ($(filter ioemu,$(STUBDOM_TARGETS)),)
+IOEMU_LINKFARM_TARGET := ioemu/linkfarm.stamp
+endif
+
ifeq ($(QEMU_ROOT),.)
$(XEN_ROOT)/tools/qemu-xen-traditional-dir:
$(MAKE) DESTDIR= -C $(XEN_ROOT)/tools qemu-xen-traditional-dir-find
@@ -289,7 +293,7 @@ ioemu/linkfarm.stamp:
touch ioemu/linkfarm.stamp
endif
-mk-headers-$(XEN_TARGET_ARCH): ioemu/linkfarm.stamp
+mk-headers-$(XEN_TARGET_ARCH): $(IOEMU_LINKFARM_TARGET)
mkdir -p include/xen && \
ln -sf $(wildcard $(XEN_ROOT)/xen/include/public/*.h) include/xen && \
ln -sf $(addprefix $(XEN_ROOT)/xen/include/public/,arch-x86 hvm io xsm) include/xen && \
diff --git a/stubdom/configure b/stubdom/configure
index 3da267758b..81eff6d1c9 100755
--- a/stubdom/configure
+++ b/stubdom/configure
@@ -562,6 +562,7 @@ LIBOBJS
STUBDOM_INSTALL
STUBDOM_BUILD
STUBDOM_TARGETS
+ioemu
vtpmmgr
vtpm
TPMEMU_VERSION
@@ -603,7 +604,14 @@ xenstore
grub
caml
c
-ioemu
+host_os
+host_vendor
+host_cpu
+host
+build_os
+build_vendor
+build_cpu
+build
target_alias
host_alias
build_alias
@@ -652,6 +660,7 @@ enable_pv_grub
enable_xenstore_stubdom
enable_vtpm_stubdom
enable_vtpmmgr_stubdom
+enable_qemu_traditional
enable_debug
enable_extfiles
'
@@ -1271,6 +1280,10 @@ Fine tuning of the installation directories:
_ACEOF
cat <<\_ACEOF
+
+System types:
+ --build=BUILD configure for building on BUILD [guessed]
+ --host=HOST cross-compile to build programs to run on HOST [BUILD]
_ACEOF
fi
@@ -1284,7 +1297,7 @@ Optional Features:
--disable-option-checking ignore unrecognized --enable/--with options
--disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
--enable-FEATURE[=ARG] include FEATURE [ARG=yes]
- --disable-ioemu-stubdom Build and install ioemu-stubdom (default is ENABLED)
+ --enable-ioemu-stubdom Build and install ioemu-stubdom
--enable-c-stubdom Build and install c-stubdom (default is DISABLED)
--enable-caml-stubdom Build and install caml-stubdom (default is DISABLED)
--disable-pv-grub Build and install pv-grub (default is ENABLED)
@@ -1294,6 +1307,7 @@ Optional Features:
--enable-vtpm-stubdom Build and install vtpm-stubdom
--enable-vtpmmgr-stubdom
Build and install vtpmmgr-stubdom
+
--disable-debug Disable debug build of stubdom (default is ENABLED)
--disable-extfiles Use xen extfiles repository for libraries (default
is ENABLED)
@@ -1821,6 +1835,78 @@ ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var.
+# Make sure we can run config.sub.
+$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
+ as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
+$as_echo_n "checking build system type... " >&6; }
+if test "${ac_cv_build+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_build_alias=$build_alias
+test "x$ac_build_alias" = x &&
+ ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
+test "x$ac_build_alias" = x &&
+ as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
+ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
+ as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
+$as_echo "$ac_cv_build" >&6; }
+case $ac_cv_build in
+*-*-*) ;;
+*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5 ;;
+esac
+build=$ac_cv_build
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_build
+shift
+build_cpu=$1
+build_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+build_os=$*
+IFS=$ac_save_IFS
+case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
+$as_echo_n "checking host system type... " >&6; }
+if test "${ac_cv_host+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "x$host_alias" = x; then
+ ac_cv_host=$ac_cv_build
+else
+ ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
+ as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
+$as_echo "$ac_cv_host" >&6; }
+case $ac_cv_host in
+*-*-*) ;;
+*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5 ;;
+esac
+host=$ac_cv_host
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_host
+shift
+host_cpu=$1
+host_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+host_os=$*
+IFS=$ac_save_IFS
+case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
+
+
+
# M4 Macro includes
@@ -1887,20 +1973,10 @@ fi
fi
-else
-
-
-ioemu=y
-STUBDOM_TARGETS="$STUBDOM_TARGETS ioemu"
-STUBDOM_BUILD="$STUBDOM_BUILD ioemu-stubdom"
-STUBDOM_INSTALL="$STUBDOM_INSTALL install-ioemu"
-
-
fi
-
# Check whether --enable-c-stubdom was given.
if test "${enable_c_stubdom+set}" = set; then :
enableval=$enable_c_stubdom;
@@ -2115,6 +2191,39 @@ fi
+# Check whether --enable-qemu-traditional was given.
+if test "${enable_qemu_traditional+set}" = set; then :
+ enableval=$enable_qemu_traditional;
+else
+
+ case "$host_cpu" in
+ i[3456]86|x86_64)
+ enable_qemu_traditional="yes";;
+ *) enable_qemu_traditional="no";;
+ esac
+
+fi
+
+if test "x$enable_qemu_traditional" = "xyes"; then :
+
+ qemu_traditional=y
+else
+
+ qemu_traditional=n
+
+fi
+if test "x$ioemu" = "x"; then :
+
+ ioemu=$qemu_traditional
+
+fi
+echo "x$ioemu$qemu_traditional"
+if test "x$ioemu$qemu_traditional" = "xyn"; then :
+
+ as_fn_error $? "IOEMU stubdomain requires qemu-traditional" "$LINENO" 5
+
+fi
+
# Check whether --enable-debug was given.
if test "${enable_debug+set}" = set; then :
@@ -3474,6 +3583,25 @@ fi
+if test "x$ioemu" = "xy" || test "x$ioemu" = "x"; then :
+
+
+ioemu=y
+STUBDOM_TARGETS="$STUBDOM_TARGETS ioemu"
+STUBDOM_BUILD="$STUBDOM_BUILD ioemu-stubdom"
+STUBDOM_INSTALL="$STUBDOM_INSTALL install-ioemu"
+
+
+else
+
+
+ioemu=n
+
+
+fi
+
+
+
diff --git a/stubdom/configure.ac b/stubdom/configure.ac
index 90fc94f591..6468203b63 100644
--- a/stubdom/configure.ac
+++ b/stubdom/configure.ac
@@ -8,6 +8,8 @@ AC_CONFIG_SRCDIR([../extras/mini-os/kernel.c])
AC_CONFIG_FILES([../config/Stubdom.mk])
AC_CONFIG_AUX_DIR([../])
+AC_CANONICAL_HOST
+
# M4 Macro includes
m4_include([../m4/stubdom.m4])
m4_include([../m4/features.m4])
@@ -16,7 +18,7 @@ m4_include([../m4/depends.m4])
m4_include([../m4/fetcher.m4])
# Enable/disable stub domains
-AX_STUBDOM_DEFAULT_ENABLE([ioemu-stubdom], [ioemu])
+AX_STUBDOM_CONDITIONAL([ioemu-stubdom], [ioemu])
AX_STUBDOM_DEFAULT_DISABLE([c-stubdom], [c])
AX_STUBDOM_DEFAULT_DISABLE([caml-stubdom], [caml])
AX_STUBDOM_DEFAULT_ENABLE([pv-grub], [grub])
@@ -24,6 +26,25 @@ AX_STUBDOM_DEFAULT_ENABLE([xenstore-stubdom], [xenstore])
AX_STUBDOM_CONDITIONAL([vtpm-stubdom], [vtpm])
AX_STUBDOM_CONDITIONAL([vtpmmgr-stubdom], [vtpmmgr])
+AC_ARG_ENABLE([qemu-traditional],,,[
+ case "$host_cpu" in
+ i[[3456]]86|x86_64)
+ enable_qemu_traditional="yes";;
+ *) enable_qemu_traditional="no";;
+ esac
+])
+AS_IF([test "x$enable_qemu_traditional" = "xyes"], [
+ qemu_traditional=y],[
+ qemu_traditional=n
+])
+AS_IF([test "x$ioemu" = "x"], [
+ ioemu=$qemu_traditional
+])
+echo "x$ioemu$qemu_traditional"
+AS_IF([test "x$ioemu$qemu_traditional" = "xyn"], [
+ AC_MSG_ERROR(IOEMU stubdomain requires qemu-traditional)
+])
+
AX_ARG_DEFAULT_ENABLE([debug], [Disable debug build of stubdom])
AX_ARG_DEFAULT_ENABLE([extfiles], [Use xen extfiles repository for libraries])
@@ -55,6 +76,7 @@ AX_STUBDOM_AUTO_DEPENDS([vtpmmgr], [vtpm])
#Conditionally enable these stubdoms based on the presense of dependencies
AX_STUBDOM_CONDITIONAL_FINISH([vtpm-stubdom], [vtpm])
AX_STUBDOM_CONDITIONAL_FINISH([vtpmmgr-stubdom], [vtpmmgr])
+AX_STUBDOM_CONDITIONAL_FINISH([ioemu-stubdom], [ioemu])
AX_STUBDOM_FINISH
AC_OUTPUT()