On Apr 29, 2011, at 4:09 PM, Paul H. Hargrove wrote:
>> lib_mpif90.so had changes for the upcoming 1.4.4 release that requires a .so version bump. Specifically, some MPI F90 bindings used to have some parameters of type INTEGER. In 1.4.4, those parameter types were corrected to be INTEGER(KIND=MPI_ADDRESS_KIND).
> You are thinking of the so-versions problem as if the change above is an ABI change. However, one could claim at a stretch that the entire 1.3.x and 1.4.x series implements the ABI present in the specification/documentation and in 1.4.4; and thus that the older versions contain a BUGGY implementation of the always-intended INTEGER(KIND=MPI_ADDRESS_KIND) ABI for the "large" F90 bindings.
> Under that reasoning I would endorse:
>> 2. Go with 0:2:0.
Good reasoning. I think it would actually be 0:2:1 in that case...?
>> IMPACT: Same as above. A binary using the old/wrong interfaces (e.g., compiled against 1.4.3) could still run-time link against OMPI 1.4.4 and possibly segv because the parameters are different sizes.
> I am unclear on how a binary linked to <=1.4.3 that was truncating the arguments would have worked in the first place.
If someone called MPI_SCATTERV with INTEGER sendcounts and displs arguments, it would have compiled / worked with 1.4.3. But if they then change their LD_LIBRARY_PATH to 1.4.4 and re-run the same binary, their actual argument memory should be shorter than what is necessary because the 1.4.4 sendcounts / displs type is INTEGER(KIND=MPI_ADDRESS_KIND).
For corporate legal information go to: