FWIW: Terry told me in IM that he hates this RFC as well (more details coming later).

On Nov 6, 2008, at 2:58 PM, Ralf Wildenhues wrote:

Hmm, OpenMPI seems not to use versioning for its shared libraries.

That was on the to-do list for this release, but it just didn't happen.
:-\

Oh well. When you start doing it, please coordinate with distributors;
it's not likely, but some of them may have actually packaged OpenMPI
with versioning, including (one then hopes!) adjusting versions as
needed between releases.  You might want to start out with numbers
upward of that then.

Will do; thanks for the tip.

MPI API is compatible across releases; it hasn't changed. We have never
[yet] claimed ABI compatible across releases -- we may still do this
someday.

FWIW, this task looks quite a bit easier to me than, say, defining an
ABI valid for several MPI implementations.


Yes; our biggest issue is the fact that gcc complains when the size of structs change, even though those structs are never exposed to MPI applications. Specifically:

1. MPI_Comm is defined as "typedef struct ompi_communicator_t *MPI_Comm"
2. If we change the size of the ompi_communicator_t struct between two different versions of libmpi, gcc warns when user MPI applications are linked against a new libmpi

Everything seems to work since MPI_Comm is only ever used as an opaque handle by the MPI application. But we haven't looked deeply [yet] to see if there are more hidden dragons than this, and if not, if there is a way to suppress the warning.

--
Jeff Squyres
Cisco Systems

Reply via email to