From 43b0ff5b1eb7fbcdc348b2a53088a7db939d5e48 Mon Sep 17 00:00:00 2001 From: Jim Fehlig Date: Thu, 16 May 2013 08:42:21 -0600 Subject: [PATCH] libxl: fix build with Xen4.3 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 | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/libxl/libxl_driver.c b/src/libxl/libxl_driver.c index b39e0052e..814856b20 100644 --- a/src/libxl/libxl_driver.c +++ b/src/libxl/libxl_driver.c @@ -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; -- 2.39.5