Awesome; thanks Gilles.
> On Feb 8, 2016, at 9:29 AM, Gilles Gouaillardet > <gilles.gouaillar...@gmail.com> wrote: > > ok, will do > > Cheers, > > Gilles > > On Monday, February 8, 2016, Jeff Squyres (jsquyres) <jsquy...@cisco.com> > wrote: > I like your suggestion better -- if we can somehow report during the > compile/link that the reason for the error is because Open MPI was not > compiled with Fortran support, that would definitely be preferable. > > FWIW: my suggestion was because I wanted to convey the *reason* for the error > (i.e., that OMPI has no Fortran support), and a pragma-based solution didn't > occur to me. I didn't want to follow Gilles' suggestion of just removing the > symbols, because that will lead to other confusion (e.g., "Hey, Open MPI is > not compliant because it doesn't have Fortran datatypes available in C!"). > > Gilles: do you want to poke around and see if you can make any of Jeff's > suggestions work out nicely? (i.e., give some kind of compile/link error > that states that Open MPI was not built with Fortran support?) > > > On Feb 8, 2016, at 8:55 AM, Jeff Hammond <jeff.scie...@gmail.com> wrote: > > > > Waiting until runtime to issue this error is a terrible idea, because then > > the PETSc team (among others) will disparage you for allowing a user to > > successfully build against an unusable library. They are on-record > > numerous times in the past as to the evils of e.g. no-op symbols in MPI or > > other runtime libraries, since this means that compile- and link-based > > tests pass, even though nothing good will happen when the user employs them > > in an application. > > > > The right thing to do is what Gilles proposed: do not define the types in > > mpi.h so that it is impossible to compile C code with Fortran datatypes, if > > Fortran datatypes are not supported. There are more and less effective > > ways to do this, in terms of letting the user know what is happening. For > > example, you can just not define them, which might confuse novices who > > don't know how to read error messages (HPC users are frequent offenders). > > > > You could use e.g.: > > > > #define MPI_DOUBLE_PRECISION choke me No Fortran support when library was > > compiled! > > > > Unfortunately, Clang colorized output emphasizes the wrong problem here, > > and ICC doesn't even echo the message at all in its error message. GCC > > issues the same error four times, and makes it relatively hard to miss the > > message. > > > > If the following GCC extension is supported, along with C99/C++11, you > > could do this: > > > > #define MPI_DOUBLE_PRECISION _Pragma("GCC error \"MPI was not compiled with > > Fortran support\"") > > > > For the _functions_ that require Fortran support, you can use e.g. > > __attribute__((error("no Fortran"))) on the function declaration, although > > neither ICC nor Clang support this, and it ends up throwing two error > > messages when compiled (only one - the right one - when only preprocessed), > > which might confuse the same folks that it is trying to help. > > > > Best, > > > > Jeff > > > > On Mon, Feb 8, 2016 at 5:14 AM, Jeff Squyres (jsquyres) > > <jsquy...@cisco.com> wrote: > > The issue at hand is trying to help the user figure out that they have an > > open MPI built without fortran support. > > > > Perhaps we should improve the error reporting at run time to display > > something about the fact that you used a fortran data type but have an OMPI > > that was compiled without fortran support. > > > > Sent from my phone. No type good. > > > > On Feb 8, 2016, at 4:00 AM, Gilles Gouaillardet > > <gilles.gouaillar...@gmail.com> wrote: > > > >> That being said, should we remove these fortran types from include files > >> and libs when ompi is configure'd without fortran support ? > >> > >> Cheers, > >> > >> Gilles > >> > >> Jeff Hammond <jeff.scie...@gmail.com> wrote: > >> > >> > BTW: is there a reason you don't want to just use the C datatypes? The > >> > fundamental output of the index is an integer value -- casting it to a > >> > float of some flavor doesn't fundamentally change its value. > >> > >> The code in question is not mine. I have suggested to the developers that > >> they should use the correct C types. The reason I became aware of this > >> issue is that one of my colleagues compiled and ran this code on a system > >> where OpenMPI was built without Fortran support and the code started > >> failing with errors from MPI which were not seen on other systems. > >> > >> > >> If you use an MPI library compiled without Fortran support, you should > >> expect precisely nothing related to Fortran to work. You might get more > >> than this because the universe is being nice to you, but you should treat > >> it as serendipity when something works, not a bug when something doesn't. > >> > >> Jeff > >> > >> > >> -- > >> Jeff Hammond > >> jeff.scie...@gmail.com > >> http://jeffhammond.github.io/ > >> _______________________________________________ > >> users mailing list > >> us...@open-mpi.org > >> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/users > >> Link to this post: > >> http://www.open-mpi.org/community/lists/users/2016/02/28459.php > > > > _______________________________________________ > > users mailing list > > us...@open-mpi.org > > Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/users > > Link to this post: > > http://www.open-mpi.org/community/lists/users/2016/02/28460.php > > > > > > > > -- > > Jeff Hammond > > jeff.scie...@gmail.com > > http://jeffhammond.github.io/ > > _______________________________________________ > > users mailing list > > us...@open-mpi.org > > Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/users > > Link to this post: > > http://www.open-mpi.org/community/lists/users/2016/02/28461.php > > > -- > Jeff Squyres > jsquy...@cisco.com > For corporate legal information go to: > http://www.cisco.com/web/about/doing_business/legal/cri/ > > _______________________________________________ > users mailing list > us...@open-mpi.org > Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/users > Link to this post: > http://www.open-mpi.org/community/lists/users/2016/02/28463.php > _______________________________________________ > users mailing list > us...@open-mpi.org > Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/users > Link to this post: > http://www.open-mpi.org/community/lists/users/2016/02/28465.php -- Jeff Squyres jsquy...@cisco.com For corporate legal information go to: http://www.cisco.com/web/about/doing_business/legal/cri/