12e82daa78
Junchao Zhang pointed out to me that we had the wrong parameter name and string length specification for the "version" parameter. This matters because Fortran allows passing by parameter name (vs. parameter ordering). Specifically, we had the interface as: {{{ subroutine MPI_Get_library_version_f08(name,resultlen,ierror) character(len=MPI_MAX_PROCESSOR_NAME), intent(out) :: name ...etc. }}} but it should be: {{{ subroutine MPI_Get_library_version_f08(version,resultlen,ierror) character(len=MPI_MAX_LIBRARY_VERSION_STRING), intent(out) :: version ...etc. }}} Thankfully, MPI_MAX_PROCESSOR_NAME and MPI_MAX_LIBRARY_VERSION_STRING are both 255 in OMPI, so there's no ABI issue caused by changing the length from MMPN --> MMLVS. The ABI is also unaffected by the parameter name change: if you compile/link an MPI application calling MPI_GET_LIBRARY_VERSION with 1.8, it'll still run-time link with this change. However, if an MPI program compiled using parameter name passing with the old/incorrect parameter name ("name"), it won't be able to compile with the new/correct parameter name ("version"). But this will only happen for an incorrect MPI application (because the MPI-3 mandated parameter name is "version", not "name"), so they deserve what they get. cmr=v1.8.1:reviewer=dgoodell This commit was SVN r31365. |
||
---|---|---|
.. | ||
attr_fn_f.c | ||
attr_fn-f90-interfaces.h | ||
constants.h | ||
conversion_fn_null_f.c | ||
conversion_fn_null-f90-interface.h | ||
datarep.h | ||
f90_accessors.c | ||
fint_2_int.h | ||
Makefile.am | ||
mpi-f08-interfaces-callbacks.F90 | ||
mpi-f08-interfaces.F90 | ||
mpi-f08-types.F90 | ||
pmpi-f08-interfaces.F90 | ||
strings.c | ||
strings.h | ||
test_constants_f.c |