Open MPI logo

Open MPI Development Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Development mailing list

Subject: [OMPI devel] problems compiling new ROMIO with PVFS2 support
From: Edgar Gabriel (gabriel_at_[hidden])
Date: 2011-05-20 12:44:41


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