[mpich-devel] overzealous F90/F90FLAGS error

Jeff Hammond jeff.science at gmail.com
Tue Jan 13 11:11:55 CST 2015


On Tue, Jan 13, 2015 at 9:03 AM, Dave Goodell (dgoodell)
<dgoodell at cisco.com> wrote:
> On Jan 13, 2015, at 10:53 AM, Jeff Hammond <jeff.science at gmail.com> wrote:
>
>> On Tue, Jan 13, 2015 at 8:50 AM, Dave Goodell (dgoodell)
>> <dgoodell at cisco.com> wrote:
>>>
>>> Rather than remove this code altogether, it might be better to change the logic to complain more like this (untested):
>>>
>>> if test -n "$F90" && test "x$F90" != "x$FC" ; then
>>>    AC_MSG_ERROR([F90 set but not equal to FC.  This is almost certainly a mistake.  Either unset F90 or set F90="$FC"])
>>> elif test -n "$F90FLAGS" && test "x$F90FLAGS" != "x$FCFLAGS" ; then
>>>    AC_MSG_ERROR([F90FLAGS set but not equal to FCFLAGS.  This is almost certainly a mistake.  Either unset F90FLAGS or set F90FLAGS="$FCFLAGS"])
>>
>> Except there are systems where FC=xlf2008_r F90=xlf90_r F77=xlf77_r is
>> the right thing to do.  Thankfully, I no longer have to deal with such
>> system, so I bring this up as an academic point.
>
> I don't feel strongly about this, since I don't have to do much support of situations where users would make an F90/FC mistake.  But lots of past users of MPICH (from before the switch to using FC instead of F90) are likely to have scripts/documentation that uses F90 and is oblivious to the fact that it will be ignored.  So those users will have a pretty bad experience when their MPI installation uses a different Fortran compiler than they were expecting.  A plain warning from configure probably isn't enough for them to realize they made a mistake.

Yeah, this is real problem.  My solution would be to use F90 as FC if
and only if F90 is defined to be a non-MPI compiler while FC is not
defined at all.

I agree that the warning will quickly disappear in the stream of
output and will not be effective.

> Also, as far as I recall, FC!=F90 is completely at odds with the current MPICH (and OMPI) build system(s).  I don't know whether those systems are correct or not, but it's how they are deliberately designed and implemented.

True, but since MPICH doesn't reference F90 at any point, it should be
perfectly valid for a user to set FC=ifort and F90="mpifort".

> I've now used up all of my "care about what happens to Fortran" points for the month, so it's back to lurking for me...

But there are 17 days left in January!!! :-)

Jeff

-- 
Jeff Hammond
jeff.science at gmail.com
http://jeffhammond.github.io/


More information about the devel mailing list