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

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to