Am 24.06.2009 16:21, schrieb Juergen Keil:
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 1

could some one helo here?

Florian
Ok, we have found a patch in a newsgroup libvirt builds now.
But the package build step fails...


What exactly did you have to patch?
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)

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__ */

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature

_______________________________________________
xen-discuss mailing list
[email protected]

Reply via email to