On 12/02/18 12:11 PM, Jed Brown wrote:
Eric Chamberland <eric.chamberl...@giref.ulaval.ca> writes:

why does mpi stuff appears in the first one and not the second?

I would prefer to have "-lmpi" in the second one too... When is it
decided to "hide" external packages "under" PETSc? At configuration time?

I don't know what pkg-config recommends in this situation, but consider
that petscsys.h includes mpi.h so a corresponding -I flag needs to be on
the command line any time you compile code that calls PETSc.  If your
application never calls MPI directly, it would be safe to link without
-lmpi.


ok, understood. We do have MPI calls (C API). I then have to add -lmpi myself and not rely on pkg-config of PETSC for this one and it is normal...

Also note that PETSc provides symbols (like PETSC_COMM_WORLD) which also
have the effect that merely calling PETSc does not require directly
referencing MPI symbols (MPI_COMM_WORLD is a symbol, not a macro, in
Open MPI).

And that PETSc built with MPICH can be linked unmodified with other
conforming MPI implementations.

   http://www.mpich.org/abi/


ok, that's interesting to know about!

I explicitly prohibited to execute with a different MPI lib/version than the one used to compile. I could relax a bit this constraint then...

Thanks again,

Eric

Reply via email to