On Wed, 25 Apr 2018, Smith, Barry F. wrote: > > > > On Apr 25, 2018, at 2:31 PM, Jed Brown <j...@jedbrown.org> wrote: > > > > "Smith, Barry F." <bsm...@mcs.anl.gov> writes: > > > >>> On Apr 25, 2018, at 1:36 PM, Jed Brown <j...@jedbrown.org> wrote: > >>> > >>> It is currently installed to include/petsc/mpiuni/mpi.h and petscsys.h > >>> includes it as <mpi.h>, which means that users of MPIUNI need to put > >>> -I/prefix/include/petsc/mpiuni in their command lines. Matt and I agree > >>> that this is bad. We disagree on the solution. > >>> > >>> He wants to install it to /prefix/include/mpi.h as though the user had > >>> written --download-mpich. This would conflict if a user later installs > >>> a real MPI to that location. > >> > >> Jed, > >> > >> So you propose in petscsys.h ? > >> > >> #if defined(PETSC_HAVE_MPIUNI) > >> #include <petsc/mpiuni/mpi.h> > >> #else > >> #include <mpi.h> > >> #endif > >> > >> I don't have a problem with this. > > > > Yes, and same installation layout as today. > > Ok, this is far better than copying the mpiuni mpi.h file to a public > place (Matt's suggestion) and is a bit better than requiring the extra -I > flag (Satish's suggestion) >
All approaches have drawbacks. This approach breaks user code. I guess thats easy to work arround [and fix these examples awell] $ git grep '<mpi\.h>' |grep examples src/dm/examples/tests/ex42.c:#include <mpi.h> src/tao/leastsquares/examples/tutorials/chwirut2.c:#include <mpi.h> > > > >> I notice that the Fortran petscsys.h is scattered full of weird MPIUni > >> specific stuff like > >> > >> #if defined (PETSC_HAVE_MPIUNI) > >> #include "mpiunifdef.h" > >> #endif > >> > >> #if defined(PETSC_HAVE_MPIUNI) > >> #define MPI_Comm PetscFortranInt > >> #define MPI_Group PetscFortranInt > >> #define PetscMPIInt PetscFortranInt > >> #else > >> #define MPI_Comm integer > >> #define MPI_Group integer > >> #define PetscMPIInt integer > >> #endif I might have diverged from mpi standard to prevent '-i8' affecting petsc+mpiuni code. Satish > >> > >> It seems PETSc Fortran does not use the standard mpif.h file? > > > > Yuck. > > I don't remember the history of this construct. There must have been a > reason years ago that may no longer exist, I don't know. > > Barry > > >