So ltdl does not help for that matter?
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).
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