]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
libxl: fix build with Xen4.3
authorJim Fehlig <jfehlig@suse.com>
Thu, 16 May 2013 14:42:21 +0000 (08:42 -0600)
committerJim Fehlig <jfehlig@suse.com>
Fri, 17 May 2013 08:31:14 +0000 (02:31 -0600)
Xen 4.3 fixes a mistake in the libxl event handler signature where the
event owned by the application was defined as const.  Detect this and
define the libvirt libxl event handler signature appropriately.

src/libxl/libxl_driver.c

index b39e0052ef007908d0dab49ddce946104e82bbdb..814856b204578ec9819c9e2661bee5866aa98fac 100644 (file)
@@ -697,10 +697,22 @@ libxlVmReap(libxlDriverPrivatePtr driver,
 }
 
 /*
- * Handle previously registered event notification from libxenlight
+ * Handle previously registered event notification from libxenlight.
+ *
+ * Note: Xen 4.3 removed the const from the event handler signature.
+ * Detect which signature to use based on
+ * LIBXL_HAVE_NONCONST_EVENT_OCCURS_EVENT_ARG.
  */
+
+#ifdef LIBXL_HAVE_NONCONST_EVENT_OCCURS_EVENT_ARG
+# define VIR_LIBXL_EVENT_CONST /* empty */
+#else
+# define VIR_LIBXL_EVENT_CONST const
+#endif
+
 static void
-libxlEventHandler(void *data ATTRIBUTE_UNUSED, const libxl_event *event)
+libxlEventHandler(void *data ATTRIBUTE_UNUSED,
+                  VIR_LIBXL_EVENT_CONST libxl_event *event)
 {
     libxlDriverPrivatePtr driver = libxl_driver;
     virDomainObjPtr vm = NULL;