Hello Jeff, Eugene, > Jeff Squyres wrote: > >> We use lt_dlopen() to open the plugins (Libtool's wrapper for a >> portable dlopen). It opens all plugins (DSOs) in a private scope. >> That private scope is kept deep in the OPAL MCA base and not exposed >> elsewhere in the code base. So if you manually dlopen a plugin again, >> I'll bet that the linker realizes that that DSO has already been >> loaded into the process space and doesn't actually load it again (but >> doesn't fail). So the dlsyms fail because you don't have access to >> the private scope from where Libtool originally opened the DSO.
Shouldn't it work to re-dlopen the lib with RTLD_GLOBAL? Also, recent libltdl should allow you to choose which scope you want in the first place, local or global, through lt_dladvise. Hope that helps. Cheers, Ralf