we recently encountered a problem here at UH when compiling the new ROMIO version in the trunk with PVFS2 support. The error that we are getting is a list of
ad_pvfs2_io_dtype.c:581:13: error: switch quantity not an integer
ad_pvfs2_io_dtype.c:583:2: error: pointers are not permitted as case values
(with a lot more similar error messages).
The error is due to a code sequence in that file which does something like:
switch (mpi_dtype)
{
case MPI_CHAR:
do something;
break;
case MPI_BYTE:
do something;
break;
case MPI_SHORT:
...
}
This works for MPICH, but not for Open MPI since the datatypes are
pointers. Anyway, I have a fix which converts this switch statement in
the according ROMIO file to an
if ( MPI_CHAR == mpi_dtype )
else if ( == mpi_dtype )
else if ...
else
sequence. I was just wandering whether to commit the code to trunk,
since it modifies a package that has been brought in from outside..
(There is btw. a second warning in the file which makes me a bit
nervous, but that is a warning and the file still compiles, while the
other one is an error and the compilation aborts...
ad_pvfs2_io_dtype.c:264:6: warning: passing argument 6 of
âPMPI_Type_get_contentsâ from incompatible pointer type
../../../../../../../ompi/include/mpi.h:1985:20: note: expected
âMPI_Aint *â but argument is of type âint *â
since an MPI_Aint really should be a long on this platform, not an int
)
Thanks
Edgar
--
Edgar Gabriel
Assistant Professor
Parallel Software Technologies Lab http://pstl.cs.uh.edu
Department of Computer Science University of Houston
Philip G. Hoffman Hall, Room 524 Houston, TX-77204, USA
Tel: +1 (713) 743-3857 Fax: +1 (713) 743-3335
signature.asc
Description: OpenPGP digital signature
