On Mon, 23 Mar 2009, Olaf Lenz wrote:

and the solution that is described there still looks as though it should still work now, or shouldn't it? Just link all the OpenMPI plugins against the base OpenMPI libraries, and it should work. Or am I wrong?

I believe your suggestion will not work, certainly not portably. In fact, it will die in horrible ways. We used to link in the way you suggested, and what you end up with is a bunch of copies of libmpi, all in their own namespace. Hardly helpful :).

Unfortunately, there are only three rational solutions I've thought of to the problem:

* Do nothing, my prefered solution
* Stop building components by default
* Have libmpi be a thin wrapper, which dlopens Open MPI's guts into the public namespace, and the guts then dlopen all the components.

Obviously, the first serves the greatest community and involves the least amount of work. However, packagers such as the Linux distributions should make a decision about how to best package Open MPI -- perhaps shipping it built with components is not the ideal solution for their infrastructure.

I did want to point out one incorrect statement in your e-mail. While specifying "--enable-shared --enable-static" to configure will cause components to be linked into libmpi rather than built as stand-alone entities, a better way to accomplish that is "--enable-mca-static", which will build all the components into libmpi.so, but not also cause libmpi.a to be built.

Brian

Reply via email to