On Sep 5, 2012, at 10:21 AM, Samuel Thibault wrote:
> So ltdl does not help for that matter?
No. It's not really an ltdl issue. ltdl is just a portable wrapper around OS-specific dlopen-like mechanisms.
Back-end linker semantics (like these) are a whole different issue.
> One way would be to pass to the component a structure with all the
> useful function pointers (using #define to keep the same source code).
We thought about this in OMPI and decided it would be a nightmare in the source code. That being said, we didn't *actually try it*, so I can't say for sure. But it certainly does make me nervous.
> Another way would be to gather the allowed functions into a separate
> libhwloc-components library without internal state, thus allowing
> several copies, but that would bring a possibility of differing versions
> between e.g. a statically-linked libhwloc.a and the dynamically-loaded
Yuck. If a software design *requires* multiple copies of the code, that just seems pretty ugly to me. :-\
For corporate legal information go to: http://www.cisco.com/web/about/doing_business/legal/cri/