
On 05/21/2012 01:59 PM, Daniel P. Berrange wrote:
From: "Daniel P. Berrange" <berrange@redhat.com>
* daemon/libvirtd.c: Set custom driver module dir if the current binary name is 'lt-libvirtd' (indicating execution directly from GIT checkout) * src/driver.c, src/driver.h, src/libvirt_driver_modules.syms: Add virDriverModuleInitialize to allow driver module location to be changed
Signed-off-by: Daniel P. Berrange <berrange@redhat.com> --- daemon/libvirtd.c | 6 ++++++ src/driver.c | 18 ++++++++++++++++-- src/driver.h | 1 + src/libvirt_driver_modules.syms | 1 + 4 files changed, 24 insertions(+), 2 deletions(-)
diff --git a/daemon/libvirtd.c b/daemon/libvirtd.c index 1e91a45..943fef4 100644 --- a/daemon/libvirtd.c +++ b/daemon/libvirtd.c @@ -958,6 +958,12 @@ int main(int argc, char **argv) { /* initialize early logging */ virLogSetFromEnv();
+#ifdef WITH_DRIVER_MODULES + if (strstr(argv[0], "lt-libvirtd") &&
This is not portable to cygwin. Then again, I haven't yet got libvirtd to compile on cygwin, so I don't know if it really matters. Supposedly, libtool has features to make it easier to run in-tree builds, but I'd have to research if any of those were any easier than what you've just hard-coded in.
+ (access("./.git", R_OK) >= 0 || access("../.git", R_OK) >= 0)) + virDriverModuleInitialize("./src/.libs");
This is hard-coded to a very limited set of build setups (that is, it won't work with all possible VPATH builds). Can we somehow get at $srcdir from Makefile and turn it into a #define or an environment variable, so that we are making only a single probe of the correct directory regardless of what VPATH build we used? Is this something where we need to write a wrapper script around the libtool wrapper that adds an extra command line argument to libvirtd? -- Eric Blake eblake@redhat.com +1-919-301-3266 Libvirt virtualization library http://libvirt.org