When I build libvirt without libvirtd, I receive the following errors: GEN virsh.1 CCLD virsh ../src/.libs/libvirt.so: undefined reference to `dm_is_dm_major' collect2: ld returned 1 exit status make[3]: *** [virsh] Error 1 My build step: # ./autogen.sh --without-libvirtd # make dist # rpmbuild --nodeps --define "_sourcedir `pwd`" --define "_without_libvirtd 1" -ba libvirt.spec This bug was caused by commit df1011ca. Signed-off-by: Wen Congyang <wency@xxxxxxxxxxxxxx> --- configure.ac | 47 ++++++++++++++++++++++++----------------------- src/util/util.c | 3 +++ 2 files changed, 27 insertions(+), 23 deletions(-) diff --git a/configure.ac b/configure.ac index 2bb6918..2f22c18 100644 --- a/configure.ac +++ b/configure.ac @@ -1697,29 +1697,6 @@ if test "$with_storage_mpath" = "check" && test "$with_linux" = "yes"; then fi AM_CONDITIONAL([WITH_STORAGE_MPATH], [test "$with_storage_mpath" = "yes"]) -if test "$with_storage_mpath" = "yes"; then - DEVMAPPER_CFLAGS= - DEVMAPPER_LIBS= - PKG_CHECK_MODULES([DEVMAPPER], [devmapper >= $DEVMAPPER_REQUIRED], [], [DEVMAPPER_FOUND=no]) - if test "$DEVMAPPER_FOUND" = "no"; then - # devmapper is missing pkg-config files in ubuntu, suse, etc - save_LIBS="$LIBS" - save_CFLAGS="$CFLAGS" - DEVMAPPER_FOUND=yes - AC_CHECK_HEADER([libdevmapper.h],,[DEVMAPPER_FOUND=no]) - AC_CHECK_LIB([devmapper], [dm_task_run],,[DEVMAPPER_FOUND=no]) - DEVMAPPER_LIBS="-ldevmapper" - LIBS="$save_LIBS" - CFLAGS="$save_CFLAGS" - fi - if test "$DEVMAPPER_FOUND" = "no" ; then - AC_MSG_ERROR([You must install device-mapper-devel/libdevmapper >= $DEVMAPPER_REQUIRED to compile libvirt]) - fi - -fi -AC_SUBST([DEVMAPPER_CFLAGS]) -AC_SUBST([DEVMAPPER_LIBS]) - LIBPARTED_CFLAGS= LIBPARTED_LIBS= if test "$with_storage_disk" = "yes" || @@ -1781,6 +1758,30 @@ AM_CONDITIONAL([WITH_STORAGE_DISK], [test "$with_storage_disk" = "yes"]) AC_SUBST([LIBPARTED_CFLAGS]) AC_SUBST([LIBPARTED_LIBS]) +if test "$with_storage_mpath" = "yes" || + test "$with_storage_disk" = "yes"; then + DEVMAPPER_CFLAGS= + DEVMAPPER_LIBS= + PKG_CHECK_MODULES([DEVMAPPER], [devmapper >= $DEVMAPPER_REQUIRED], [], [DEVMAPPER_FOUND=no]) + if test "$DEVMAPPER_FOUND" = "no"; then + # devmapper is missing pkg-config files in ubuntu, suse, etc + save_LIBS="$LIBS" + save_CFLAGS="$CFLAGS" + DEVMAPPER_FOUND=yes + AC_CHECK_HEADER([libdevmapper.h],,[DEVMAPPER_FOUND=no]) + AC_CHECK_LIB([devmapper], [dm_task_run],,[DEVMAPPER_FOUND=no]) + DEVMAPPER_LIBS="-ldevmapper" + LIBS="$save_LIBS" + CFLAGS="$save_CFLAGS" + fi + if test "$DEVMAPPER_FOUND" = "no" ; then + AC_MSG_ERROR([You must install device-mapper-devel/libdevmapper >= $DEVMAPPER_REQUIRED to compile libvirt]) + fi + +fi +AC_SUBST([DEVMAPPER_CFLAGS]) +AC_SUBST([DEVMAPPER_LIBS]) + dnl dnl check for libcurl (ESX/XenAPI) dnl diff --git a/src/util/util.c b/src/util/util.c index a7ce4b3..cd4ddf3 100644 --- a/src/util/util.c +++ b/src/util/util.c @@ -3125,6 +3125,8 @@ virTimestamp(void) return timestamp; } +#if defined WITH_STORAGE_MPATH || defined WITH_STORAGE_DISK +/* Currently only disk and mpath storage drivers use this function. */ bool virIsDevMapperDevice(const char *devname) { @@ -3137,3 +3139,4 @@ virIsDevMapperDevice(const char *devname) return false; } +#endif -- 1.7.1 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list