[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: [libvirt] [PATCHv2] build: ensure storage driver is used



On 2012年06月06日 00:28, Eric Blake wrote:
Commit 1c275e9a accidentally dropped the storage driver from
libvirtd, because it depended on a C preprocessor macro that
was not defined.  Furthermore, if you do './configure
--without-storage-dir --with-storage-disk' or any other combination
where you explicitly build a subset of storage backends excluding
the dir backend, then the build is broken.

Based on analysis by Osier Yang.

* configure.ac (WITH_STORAGE): Define top-level conditional.
* src/Makefile.am (mod_LTLIBRARIES): Build driver even when
storage_dir is disabled.
* daemon/libvirtd.c: Pick up storage driver for any backend, not
just dir.
* daemon/Makefile.am (libvirtd_LDADD): Likewise.
---

v2: incorporate my suggestions on Osier's v1.

  configure.ac       |   13 +++++++++++++
  daemon/Makefile.am |    2 +-
  daemon/libvirtd.c  |    4 ++--
  src/Makefile.am    |    2 +-
  4 files changed, 17 insertions(+), 4 deletions(-)

diff --git a/configure.ac b/configure.ac
index 7d8d26b..0c65279 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2076,6 +2076,19 @@ fi
  AC_SUBST([DEVMAPPER_CFLAGS])
  AC_SUBST([DEVMAPPER_LIBS])

+with_storage=no
+for backend in dir fd lvm iscsi scsi mpath rbd disk; do

s/fd/fs/

+    if eval test \$with_storage_$backend = yes; then
+        with_storage=yes
+        break
+    fi
+done
+if test $with_storage = yes; then
+    AC_DEFINE([WITH_STORAGE], [1],
+      [Define to 1 if at least one storage backend is in use])
+fi
+AM_CONDITIONAL([WITH_STORAGE], [test "$with_storage" = "yes"])
+
  dnl
  dnl check for libcurl (ESX/XenAPI)
  dnl
diff --git a/daemon/Makefile.am b/daemon/Makefile.am
index b1518c5..fbb0ae1 100644
--- a/daemon/Makefile.am
+++ b/daemon/Makefile.am
@@ -140,7 +140,7 @@ if WITH_UML
      libvirtd_LDADD += ../src/libvirt_driver_uml.la
  endif

-if WITH_STORAGE_DIR
+if WITH_STORAGE
      libvirtd_LDADD += ../src/libvirt_driver_storage.la
  endif

diff --git a/daemon/libvirtd.c b/daemon/libvirtd.c
index c74cd43..d5ad05e 100644
--- a/daemon/libvirtd.c
+++ b/daemon/libvirtd.c
@@ -77,7 +77,7 @@
  # ifdef WITH_NETCF
  #  include "interface/netcf_driver.h"
  # endif
-# ifdef WITH_STORAGE_DIR
+# ifdef WITH_STORAGE
  #  include "storage/storage_driver.h"
  # endif
  # ifdef WITH_NODE_DEVICES
@@ -403,7 +403,7 @@ static void daemonInitialize(void)
  # ifdef WITH_NETCF
      interfaceRegister();
  # endif
-# ifdef WITH_STORAGE_DIR
+# ifdef WITH_STORAGE
      storageRegister();
  # endif
  # ifdef WITH_NODE_DEVICES
diff --git a/src/Makefile.am b/src/Makefile.am
index dd1af65..2d737af 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -967,7 +967,7 @@ if HAVE_LIBBLKID
  libvirt_driver_storage_la_CFLAGS += $(BLKID_CFLAGS)
  libvirt_driver_storage_la_LIBADD += $(BLKID_LIBS)
  endif
-if WITH_STORAGE_DIR
+if WITH_STORAGE
  if WITH_DRIVER_MODULES
  mod_LTLIBRARIES += libvirt_driver_storage.la
  else

I missed the other use case of WITH_STORAGE, thanks for the v2,
ACK and pushed with the nit fixed. (it blocks my process on the
storage stuff, :-)

Osier


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]