From f5f1fe1b3a2e3419402bfc9d1fbce462dbed48d7 Mon Sep 17 00:00:00 2001 From: "Daniel P. Berrange" Date: Mon, 2 Apr 2012 17:23:59 +0100 Subject: [PATCH] Replace RTLD_LOCAL with RTLD_GLOBAL Since we have drivers which depend on each other (ie QEMU/LXC depend on the network driver APIs), we need to use RTLD_GLOBAL instead of RTLD_LOCAL. While this pollutes the calling binary with many more symbols, this is no worse than if we directly link to the drivers, and this only applies to libvirtd * src/driver.c: s/RTLD_LOCAL/RTLD_GLOBAL/ Signed-off-by: Daniel P. Berrange --- src/driver.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/driver.c b/src/driver.c index 5034277838..fb162e0ec9 100644 --- a/src/driver.c +++ b/src/driver.c @@ -59,7 +59,7 @@ virDriverLoadModule(const char *name) goto cleanup; } - handle = dlopen(modfile, RTLD_NOW | RTLD_LOCAL); + handle = dlopen(modfile, RTLD_NOW | RTLD_GLOBAL); if (!handle) { VIR_ERROR(_("failed to load module %s %s"), modfile, dlerror()); goto cleanup;