Am 24.06.2009 16:21, schrieb Juergen Keil:
I needed to patch in the xvm-3.4 gate the libvirt with this patch to make it compile (the error mentioned above)(patch attached)2009/6/24 Florian Manschwetus<[email protected]>:Am 24.06.2009 11:42, schrieb Florian Manschwetus:libvirt fails to build here: Undefined first referenced symbol in file virNodeDeviceWaitForDevices ../src/.libs/libvirt_driver_storage.a(storage_backend.o) ld: fatal: symbol referencing errors. No output written to .libs/libvirtd gmake[2]: *** [libvirtd] Error 1 gmake[1]: *** [install] Error 2 gmake: *** [install-recursive] Error 1could some one helo here? FlorianOk, we have found a patch in a newsgroup libvirt builds now. But the package build step fails...What exactly did you have to patch?
Florian
On SX:CE this does build just fine, without patching anything... On OpenSolaris 2009.06 I had to pkg install SUNWbcc, and make sure that /opt/SUNWspro points to the Studio12 compiler. But I started from an OpenSolaris 2009.06 that already had a few more packages installed in the past...
diff --git a/src/node_device.c b/src/node_device.c
index cd9fb6e..787d720 100644
--- a/src/node_device.c
+++ b/src/node_device.c
@@ -34,6 +34,7 @@
#include "logging.h"
#include "node_device_conf.h"
#include "node_device.h"
+#include "storage_backend.h" /* For virWaitForDevices */
#define VIR_FROM_THIS VIR_FROM_NODEDEV
@@ -505,7 +506,7 @@ find_new_device(virConnectPtr conn, const char *wwnn, const
char *wwpn)
while ((now - start) < LINUX_NEW_DEVICE_WAIT_TIME) {
- virNodeDeviceWaitForDevices(conn);
+ virWaitForDevices(conn);
dev = nodeDeviceLookupByWWN(conn, wwnn, wwpn);
@@ -639,32 +640,6 @@ out:
}
-#if defined(UDEVADM) || defined(UDEVSETTLE)
-void virNodeDeviceWaitForDevices(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 virNodeDeviceWaitForDevices(virConnectPtr conn ATTRIBUTE_UNUSED) {}
-#endif
-
-
void registerCommonNodeFuncs(virDeviceMonitorPtr driver)
{
driver->numOfDevices = nodeNumOfDevices;
diff --git a/src/node_device.h b/src/node_device.h
index 882ba0f..db01624 100644
--- a/src/node_device.h
+++ b/src/node_device.h
@@ -53,6 +53,4 @@ void registerCommonNodeFuncs(virDeviceMonitorPtr mon);
int nodedevRegister(void);
-void virNodeDeviceWaitForDevices(virConnectPtr conn);
-
#endif /* __VIR_NODE_DEVICE_H__ */
diff --git a/src/storage_backend.c b/src/storage_backend.c
index d731a23..953928e 100644
--- a/src/storage_backend.c
+++ b/src/storage_backend.c
@@ -96,6 +96,32 @@ static virStorageBackendPtr backends[] = {
};
+#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) {
unsigned int i;
@@ -259,7 +285,7 @@ virStorageBackendUpdateVolTargetInfoFD(virConnectPtr conn,
void virStorageBackendWaitForDevices(virConnectPtr conn)
{
- virNodeDeviceWaitForDevices(conn);
+ virWaitForDevices(conn);
return;
}
@@ -668,3 +694,4 @@ virStorageBackendRunProgNul(virConnectPtr conn,
return -1;
}
#endif
+
diff --git a/src/storage_backend.h b/src/storage_backend.h
index 7bf8814..a3f441c 100644
--- a/src/storage_backend.h
+++ b/src/storage_backend.h
@@ -111,4 +111,6 @@ int virStorageBackendRunProgNul(virConnectPtr conn,
virStorageBackendListVolNulFunc func,
void *data);
+void virWaitForDevices(virConnectPtr conn);
+
#endif /* __VIR_STORAGE_BACKEND_H__ */
smime.p7s
Description: S/MIME Cryptographic Signature
_______________________________________________ xen-discuss mailing list [email protected]
