On Fri, Jun 03, 2011 at 01:27:04PM +0200, Matthias Bolte wrote:
2011/6/2 Daniel Veillard <veillard(a)redhat.com>:
> I just pushed a second release candidate
> ftp://libvirt.org/libvirt/libvirt-0.9.2-rc2.tar.gz
> with corresponding rpm builds, this includes the extrenal lock support.
>
> On Wed, Jun 01, 2011 at 12:49:52PM +0200, Ruben Kerkhof wrote:
>> On Wed, Jun 1, 2011 at 10:31, Matthias Bolte
>> <matthias.bolte(a)googlemail.com> wrote:
>> > Works on Ubuntu 10.04, Windows (MinGW) and FreeBSD.
>> >
>> > Matthias
>>
>> Works on OSX 10.7.0, tested with VirtualBox 4.08
>
> Excellent news, thanks !
> I hope we didn't introduced regressions in portability with the latest
> API additions ! If people could also try -rc2 it would be great too,
>
> thanks !
>
> Daniel
>
RC2 is broken on MinGW due to the lock manager using dlopen
unconditional. The attached patch fixes it.
Still works on FreeBSD and Ubuntu 10.04.
Matthias
From c734e683c4d9bbb5a87fba3e0008ce8000b62fe5 Mon Sep 17 00:00:00
2001
From: Matthias Bolte <matthias.bolte(a)googlemail.com>
Date: Fri, 3 Jun 2011 10:20:49 +0200
Subject: [PATCH] Make dlopen usage in lock manager conditional
This fixes build failure on MinGW, due to MinGW not supporting dlopen.
---
src/locking/lock_manager.c | 20 +++++++++++++++++++-
1 files changed, 19 insertions(+), 1 deletions(-)
diff --git a/src/locking/lock_manager.c b/src/locking/lock_manager.c
index 6197fd4..6293e6d 100644
--- a/src/locking/lock_manager.c
+++ b/src/locking/lock_manager.c
@@ -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)
{
@@ -187,6 +190,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 */
/**
@@ -211,6 +223,7 @@ void virLockManagerPluginRef(virLockManagerPluginPtr plugin)
* result in an unsafe scenario.
*
*/
+#if HAVE_DLFCN_H
void virLockManagerPluginUnref(virLockManagerPluginPtr plugin)
{
if (!plugin)
@@ -232,6 +245,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)
ACK, I hit this yesterday but ran out of time to fix it
Daniel
--
|:
http://berrange.com -o-
http://www.flickr.com/photos/dberrange/ :|
|:
http://libvirt.org -o-
http://virt-manager.org :|
|:
http://autobuild.org -o-
http://search.cpan.org/~danberr/ :|
|:
http://entangle-photo.org -o-
http://live.gnome.org/gtk-vnc :|