On Jul 4, 2006, at 12:51 AM, Manal Helal wrote:
> I am trying to compile a code that was done for MPICH2 to openmpi 1.1,
> and I am getting a warning:
> warning: passing argument 3 of MPI_Irecv makes pointer from integer
> without a cast
> MPI_Irecv takes the third parameter (the buffer type) as integer
> (MPI_Datatype), and I am using constants declared with (#define) and
> these used to work fine with me on MPICH2.
> Are the MPI APIs interfaces different in open-mpi? if so, where can I
> get this reference?
Your problem is the assumption that a datatype is an integer. The
standard does not define the type of MPI_DATATYPE. MPICH uses
integers, but Open MPI uses pointers to structures. Instead of using
your own #defines for datatypes, you need to use the defined MPI
datatypes (MPI_INT, MPI_DOUBLE, etc.) or derived datatypes.
Hope this helps,
Open MPI developer