]> xenbits.xensource.com Git - people/liuw/libxenctrl-split/libvirt.git/commitdiff
Make dlopen usage in lock manager conditional
authorMatthias Bolte <matthias.bolte@googlemail.com>
Fri, 3 Jun 2011 08:20:49 +0000 (10:20 +0200)
committerMatthias Bolte <matthias.bolte@googlemail.com>
Fri, 3 Jun 2011 14:46:09 +0000 (16:46 +0200)
This fixes a build failure on MinGW, due to MinGW not supporting dlopen.

src/locking/lock_manager.c

index 138cc91997ed73a4002828aeae66131f8cdf3a2c..e97c738d7cde5270750e785f9e95abb272fed348 100644 (file)
@@ -29,7 +29,9 @@
 #include "memory.h"
 #include "uuid.h"
 
-#include <dlfcn.h>
+#if HAVE_DLFCN_H
+# include <dlfcn.h>
+#endif
 #include <stdlib.h>
 #include <unistd.h>
 
@@ -115,6 +117,7 @@ static void virLockManagerLogParams(size_t nparams,
  *
  * Returns a plugin object, or NULL if loading failed.
  */
+#if HAVE_DLFCN_H
 virLockManagerPluginPtr virLockManagerPluginNew(const char *name,
                                                 unsigned int flags)
 {
@@ -188,6 +191,15 @@ cleanup:
         dlclose(handle);
     return NULL;
 }
+#else /* !HAVE_DLFCN_H */
+virLockManagerPluginPtr virLockManagerPluginNew(const char *name ATTRIBUTE_UNUSED,
+                                                unsigned int flags ATTRIBUTE_UNUSED)
+{
+    virLockError(VIR_ERR_INTERNAL_ERROR, "%s",
+                 _("this platform is missing dlopen"));
+    return NULL;
+}
+#endif /* !HAVE_DLFCN_H */
 
 
 /**
@@ -212,6 +224,7 @@ void virLockManagerPluginRef(virLockManagerPluginPtr plugin)
  * result in an unsafe scenario.
  *
  */
+#if HAVE_DLFCN_H
 void virLockManagerPluginUnref(virLockManagerPluginPtr plugin)
 {
     if (!plugin)
@@ -233,6 +246,11 @@ void virLockManagerPluginUnref(virLockManagerPluginPtr plugin)
     VIR_FREE(plugin->name);
     VIR_FREE(plugin);
 }
+#else /* !HAVE_DLFCN_H */
+void virLockManagerPluginUnref(virLockManagerPluginPtr plugin ATTRIBUTE_UNUSED)
+{
+}
+#endif /* !HAVE_DLFCN_H */
 
 
 const char *virLockManagerPluginGetName(virLockManagerPluginPtr plugin)