mpi-forum/mpi-issues

allow macros in addition to function symbols for f2c etc

Opened this issue · 1 comments

Problem

#647 requires f2c/c2f to be symbols. We ended up implementing this with text that prohibits macros.

An implementation is allowed to implement MPI_AINT_ADD, PMPI_AINT_ADD, MPI_AINT_DIFF, and PMPI_AINT_DIFF, and no others, as macros in C.

This ended up causing backwards compatibility issues (pmodels/mpich#7244) in MPICH, when users tried to run with an older Intel MPI.

Proposal

Change the text to stipulate that these must be symbols in the library, but can also be macros in the header, as long as they are exactly equivalent.

Note that I am perfectly fine doing nothing here, since MPICH will be strictly compliant in their implementation of the standard ABI, which won't have the same backwards compatibility burden to pre-4.1 days.

Changes to the Text

TODO, pending consensus.

Impact on Implementations

Allows MPICH to be backwards compatible.

Impact on Users

Helps with backwards compatibility issues as we cross the 4.1 version boundary.

References and Pull Requests

@hzhou @raffenet I am not going to push this without encouragement, but I felt it necessary to capture the issue for posterity.