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).

-- 
Jeff Squyres
jsquy...@cisco.com
For corporate legal information go to:
http://www.cisco.com/web/about/doing_business/legal/cri/


Reply via email to