<pre style='margin:0'>
Marcus Calhoun-Lopez (MarcusCalhoun-Lopez) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/20b350bb5eb864e9323f2f79324a2f7f977942d1">https://github.com/macports/macports-ports/commit/20b350bb5eb864e9323f2f79324a2f7f977942d1</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 20b350bb5eb864e9323f2f79324a2f7f977942d1
</span>Author: Marcus Calhoun-Lopez <mcalhoun@macports.org>
AuthorDate: Sun May 3 20:24:18 2020 -0700

<span style='display:block; white-space:pre;color:#404040;'>    compilers PG: add option for legacy Fortran code
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    GCC 10 is more strict about Fortran argument types.
</span><span style='display:block; white-space:pre;color:#404040;'>    This is likely to break a fair amount of code.
</span><span style='display:block; white-space:pre;color:#404040;'>    These errors can be reduced to warning until a fix is found.
</span><span style='display:block; white-space:pre;color:#404040;'>    See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91556
</span>---
 _resources/port1.0/group/compilers-1.0.tcl | 39 ++++++++++++++++++++++++++++++
 1 file changed, 39 insertions(+)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/_resources/port1.0/group/compilers-1.0.tcl b/_resources/port1.0/group/compilers-1.0.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index 0662359..7129f29 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/_resources/port1.0/group/compilers-1.0.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/_resources/port1.0/group/compilers-1.0.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -44,6 +44,10 @@
</span> #
 # Options:
 # compilers.clear_archflags: disable archflags ("-arch x86_64", -m64, etc.)
<span style='display:block; white-space:pre;background:#e0ffe0;'>+# compilers.allow_arguments_mismatch:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#   ensure Fortran code accepts "calls to external procedures with mismatches between the calls and the procedure definition"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#   the use of this option is "strongly discouraged" as the code should be made to be "standard-conforming"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#   see https://gcc.gnu.org/onlinedocs/gfortran/Fortran-Dialect-Options.html
</span> #
 # The compilers.gcc_default variable may be useful for setting a default compiler variant
 # even in ports that do not use this PortGroup's automatic creation of variants.
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -67,6 +71,9 @@ default compilers.variants_conflict {}
</span> default compilers.libfortran {}
 default compilers.clear_archflags no
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+options compilers.allow_arguments_mismatch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default compilers.allow_arguments_mismatch no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> # also set a default gcc version
 # should be the same as gcc_compilers.tcl
 if {${os.major} < 10} {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -676,3 +683,35 @@ pre-configure {
</span>     compilers.action_enforce_f ${compilers.required_f}
     compilers.action_enforce_some_f ${compilers.required_some_f}
 }
<span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+namespace eval compilers {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+proc compilers::add_fortran_legacy_support {} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    global compilers.allow_arguments_mismatch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           compilers.gcc_default
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {${compilers.allow_arguments_mismatch}} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {[fortran_variant_name] eq "gfortran"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set fortran_compiler    ${compilers.gcc_default}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set fortran_compiler    [fortran_variant_name]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {${fortran_compiler} eq "gcc10"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            configure.fflags-delete     -fallow-argument-mismatch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            configure.fcflags-delete    -fallow-argument-mismatch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            configure.f90flags-delete   -fallow-argument-mismatch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            configure.fflags-append     -fallow-argument-mismatch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            configure.fcflags-append    -fallow-argument-mismatch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            configure.f90flags-append   -fallow-argument-mismatch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+port::register_callback compilers::add_fortran_legacy_support
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+proc compilers::fortran_legacy_support_proc {option action args} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {$action ne  "set"} return
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    compilers::add_fortran_legacy_support
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+option_proc compilers.allow_arguments_mismatch compilers::fortran_legacy_support_proc
</span></pre><pre style='margin:0'>

</pre>