[libvirt] [PATCH] Fix use of dlopen modules

Remove the bogus dependancy between node_device.c & storage_backend.c by moving the virWaitForDevices into util.h where it can be shared safely * src/storage_backend_disk.c, src/storage_backend_logical.c, src/storage_backend_mpath.c, src/storage_backend_scsi.c: Replace virStorageBackendWaitForDevices with virFileWaitForDevices * src/storage_backend.c, src/storage_backend.h: Remove virStorageBackendWaitForDevices, virWaitForDevices * src/util.h, src/util.c: Add virFileWaitForDevices * configure.in: Move xmlrpc check further down after pkgconfig is detected * src/Makefile.am: Add missing XMLRPC_CFLAGS/LIBS to opennebula * src/libvirt_private.syms: Add many missing exports --- configure.in | 6 +++--- src/Makefile.am | 4 ++-- src/libvirt_private.syms | 14 +++++++++++++- src/node_device.c | 4 ++-- src/storage_backend.c | 31 ------------------------------- src/storage_backend.h | 2 -- src/storage_backend_disk.c | 4 ++-- src/storage_backend_logical.c | 2 +- src/storage_backend_mpath.c | 2 +- src/storage_backend_scsi.c | 4 ++-- src/util.c | 27 +++++++++++++++++++++++++++ src/util.h | 2 ++ 12 files changed, 55 insertions(+), 47 deletions(-) diff --git a/configure.in b/configure.in index 060eb50..120f7e7 100644 --- a/configure.in +++ b/configure.in @@ -463,6 +463,9 @@ if test "$with_qemu" = "yes" -o "$with_lxc" = "yes" ; then fi +dnl Need to test if pkg-config exists +PKG_PROG_PKG_CONFIG + dnl OpenNebula driver Compilation setting dnl @@ -491,9 +494,6 @@ AC_SUBST([XMLRPC_CFLAGS]) AC_SUBST([XMLRPC_LIBS]) -dnl Need to test if pkg-config exists -PKG_PROG_PKG_CONFIG - dnl ========================================================================== dnl find libxml2 library, borrowed from xmlsec dnl ========================================================================== diff --git a/src/Makefile.am b/src/Makefile.am index 628edc5..02c1f74 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -396,8 +396,8 @@ noinst_LTLIBRARIES += libvirt_driver_one.la # Stateful, so linked to daemon instead #libvirt_la_LIBADD += libvirt_driver_one.la endif -libvirt_driver_one_la_CFLAGS = $(ONE_LIBS) -libvirt_driver_one_la_LDFLAGS = $(ONE_LIBS) +libvirt_driver_one_la_CFLAGS = $(XMLRPC_CFLAGS) +libvirt_driver_one_la_LDFLAGS = $(XMLRPC_LIBS) #libvirt_driver_one_la_CFLAGS = "-DWITH_ONE" if WITH_DRIVER_MODULES libvirt_driver_one_la_LDFLAGS += -module -avoid-version diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index 8dd279d..06192fc 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -10,6 +10,7 @@ virBufferAdd; virBufferAddChar; virBufferContentAndReset; virBufferError; +virBufferURIEncodeString; # caps.h @@ -167,7 +168,16 @@ virHashSize; virInterfaceDefFormat; virInterfaceDefParseFile; virInterfaceDefParseString; +virInterfaceDefParseNode; virInterfaceDefFree; +virInterfaceFindByName; +virInterfaceFindByMACString; +virInterfaceAssignDef; +virInterfaceRemove; +virInterfaceObjLock; +virInterfaceObjUnlock; +virInterfaceObjListFree; + # interface_driver.h interfaceRegister; @@ -214,6 +224,7 @@ virRegisterNetworkDriver; virRegisterStateDriver; virRegisterStorageDriver; virRegisterDeviceMonitor; +virRegisterSecretDriver; # logging.h @@ -410,6 +421,7 @@ virGetUserName; virGetUserID; virGetGroupID; virFileFindMountPoint; +virFileWaitForDevices; # uuid.h @@ -421,7 +433,7 @@ virUUIDParse; # virterror_internal.h virReportErrorHelper; virErrorMsg; -virRaiseError; +virRaiseErrorFull; virReportSystemErrorFull; virReportOOMErrorFull; virStrerror; diff --git a/src/node_device.c b/src/node_device.c index ded203f..69e15b6 100644 --- a/src/node_device.c +++ b/src/node_device.c @@ -35,7 +35,7 @@ #include "node_device_conf.h" #include "node_device_hal.h" #include "node_device.h" -#include "storage_backend.h" /* For virWaitForDevices */ +#include "util.h" #define VIR_FROM_THIS VIR_FROM_NODEDEV @@ -599,7 +599,7 @@ find_new_device(virConnectPtr conn, const char *wwnn, const char *wwpn) while ((now - start) < LINUX_NEW_DEVICE_WAIT_TIME) { - virWaitForDevices(conn); + virFileWaitForDevices(conn); dev = nodeDeviceLookupByWWN(conn, wwnn, wwpn); diff --git a/src/storage_backend.c b/src/storage_backend.c index 5e04f35..0a20255 100644 --- a/src/storage_backend.c +++ b/src/storage_backend.c @@ -630,31 +630,6 @@ virStorageBackendGetBuildVolFromFunction(virConnectPtr conn, return virStorageBackendCreateRaw; } -#if defined(UDEVADM) || defined(UDEVSETTLE) -void virWaitForDevices(virConnectPtr conn) -{ -#ifdef UDEVADM - const char *const settleprog[] = { UDEVADM, "settle", NULL }; -#else - const char *const settleprog[] = { UDEVSETTLE, NULL }; -#endif - int exitstatus; - - if (access(settleprog[0], X_OK) != 0) - return; - - /* - * NOTE: we ignore errors here; this is just to make sure that any device - * nodes that are being created finish before we try to scan them. - * If this fails for any reason, we still have the backup of polling for - * 5 seconds for device nodes. - */ - virRun(conn, settleprog, &exitstatus); -} -#else -void virWaitForDevices(virConnectPtr conn ATTRIBUTE_UNUSED) {} -#endif - virStorageBackendPtr virStorageBackendForType(int type) { @@ -893,12 +868,6 @@ virStorageBackendUpdateVolTargetFormatFD(virConnectPtr conn, } -void virStorageBackendWaitForDevices(virConnectPtr conn) -{ - virWaitForDevices(conn); - return; -} - /* * Given a volume path directly in /dev/XXX, iterate over the * entries in the directory pool->def->target.path and find the diff --git a/src/storage_backend.h b/src/storage_backend.h index eb5bf87..88c6161 100644 --- a/src/storage_backend.h +++ b/src/storage_backend.h @@ -95,7 +95,6 @@ int virStorageBackendUpdateVolTargetFormatFD(virConnectPtr conn, virStorageVolTargetPtr target, int fd); -void virStorageBackendWaitForDevices(virConnectPtr conn); char *virStorageBackendStablePath(virConnectPtr conn, virStoragePoolObjPtr pool, @@ -128,6 +127,5 @@ int virStorageBackendRunProgNul(virConnectPtr conn, virStorageBackendListVolNulFunc func, void *data); -void virWaitForDevices(virConnectPtr conn); #endif /* __VIR_STORAGE_BACKEND_H__ */ diff --git a/src/storage_backend_disk.c b/src/storage_backend_disk.c index 6fdb566..e82959c 100644 --- a/src/storage_backend_disk.c +++ b/src/storage_backend_disk.c @@ -325,7 +325,7 @@ virStorageBackendDiskRefreshPool(virConnectPtr conn, VIR_FREE(pool->def->source.devices[0].freeExtents); pool->def->source.devices[0].nfreeExtent = 0; - virStorageBackendWaitForDevices(conn); + virFileWaitForDevices(conn); if (virStorageBackendDiskReadGeometry(conn, pool) != 0) { return -1; @@ -583,7 +583,7 @@ virStorageBackendDiskCreateVol(virConnectPtr conn, return -1; /* wait for device node to show up */ - virStorageBackendWaitForDevices(conn); + virFileWaitForDevices(conn); /* Blow away free extent info, as we're about to re-populate it */ VIR_FREE(pool->def->source.devices[0].freeExtents); diff --git a/src/storage_backend_logical.c b/src/storage_backend_logical.c index 43117e8..4389120 100644 --- a/src/storage_backend_logical.c +++ b/src/storage_backend_logical.c @@ -478,7 +478,7 @@ virStorageBackendLogicalRefreshPool(virConnectPtr conn, }; int exitstatus; - virStorageBackendWaitForDevices(conn); + virFileWaitForDevices(conn); /* Get list of all logical volumes */ if (virStorageBackendLogicalFindLVs(conn, pool, NULL) < 0) { diff --git a/src/storage_backend_mpath.c b/src/storage_backend_mpath.c index ae02aac..fcc38ba 100644 --- a/src/storage_backend_mpath.c +++ b/src/storage_backend_mpath.c @@ -332,7 +332,7 @@ virStorageBackendMpathRefreshPool(virConnectPtr conn, pool->def->allocation = pool->def->capacity = pool->def->available = 0; - virStorageBackendWaitForDevices(conn); + virFileWaitForDevices(conn); virStorageBackendGetMaps(conn, pool); diff --git a/src/storage_backend_scsi.c b/src/storage_backend_scsi.c index a09103f..c70b1ed 100644 --- a/src/storage_backend_scsi.c +++ b/src/storage_backend_scsi.c @@ -494,7 +494,7 @@ virStorageBackendSCSIFindLUs(virConnectPtr conn, VIR_DEBUG(_("Discovering LUs on host %u"), scanhost); - virStorageBackendWaitForDevices(conn); + virFileWaitForDevices(conn); if (virAsprintf(&device_path, "/sys/bus/scsi/devices") < 0) { virReportOOMError(conn); @@ -542,7 +542,7 @@ virStorageBackendSCSIGetHostNumber(virConnectPtr conn, VIR_DEBUG(_("Finding host number from '%s'"), sysfs_path); - virStorageBackendWaitForDevices(conn); + virFileWaitForDevices(conn); sysdir = opendir(sysfs_path); diff --git a/src/util.c b/src/util.c index af50028..1878e33 100644 --- a/src/util.c +++ b/src/util.c @@ -2019,3 +2019,30 @@ cleanup: return ret; } #endif + +#ifndef PROXY +#if defined(UDEVADM) || defined(UDEVSETTLE) +void virFileWaitForDevices(virConnectPtr conn) +{ +#ifdef UDEVADM + const char *const settleprog[] = { UDEVADM, "settle", NULL }; +#else + const char *const settleprog[] = { UDEVSETTLE, NULL }; +#endif + int exitstatus; + + if (access(settleprog[0], X_OK) != 0) + return; + + /* + * NOTE: we ignore errors here; this is just to make sure that any device + * nodes that are being created finish before we try to scan them. + * If this fails for any reason, we still have the backup of polling for + * 5 seconds for device nodes. + */ + virRun(conn, settleprog, &exitstatus); +} +#else +void virFileWaitForDevices(virConnectPtr conn ATTRIBUTE_UNUSED) {} +#endif +#endif diff --git a/src/util.h b/src/util.h index 896e1b4..f9715ab 100644 --- a/src/util.h +++ b/src/util.h @@ -237,4 +237,6 @@ int virRandom(int max); char *virFileFindMountPoint(const char *type); #endif +void virFileWaitForDevices(virConnectPtr conn); + #endif /* __VIR_UTIL_H__ */ -- 1.6.2.5

On Thu, Sep 10, 2009 at 02:31:00PM +0100, Daniel P. Berrange wrote:
Remove the bogus dependancy between node_device.c & storage_backend.c by moving the virWaitForDevices into util.h where it can be shared safely
* src/storage_backend_disk.c, src/storage_backend_logical.c, src/storage_backend_mpath.c, src/storage_backend_scsi.c: Replace virStorageBackendWaitForDevices with virFileWaitForDevices * src/storage_backend.c, src/storage_backend.h: Remove virStorageBackendWaitForDevices, virWaitForDevices * src/util.h, src/util.c: Add virFileWaitForDevices * configure.in: Move xmlrpc check further down after pkgconfig is detected * src/Makefile.am: Add missing XMLRPC_CFLAGS/LIBS to opennebula * src/libvirt_private.syms: Add many missing exports --- configure.in | 6 +++--- src/Makefile.am | 4 ++-- src/libvirt_private.syms | 14 +++++++++++++- src/node_device.c | 4 ++-- src/storage_backend.c | 31 ------------------------------- src/storage_backend.h | 2 -- src/storage_backend_disk.c | 4 ++-- src/storage_backend_logical.c | 2 +- src/storage_backend_mpath.c | 2 +- src/storage_backend_scsi.c | 4 ++-- src/util.c | 27 +++++++++++++++++++++++++++ src/util.h | 2 ++ 12 files changed, 55 insertions(+), 47 deletions(-)
diff --git a/configure.in b/configure.in index 060eb50..120f7e7 100644 --- a/configure.in +++ b/configure.in @@ -463,6 +463,9 @@ if test "$with_qemu" = "yes" -o "$with_lxc" = "yes" ; then fi
+dnl Need to test if pkg-config exists +PKG_PROG_PKG_CONFIG + dnl OpenNebula driver Compilation setting dnl
@@ -491,9 +494,6 @@ AC_SUBST([XMLRPC_CFLAGS]) AC_SUBST([XMLRPC_LIBS])
-dnl Need to test if pkg-config exists -PKG_PROG_PKG_CONFIG - dnl ========================================================================== dnl find libxml2 library, borrowed from xmlsec dnl ========================================================================== diff --git a/src/Makefile.am b/src/Makefile.am index 628edc5..02c1f74 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -396,8 +396,8 @@ noinst_LTLIBRARIES += libvirt_driver_one.la # Stateful, so linked to daemon instead #libvirt_la_LIBADD += libvirt_driver_one.la endif -libvirt_driver_one_la_CFLAGS = $(ONE_LIBS) -libvirt_driver_one_la_LDFLAGS = $(ONE_LIBS) +libvirt_driver_one_la_CFLAGS = $(XMLRPC_CFLAGS) +libvirt_driver_one_la_LDFLAGS = $(XMLRPC_LIBS) #libvirt_driver_one_la_CFLAGS = "-DWITH_ONE" if WITH_DRIVER_MODULES libvirt_driver_one_la_LDFLAGS += -module -avoid-version
Okay, those 2 are really unrelated, but ACK
diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index 8dd279d..06192fc 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -10,6 +10,7 @@ virBufferAdd; virBufferAddChar; virBufferContentAndReset; virBufferError; +virBufferURIEncodeString;
# caps.h @@ -167,7 +168,16 @@ virHashSize; virInterfaceDefFormat; virInterfaceDefParseFile; virInterfaceDefParseString; +virInterfaceDefParseNode; virInterfaceDefFree; +virInterfaceFindByName; +virInterfaceFindByMACString; +virInterfaceAssignDef; +virInterfaceRemove; +virInterfaceObjLock; +virInterfaceObjUnlock; +virInterfaceObjListFree; +
# interface_driver.h interfaceRegister; @@ -214,6 +224,7 @@ virRegisterNetworkDriver; virRegisterStateDriver; virRegisterStorageDriver; virRegisterDeviceMonitor; +virRegisterSecretDriver;
# logging.h @@ -410,6 +421,7 @@ virGetUserName; virGetUserID; virGetGroupID; virFileFindMountPoint; +virFileWaitForDevices;
# uuid.h @@ -421,7 +433,7 @@ virUUIDParse; # virterror_internal.h virReportErrorHelper; virErrorMsg; -virRaiseError; +virRaiseErrorFull; virReportSystemErrorFull; virReportOOMErrorFull; virStrerror;
ACK
diff --git a/src/node_device.c b/src/node_device.c index ded203f..69e15b6 100644 --- a/src/node_device.c +++ b/src/node_device.c @@ -35,7 +35,7 @@ #include "node_device_conf.h" #include "node_device_hal.h" #include "node_device.h" -#include "storage_backend.h" /* For virWaitForDevices */ +#include "util.h"
#define VIR_FROM_THIS VIR_FROM_NODEDEV
@@ -599,7 +599,7 @@ find_new_device(virConnectPtr conn, const char *wwnn, const char *wwpn)
while ((now - start) < LINUX_NEW_DEVICE_WAIT_TIME) {
- virWaitForDevices(conn); + virFileWaitForDevices(conn);
dev = nodeDeviceLookupByWWN(conn, wwnn, wwpn);
diff --git a/src/storage_backend.c b/src/storage_backend.c index 5e04f35..0a20255 100644 --- a/src/storage_backend.c +++ b/src/storage_backend.c @@ -630,31 +630,6 @@ virStorageBackendGetBuildVolFromFunction(virConnectPtr conn, return virStorageBackendCreateRaw; }
-#if defined(UDEVADM) || defined(UDEVSETTLE) -void virWaitForDevices(virConnectPtr conn) -{ -#ifdef UDEVADM - const char *const settleprog[] = { UDEVADM, "settle", NULL }; -#else - const char *const settleprog[] = { UDEVSETTLE, NULL }; -#endif - int exitstatus; - - if (access(settleprog[0], X_OK) != 0) - return; - - /* - * NOTE: we ignore errors here; this is just to make sure that any device - * nodes that are being created finish before we try to scan them. - * If this fails for any reason, we still have the backup of polling for - * 5 seconds for device nodes. - */ - virRun(conn, settleprog, &exitstatus); -} -#else -void virWaitForDevices(virConnectPtr conn ATTRIBUTE_UNUSED) {} -#endif -
virStorageBackendPtr virStorageBackendForType(int type) { @@ -893,12 +868,6 @@ virStorageBackendUpdateVolTargetFormatFD(virConnectPtr conn, }
-void virStorageBackendWaitForDevices(virConnectPtr conn) -{ - virWaitForDevices(conn); - return; -} - /* * Given a volume path directly in /dev/XXX, iterate over the * entries in the directory pool->def->target.path and find the diff --git a/src/storage_backend.h b/src/storage_backend.h index eb5bf87..88c6161 100644 --- a/src/storage_backend.h +++ b/src/storage_backend.h @@ -95,7 +95,6 @@ int virStorageBackendUpdateVolTargetFormatFD(virConnectPtr conn, virStorageVolTargetPtr target, int fd); -void virStorageBackendWaitForDevices(virConnectPtr conn);
char *virStorageBackendStablePath(virConnectPtr conn, virStoragePoolObjPtr pool, @@ -128,6 +127,5 @@ int virStorageBackendRunProgNul(virConnectPtr conn, virStorageBackendListVolNulFunc func, void *data);
-void virWaitForDevices(virConnectPtr conn);
#endif /* __VIR_STORAGE_BACKEND_H__ */ diff --git a/src/storage_backend_disk.c b/src/storage_backend_disk.c index 6fdb566..e82959c 100644 --- a/src/storage_backend_disk.c +++ b/src/storage_backend_disk.c @@ -325,7 +325,7 @@ virStorageBackendDiskRefreshPool(virConnectPtr conn, VIR_FREE(pool->def->source.devices[0].freeExtents); pool->def->source.devices[0].nfreeExtent = 0;
- virStorageBackendWaitForDevices(conn); + virFileWaitForDevices(conn);
if (virStorageBackendDiskReadGeometry(conn, pool) != 0) { return -1; @@ -583,7 +583,7 @@ virStorageBackendDiskCreateVol(virConnectPtr conn, return -1;
/* wait for device node to show up */ - virStorageBackendWaitForDevices(conn); + virFileWaitForDevices(conn);
/* Blow away free extent info, as we're about to re-populate it */ VIR_FREE(pool->def->source.devices[0].freeExtents); diff --git a/src/storage_backend_logical.c b/src/storage_backend_logical.c index 43117e8..4389120 100644 --- a/src/storage_backend_logical.c +++ b/src/storage_backend_logical.c @@ -478,7 +478,7 @@ virStorageBackendLogicalRefreshPool(virConnectPtr conn, }; int exitstatus;
- virStorageBackendWaitForDevices(conn); + virFileWaitForDevices(conn);
/* Get list of all logical volumes */ if (virStorageBackendLogicalFindLVs(conn, pool, NULL) < 0) { diff --git a/src/storage_backend_mpath.c b/src/storage_backend_mpath.c index ae02aac..fcc38ba 100644 --- a/src/storage_backend_mpath.c +++ b/src/storage_backend_mpath.c @@ -332,7 +332,7 @@ virStorageBackendMpathRefreshPool(virConnectPtr conn,
pool->def->allocation = pool->def->capacity = pool->def->available = 0;
- virStorageBackendWaitForDevices(conn); + virFileWaitForDevices(conn);
virStorageBackendGetMaps(conn, pool);
diff --git a/src/storage_backend_scsi.c b/src/storage_backend_scsi.c index a09103f..c70b1ed 100644 --- a/src/storage_backend_scsi.c +++ b/src/storage_backend_scsi.c @@ -494,7 +494,7 @@ virStorageBackendSCSIFindLUs(virConnectPtr conn,
VIR_DEBUG(_("Discovering LUs on host %u"), scanhost);
- virStorageBackendWaitForDevices(conn); + virFileWaitForDevices(conn);
if (virAsprintf(&device_path, "/sys/bus/scsi/devices") < 0) { virReportOOMError(conn); @@ -542,7 +542,7 @@ virStorageBackendSCSIGetHostNumber(virConnectPtr conn,
VIR_DEBUG(_("Finding host number from '%s'"), sysfs_path);
- virStorageBackendWaitForDevices(conn); + virFileWaitForDevices(conn);
sysdir = opendir(sysfs_path);
diff --git a/src/util.c b/src/util.c index af50028..1878e33 100644 --- a/src/util.c +++ b/src/util.c @@ -2019,3 +2019,30 @@ cleanup: return ret; } #endif + +#ifndef PROXY +#if defined(UDEVADM) || defined(UDEVSETTLE) +void virFileWaitForDevices(virConnectPtr conn) +{ +#ifdef UDEVADM + const char *const settleprog[] = { UDEVADM, "settle", NULL }; +#else + const char *const settleprog[] = { UDEVSETTLE, NULL }; +#endif + int exitstatus; + + if (access(settleprog[0], X_OK) != 0) + return; + + /* + * NOTE: we ignore errors here; this is just to make sure that any device + * nodes that are being created finish before we try to scan them. + * If this fails for any reason, we still have the backup of polling for + * 5 seconds for device nodes. + */ + virRun(conn, settleprog, &exitstatus); +} +#else +void virFileWaitForDevices(virConnectPtr conn ATTRIBUTE_UNUSED) {} +#endif +#endif diff --git a/src/util.h b/src/util.h index 896e1b4..f9715ab 100644 --- a/src/util.h +++ b/src/util.h @@ -237,4 +237,6 @@ int virRandom(int max); char *virFileFindMountPoint(const char *type); #endif
+void virFileWaitForDevices(virConnectPtr conn); + #endif /* __VIR_UTIL_H__ */ -- 1.6.2.5
Okay, refactoring is fine, ACK Daniel -- Daniel Veillard | libxml Gnome XML XSLT toolkit http://xmlsoft.org/ daniel@veillard.com | Rpmfind RPM search engine http://rpmfind.net/ http://veillard.com/ | virtualization library http://libvirt.org/

On Thu, Sep 10, 2009 at 03:57:07PM +0200, Daniel Veillard wrote:
On Thu, Sep 10, 2009 at 02:31:00PM +0100, Daniel P. Berrange wrote:
Remove the bogus dependancy between node_device.c & storage_backend.c by moving the virWaitForDevices into util.h where it can be shared safely
* src/storage_backend_disk.c, src/storage_backend_logical.c, src/storage_backend_mpath.c, src/storage_backend_scsi.c: Replace virStorageBackendWaitForDevices with virFileWaitForDevices * src/storage_backend.c, src/storage_backend.h: Remove virStorageBackendWaitForDevices, virWaitForDevices * src/util.h, src/util.c: Add virFileWaitForDevices * configure.in: Move xmlrpc check further down after pkgconfig is detected * src/Makefile.am: Add missing XMLRPC_CFLAGS/LIBS to opennebula * src/libvirt_private.syms: Add many missing exports --- configure.in | 6 +++--- src/Makefile.am | 4 ++-- src/libvirt_private.syms | 14 +++++++++++++- src/node_device.c | 4 ++-- src/storage_backend.c | 31 ------------------------------- src/storage_backend.h | 2 -- src/storage_backend_disk.c | 4 ++-- src/storage_backend_logical.c | 2 +- src/storage_backend_mpath.c | 2 +- src/storage_backend_scsi.c | 4 ++-- src/util.c | 27 +++++++++++++++++++++++++++ src/util.h | 2 ++ 12 files changed, 55 insertions(+), 47 deletions(-)
diff --git a/configure.in b/configure.in index 060eb50..120f7e7 100644 --- a/configure.in +++ b/configure.in @@ -463,6 +463,9 @@ if test "$with_qemu" = "yes" -o "$with_lxc" = "yes" ; then fi
+dnl Need to test if pkg-config exists +PKG_PROG_PKG_CONFIG + dnl OpenNebula driver Compilation setting dnl
@@ -491,9 +494,6 @@ AC_SUBST([XMLRPC_CFLAGS]) AC_SUBST([XMLRPC_LIBS])
-dnl Need to test if pkg-config exists -PKG_PROG_PKG_CONFIG - dnl ========================================================================== dnl find libxml2 library, borrowed from xmlsec dnl ========================================================================== diff --git a/src/Makefile.am b/src/Makefile.am index 628edc5..02c1f74 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -396,8 +396,8 @@ noinst_LTLIBRARIES += libvirt_driver_one.la # Stateful, so linked to daemon instead #libvirt_la_LIBADD += libvirt_driver_one.la endif -libvirt_driver_one_la_CFLAGS = $(ONE_LIBS) -libvirt_driver_one_la_LDFLAGS = $(ONE_LIBS) +libvirt_driver_one_la_CFLAGS = $(XMLRPC_CFLAGS) +libvirt_driver_one_la_LDFLAGS = $(XMLRPC_LIBS) #libvirt_driver_one_la_CFLAGS = "-DWITH_ONE" if WITH_DRIVER_MODULES libvirt_driver_one_la_LDFLAGS += -module -avoid-version
Okay, those 2 are really unrelated, but ACK
They are related actually. OpenNebula has always needed XMLRPC linker flags, but this mistake was preventing it seeing them directly. By accident it still worked though, probably because some other thing w link to also pulls in the XMLRPC libs. When built as a dlopen'able module though this bug was exposed. Daniel -- |: Red Hat, Engineering, London -o- http://people.redhat.com/berrange/ :| |: http://libvirt.org -o- http://virt-manager.org -o- http://ovirt.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|
participants (2)
-
Daniel P. Berrange
-
Daniel Veillard