[libvirt] [PATCH] Fix compilation of legacy xen driver with Xen 4.2

Jim Fehlig jfehlig at suse.com
Wed Sep 26 21:49:35 UTC 2012


In Xen 4.2, xs.h is deprecated in favor of xenstore.h.  xs.h now
contains

#warning xs.h is deprecated use xenstore.h instead
#include <xenstore.h>

which fails compilation when warnings are treated as errors.

Introduce a configure-time check for xenstore.h and if found,
use it instead of xs.h.
---
 configure.ac          |    2 ++
 src/xen/block_stats.c |    6 +++++-
 src/xen/xs_internal.c |    6 +++++-
 3 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/configure.ac b/configure.ac
index 38d94d4..ae26de7 100644
--- a/configure.ac
+++ b/configure.ac
@@ -768,6 +768,8 @@ if test "$with_xen" != "no" ; then
 fi
 
 if test "$with_xen" != "no" ; then
+    dnl In Xen 4.2, xs.h is deprecated in favor of xenstore.h.
+    AC_CHECK_HEADERS([xenstore.h])
     AC_CHECK_HEADERS([xen/xen.h xen/version.h xen/dom0_ops.h],,[
        if test "$with_xen" = "yes"; then
            fail=1
diff --git a/src/xen/block_stats.c b/src/xen/block_stats.c
index f3b756a..5ab1ce4 100644
--- a/src/xen/block_stats.c
+++ b/src/xen/block_stats.c
@@ -32,7 +32,11 @@
 # include <unistd.h>
 # include <regex.h>
 
-# include <xs.h>
+# if HAVE_XENSTORE_H
+#  include <xenstore.h>
+# else
+#  include <xs.h>
+# endif
 
 # include "virterror_internal.h"
 # include "datatypes.h"
diff --git a/src/xen/xs_internal.c b/src/xen/xs_internal.c
index 12efa0c..a91d409 100644
--- a/src/xen/xs_internal.c
+++ b/src/xen/xs_internal.c
@@ -35,7 +35,11 @@
 #include <xen/dom0_ops.h>
 #include <xen/version.h>
 
-#include <xs.h>
+#if HAVE_XENSTORE_H
+# include <xenstore.h>
+#else
+# include <xs.h>
+#endif
 
 #include "virterror_internal.h"
 #include "datatypes.h"
-- 
1.7.10.4




More information about the libvir-list mailing list