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.] So I prefer keeping this flag - and perhaps have the rule: the few c++/mpi users should include 'mpi.h' and/or 'mpicxx.h' directly from their code - before including petsc.h. Satish On Wed, 6 Jan 2010, Barry Smith wrote: > > Eric, > > Could you describe, preferably with error messages printed by compilers > etc, why this is necessary? I read the comment in petsc.h > > > PETSc does not use the C++ binding of MPI at ALL. The following flag > makes sure the C++ bindings are not included. The C++ bindings REQUIRE > putting mpi.h before ANY C++ include files, we cannot control this > with all PETSc users. > */ > > but could not reproduce the problem (I put C++ include files before mpi.h > without that flag and everything compiled and ran fine for both MPICH and > OpenMPI on my Apple). > > Do we really need the flags. I have no problem putting in the OpenMPI also, > but it does mean that PETSc users cannot use the C++ bindings of MPI (which > some may want to). So I would like to avoid both flags unless they are really > needed. > > Thanks > > Barry > > > On Jan 6, 2010, at 8:21 AM, Eric Chamberland wrote: > > > Hi, > > > > we have compile petsc-2.3.3-p15 with openMPI 1.3.4. To have it working > > with our C++ code, I did a "#define OMPI_SKIP_MPICXX". > > > > In petsc.h, this is already done but for MPICH, on line #137: > > > > #define MPICH_SKIP_MPICXX 1 > > > > It would be nice to also have a: > > > > #define OMPI_SKIP_MPICXX" 1 > > > > But I don't know if it would be necessery also in petsc release 3. > > > > Thank you! > > > > Eric >
