Until the previous patch this relied on xc_fd(), which was only
implemented for Xen 4.0 and earlier.

I stopped short of disabling this by default, although I think there's
a pretty strong argument for doing so.

Removing this support drops the use of a bunch of symbols from
libxenctrl, specifically:

  - xc_domain_create
  - xc_domain_destroy
  - xc_domain_getinfo
  - xc_domain_max_vcpus
  - xc_domain_setmaxmem
  - xc_domain_unpause
  - xc_evtchn_alloc_unbound
  - xc_linux_build

This is another step towards only using Xen libraries which provide a
stable inteface.

Signed-off-by: Ian Campbell <ian.campb...@citrix.com>
---
 configure                 | 17 +++++++++++++++++
 hw/xenpv/Makefile.objs    |  4 +++-
 hw/xenpv/xen_machine_pv.c | 14 ++++++++++----
 3 files changed, 30 insertions(+), 5 deletions(-)

diff --git a/configure b/configure
index 508b157..534d280 100755
--- a/configure
+++ b/configure
@@ -910,6 +910,10 @@ for opt do
   ;;
   --enable-xen-pci-passthrough) xen_pci_passthrough="yes"
   ;;
+  --disable-xen-pv-domain-build) xen_pv_domain_build="no"
+  ;;
+  --enable-xen-pv-domain-build) xen_pv_domain_build="yes"
+  ;;
   --disable-brlapi) brlapi="no"
   ;;
   --enable-brlapi) brlapi="yes"
@@ -2148,6 +2152,15 @@ if test "$xen_pci_passthrough" != "no"; then
   fi
 fi
 
+if test "$xen_pv_domain_build" != "no"; then
+  if test "$xen_pv_domain_build" = "yes" &&
+     test "$xen" != "yes"; then
+      error_exit "User requested Xen PV domain builder support" \
+                "which requires Xen support."
+  fi
+  xen_pv_domain_build=$xen
+fi
+
 ##########################################
 # libtool probe
 
@@ -4429,6 +4442,7 @@ echo "xen support       $xen"
 if test "$xen" = "yes" ; then
   echo "  stable libs     $xenstablelibs"
   echo "  ctrl version    $xen_ctrl_version"
+  echo "  PV dom build    $xen_pv_domain_build"
 fi
 echo "brlapi support    $brlapi"
 echo "bluez  support    $bluez"
@@ -4764,6 +4778,9 @@ if test "$xen" = "yes" ; then
   if test "$xenstablelibs" = "yes" ; then
     echo "CONFIG_XEN_STABLE_LIBS=y" >> $config_host_mak
   fi
+  if test "$xen_pv_domain_build" = "yes" ; then
+    echo "CONFIG_XEN_PV_DOMAIN_BUILD=y" >> $config_host_mak
+  fi
 fi
 if test "$linux_aio" = "yes" ; then
   echo "CONFIG_LINUX_AIO=y" >> $config_host_mak
diff --git a/hw/xenpv/Makefile.objs b/hw/xenpv/Makefile.objs
index 49f6e9e..bbf5873 100644
--- a/hw/xenpv/Makefile.objs
+++ b/hw/xenpv/Makefile.objs
@@ -1,2 +1,4 @@
 # Xen PV machine support
-obj-$(CONFIG_XEN) += xen_domainbuild.o xen_machine_pv.o
+obj-$(CONFIG_XEN) += xen_machine_pv.o
+# Xen PV machine builder support
+obj-$(CONFIG_XEN_PV_DOMAIN_BUILD) += xen_domainbuild.o
diff --git a/hw/xenpv/xen_machine_pv.c b/hw/xenpv/xen_machine_pv.c
index 2e545d2..d19d29f 100644
--- a/hw/xenpv/xen_machine_pv.c
+++ b/hw/xenpv/xen_machine_pv.c
@@ -30,9 +30,6 @@
 
 static void xen_init_pv(MachineState *machine)
 {
-    const char *kernel_filename = machine->kernel_filename;
-    const char *kernel_cmdline = machine->kernel_cmdline;
-    const char *initrd_filename = machine->initrd_filename;
     DriveInfo *dinfo;
     int i;
 
@@ -46,13 +43,22 @@ static void xen_init_pv(MachineState *machine)
     case XEN_ATTACH:
         /* nothing to do, xend handles everything */
         break;
-    case XEN_CREATE:
+    case XEN_CREATE: {
+#ifdef CONFIG_XEN_PV_DOMAIN_BUILD
+       const char *kernel_filename = machine->kernel_filename;
+       const char *kernel_cmdline = machine->kernel_cmdline;
+       const char *initrd_filename = machine->initrd_filename;
         if (xen_domain_build_pv(kernel_filename, initrd_filename,
                                 kernel_cmdline) < 0) {
             fprintf(stderr, "xen pv domain creation failed\n");
             exit(1);
         }
+#else
+       fprintf(stderr, "xen pv domain creation not supported\n");
+       exit (1);
+#endif
         break;
+    }
     case XEN_EMULATE:
         fprintf(stderr, "xen emulation not implemented (yet)\n");
         exit(1);
-- 
2.1.4


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

Reply via email to