Fortran changes in GCC 10

Marcus Calhoun-Lopez mcalhoun at macports.org
Mon May 4 03:39:40 UTC 2020


By default, the about to be released GCC 10 is more strict about Fortran argument types [1].
Code that once only produced warnings now produce errors.
So far, I have run into this problem three times.
MPICH is aware of the issue but is unsure how they are going to proceed [2,3].
GetDP required a minor patch that has already be accepted upstream [4].
ScaLAPACK produced a deluge of error.
I submitted a bug report, but I have no desire to construct a patch [5].

As I recall from a summer working with legacy FORTRAN 77 code written by mathematicians, the priorities were roughly:
1. code produces output that looks good in a publication
2. code is fast
3. code produces correct results
4. …
42. code adheres to best programming practices

As such, I am sure that many Fortran based project will run into this issue.
Ideally, these kinds of things would be fixed upstream.
Until then, the workaround is to add `-fallow-argument-mismatch` to the gfortran compiler.
Unfortunately, the flag is not unrecognized by any GCC < 10 and hence produces an error.

We could design a separate PortGroup to address the problem, but it would have to be so tightly tied to the compilers PG that it made more sense to simply modify the compilers PG directly [6].
If anyone else runs into this problem and a patch is not feasible, `compilers.allow_arguments_mismatch yes` should hopefully fix the problem.

-Marcus

[1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91556
[2] https://lists.mpich.org/pipermail/discuss/2020-January/005862.html
[3] https://github.com/pmodels/mpich/issues/4300
[4] https://gitlab.onelab.info/getdp/getdp/-/issues/61
[5] https://github.com/Reference-ScaLAPACK/scalapack/issues/21
[6] https://github.com/macports/macports-ports/commit/20b350bb5eb864e9323f2f79324a2f7f977942d1


More information about the macports-dev mailing list