[petsc-dev] OpenMPI && petsc-2.3.3-p15

Jed Brown jed at 59A2.org
Thu Jan 7 02:21:29 CST 2010


On Wed, 6 Jan 2010 14:45:33 -0600 (CST), Satish Balay <balay at mcs.anl.gov> wrote:
> There was also a need to not include 'stdio.h' before mpi.h [for c++]
> - and we can't control this usage in user code. MPICH_SKIP_MPICXX has
> prevented this issue form coming up.
> 
> [Perhaps newer versions of mpich/openmpi workarround this - but some
> users might still be using some older versions - or derivatives of
> mpich - where this issue would come up.]

The normal problem is with the SEEK_SET, SEEK_CUR, and SEEK_END macros
conflicting with MPI-2's namespaced MPI::SEEK_*, which is accepted to be
a bug in the standard.  The MPICH2 workaround is to turn the SEEK_*
macros into enums, OMPI turns them into const ints.  Both force stdio.h
to be included because MPI::SEEK_* is broken when SEEK_* is a macro.

Harald is using a fairly old Open MPI, I haven't seen any warnings like
that from later 1.2.x releases onwards.

Note that MPI-2.2 deprecates the C++ bindings.

Jed



More information about the petsc-dev mailing list