<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>