[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: [mpi-21] Call for MPI 2.2 and 3.0 agenda items for the Jan meeting
On Tue, 2007-12-04 at 09:00 -0800, Erez Haba wrote:
> The feedback I am getting back from ISVâs is that the two most
> important issues for the C ABI are
I've extended this list with three other things you'll need.
> 1. Calling convention
>
> 2. Size of input parameters (e.g., whatâs the size of MPI_Comm)
3. The values of some constants, e.g. MPI_COMM_WORLD
> I didnât hear any ISV ask for unified binary name, and think that this
> would be unwise to do so.
4. You need a unified binary name. Otherwise your program would not
link.
> Having binaries clash with each other is a deployment nightmare.
I don't know much about Windows but on Unix this is traditionally
largely solved by the major version number of the library.
5. A library major number.
I recommend this webpage for anyone not familiar with library version
numbers, http://www.ibm.com/developerworks/linux/library/l-shlibs.html
What is supposed to happen is when a given library has a API change the
minor number is incremented and when there is a ABI change the major
number is incremented. When a program is compiled it's linked against
the library with the highest major number and this number is stored in
the executable. At run-time differences in minor number are ignored but
if a library with a matching major number is not found the program will
not link.
Taking this minimalist view as to what a ABI should cover, what Greg
refers to in his talk as the easy part, I think there would be a good
case for this being a de-facto standard rather than anything prescribed
by the forum.
Of course all this only applies to c, as far as I can see c++ itself
doesn't have a ABI that spans compiler versions and Fortran doesn't have
a ABI that allows you covers multiple compiler vendors.
Ashley,