ABI compatibility means that the binary object code of the MPI implementation, libraries that use MPI, and the main MPI application program can be linked and executed correctly. The type layouts, symbol names, and calling conventions of MPI routines behave as if they have been compiled with the system C compiler toolchain (as determined, in particular, by the system C runtime library).
Advice to users.
Libraries and applications that use MPI may be built with any toolchain they wish,
as long as they adhere to these conventions when calling MPI routines.
Compiler options that change the size or layout of types, or calling conventions,
should be avoided.
( End of advice to users.)