Open MPI logo

Open MPI User's Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Open MPI User's mailing list

Subject: Re: [OMPI users] on SEEK_*
From: Jed Brown (jed_at_[hidden])
Date: 2008-10-16 07:57:37

On Thu 2008-10-16 07:43, Jeff Squyres wrote:
> On Oct 16, 2008, at 6:29 AM, Jed Brown wrote:
> Open MPI doesn't require undef'ing of anything. It should also not
> require any special ordering of include files. Specifically, the
> following codes both compile fine for me with 1.2.8 and the OMPI SVN
> trunk (which is what I assume you mean by "-dev"?):

That's what I meant. This, works with 1.2.7 but not with -dev:

#include <iostream>
#undef SEEK_SET
#undef SEEK_CUR
#undef SEEK_END
#include <mpi.h>

If iostream is replaced by stdio, then both fail.

> This is actually a problem in the MPI-2 spec; the names "MPI::SEEK_SET"
> (and friends) were unfortunately chosen poorly. Hopefully that'll be
> fixed relatively soon, in MPI-2.2.

It wasn't addressed in the MPI-2.1 spec I was reading, hence my
confusion. When namespaces and macros don't play well.

> MPICH chose to handle this situation a different way than we did, and
> apparently requires that you either #undef something or you #define an
> MPICH-specific macro. I guess the portable way might be to just always
> define that MPICH-specific macro. It should be harmless for OMPI.

I'll go with this, thanks.

> FWIW, I was chatting with the MPICH developers at the recent MPI Forum
> meeting and showed them how we did our SEEK_* solution in Open MPI.

Certainly the OMPI solution is better for users.


  • application/pgp-signature attachment: stored