2011/6/3 Daniel P. Berrange <berrange@xxxxxxxxxx>: > On Fri, Jun 03, 2011 at 01:27:04PM +0200, Matthias Bolte wrote: >> 2011/6/2 Daniel Veillard <veillard@xxxxxxxxxx>: >> > Â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@xxxxxxxxxxxxxx> 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@xxxxxxxxxxxxxx> >> 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 > Thanks, pushed. Matthias -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list