<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Jan 21, 2013 at 5:31 PM, Matthew Knepley <span dir="ltr"><<a href="mailto:knepley@gmail.com" target="_blank">knepley@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">On Mon, Jan 21, 2013 at 4:12 PM, Karl Rupp <span dir="ltr"><<a href="mailto:rupp@mcs.anl.gov" target="_blank">rupp@mcs.anl.gov</a>></span> wrote:<br>
</div><div class="gmail_extra"><div class="gmail_quote"><div class="im"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Dear PETScians,<br>
<br>
MPI 3.0 *removes* a set of functions from MPI 1.x, of which the following are in use in PETSc:<br>
<br>
 * MPI_Type_struct, used in<br>
   src/ts/characteristic/impls/<u></u>da/slda.c<br>
   src/dm/impls/mesh/meshpcice.c<br>
<br>
 * MPI_Errhandler_create/MPI_<u></u>Errhandler_set, used in<br>
   src/sys/objects/pinit.c<br>
   src/sys/objects/init.c<br>
<br>
In both cases function were renamed in MPI-2.0:<br>
  MPI_Type_struct       -> MPI_Type_create_struct<br>
  MPI_Errhandler_create -> MPI_Comm_create_errhandler<br>
  MPI_Errhandler_set    -> MPI_Comm_set_errhandler<br>
<br>
It should be sufficient to update BuildSystem/config/packages/<u></u>MPI.py and add the respective checks in configureMPI2(). Any objections on the following defines:<br>
  HAVE_MPI_TYPE_CREATE_STRUCT<br>
  HAVE_MPI_COMM_CREATE_<u></u>ERRHANDLER<br>
  HAVE_MPI_COMM_SET_ERRHANDLER<br>
in the case of success?<br></blockquote><div><br></div></div><div>Yes, this is the right way.</div></div></div></blockquote></div><br>I'm also in favor of changing all the call sites to the new function names. I think that if configure does not find a new function name, we can<br>
<br>#define MPI_Type_create_struct(count,lens,displs,types,newtype) MPI_Type_struct((count),(lens),(displs),(types),(newtype))</div><div class="gmail_extra"><br></div><div class="gmail_extra" style>similar to the defines in petsclog.h (though those are for logging) so that we don't need macros at every call site. FWIW, I'd prefer that the redefines in petsclog.h be moved to a header that is not mandatory for users to include (because the current approach cannot be used with another library that also does the same thing).</div>
</div>