
On 05/21/2012 01:59 PM, Daniel P. Berrange wrote:
From: "Daniel P. Berrange" <berrange@redhat.com>
The driver modules all use symbols which are defined in libvirt.so. Thus for loading of modules to work, the binary that libvirt.so is linked to must be exported its symbols back to modules. If the
s/must be exported/must export/
libvirt.so itself is dlopen()d then the RTLD_GLOBAL flag must be set. Unfortunately few, if any, programming languages use the RTLD_GLOBAL flag when loading modules :-( This means is it not practical to use driver modules for any libvirt client side drivers (OpenVZ, VMWare, Hyper-V, Remote client, test).
This patch changes the build process so only server side drivers are built as modules (Xen, QEMU, LXC, UML)
* daemon/libvirtd.c: Add missing load of 'interface' driver * src/Makefile.am: Only build server side drivers as modules * src/libvirt.c: Don't load any driver modules
Signed-off-by: Daniel P. Berrange <berrange@redhat.com> --- daemon/libvirtd.c | 29 +++++++++++- src/Makefile.am | 75 ++----------------------------- src/libvirt.c | 129 ++++++++++++++++++----------------------------------- 3 files changed, 74 insertions(+), 159 deletions(-)
ACK. -- Eric Blake eblake@redhat.com +1-919-301-3266 Libvirt virtualization library http://libvirt.org