<pre style='margin:0'>
Christopher Nielsen (mascguy) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/853f6645e607df0420bbda32af4da22ffeb34867">https://github.com/macports/macports-ports/commit/853f6645e607df0420bbda32af4da22ffeb34867</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'>     new 853f6645e60 openmpi/mpich: prune target compiler list
</span>853f6645e60 is described below

<span style='display:block; white-space:pre;color:#808000;'>commit 853f6645e607df0420bbda32af4da22ffeb34867
</span>Author: Christopher Nielsen <mascguy@github.com>
AuthorDate: Tue May 18 13:22:00 2021 -0400

<span style='display:block; white-space:pre;color:#404040;'>    openmpi/mpich: prune target compiler list
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    See: https://trac.macports.org/ticket/62807
</span>---
 _resources/port1.0/group/mpi-1.0.tcl     |  50 +++----
 _resources/port1.0/group/mpiutil-1.0.tcl |  15 ++
 science/mpich/Portfile                   | 241 +++++++++++++++----------------
 science/openmpi/Portfile                 | 207 ++++++++++++--------------
 4 files changed, 247 insertions(+), 266 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/_resources/port1.0/group/mpi-1.0.tcl b/_resources/port1.0/group/mpi-1.0.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index abd7631e7c3..9e63e6187b4 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/_resources/port1.0/group/mpi-1.0.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/_resources/port1.0/group/mpi-1.0.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -50,15 +50,10 @@ set mpidb(openmpi,descrip)  "OpenMPI"
</span> set mpidb(openmpi,name)     openmpi
 set mpidb(openmpi,conflict) ""
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# NOTE: Uncomment these if/when we re-enable openmpi-devel-* subports
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#set mpidb(openmpi_devel,variant)  openmpi_devel
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#set mpidb(openmpi_devel,descrip)  "OpenMPI-devel"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#set mpidb(openmpi_devel,name)     openmpi-devel
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#set mpidb(openmpi_devel,conflict) ""
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> foreach mpiname [array names mpidb *,variant] {
     lappend mpi.variants $mpidb($mpiname)
 }
<span style='display:block; white-space:pre;background:#e0ffe0;'>+unset mpiname
</span> 
 proc mpi.get_default_mpi_compiler {} {
     # No MPI variant has been selected.
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -305,42 +300,35 @@ proc mpi.setup {args} {
</span>     set disabled [list]
     if {$cur_variant ne ""} {
         set is_mpich [expr {$cur_variant in {mpich}}]
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        lappend disabled -gcc44 -gcc45 -gcc46 -gcc47 -gcc48
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        # gcc   4.x     not supported on macOS 10.12 (Darwin16) or newer
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        # clang 3.{3,4} not supported on macOS 10.12 (Darwin16) or newer
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        if {${os.major} >= 16} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            lappend disabled -gcc49
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        if {${os.major} >= 16 || $is_mpich} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            lappend disabled -clang33 -clang34
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        # clang 3.7,4.0 not supported on macOS 10.14 (Darwin18) or newer
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        if {${os.major} >= 18 || $is_mpich} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            lappend disabled -clang37
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        lappend disabled \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            -gcc44 -gcc45 -gcc46 -gcc47 -gcc48
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # All of the following are now obsolete for openmpi/mpich
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        lappend disabled \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            -clang33 -clang34 -clang37 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            -clang50 -clang60 -clang70 -clang80 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            -clangdevel \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            -gcc49 -gcc5 -gcc6 -gcc8 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            -gccdevel
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span>         # gcc 9+ only available on OS X 10.7 (Darwin11) and newer
         # However, gcc9+ subports fail to build on 10.7, for both openmpi and mpich.
         # So only enable for 10.8+.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        if {${os.major} <= 11} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {${os.major} < 12} {
</span>             lappend disabled -gcc9 -gcc10 -gcc11
         } elseif {$is_mpich} {
             # mpich: gcc11 subport currently disabled across-the-board
             lappend disabled -gcc11
         }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        if {${os.major} <= 10 || !$is_mpich} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            lappend disabled -gccdevel
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        # this should probably be changed in mpich but we have to match it
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        if {${os.major} <= 10 && $is_mpich} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            lappend disabled -clang60 -clang70 -clang80 -clang90 -clang10 -clang11
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        }
</span>         # Disable compilers not well supported on arm
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        # Note clang 9.0 and 10 might build on arm but are not reliable so skip, use clang 11 instead
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # Note clang 9 and 10 might build on arm but are not reliable so skip;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # use clang 11 instead.
</span>         if {${os.arch} eq "arm"} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            lappend disabled -gcc5 -gcc6 -gcc7 -gcc8 -gcc9
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            lappend disabled -clang60 -clang70 -clang80 -clang90 -clang10
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            lappend disabled \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                -gcc7 -gcc9 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                -clang90 -clang10
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        } elseif {${os.major} < 11 && $is_mpich} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            lappend disabled -clang90 -clang10 -clang11
</span>         }
     }
 
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/_resources/port1.0/group/mpiutil-1.0.tcl b/_resources/port1.0/group/mpiutil-1.0.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index 3a3d70d0f59..f2896179cf1 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/_resources/port1.0/group/mpiutil-1.0.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/_resources/port1.0/group/mpiutil-1.0.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -4,6 +4,21 @@
</span> # This PortGroup provides shared logic, and helpers, for our MPI ports.
 #==============================================================================
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+proc mpiutil_add_subport {name subport key} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    subport ${name}-${key} {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # TODO: Remove all traces of -devel on or after Janurary 2022
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    subport ${name}-devel-${key} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        PortGroup       obsolete 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        known_fail      yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        distfiles
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        pre-fetch {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            error "${subport} is currently broken"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        replaced_by ${name}-${key}
</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> proc mpiutil_add_compiler_depends_lib {cname} {
     set cport_name ""
 
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/science/mpich/Portfile b/science/mpich/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 8f42680523c..2f6ae316ea5 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/science/mpich/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/science/mpich/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -60,13 +60,6 @@ livecheck.type      regex
</span> livecheck.regex     {href=.([0-9.p]+)/}
 livecheck.url       ${homepage}/static/downloads/
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-if {[string first "-devel" $subport] > 0} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # Delete all traces of -devel Janurary 2022
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    PortGroup       obsolete 1.0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    replaced_by     [regsub -- "-devel" $subport ""]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> # As MPICH creates compiler wrappers, there are lots of
 # variants for what compiler the user would like to wrap.
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -75,109 +68,119 @@ if {[string first "-devel" $subport] > 0} {
</span> # Sub-ports names and corresponding configure.compiler value
 array set clist {
     clang   {clang}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    clang50 {macports-clang-5.0}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    gcc5    {macports-gcc-5}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    gcc6    {macports-gcc-6}
</span>     gcc7    {macports-gcc-7}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    gcc8    {macports-gcc-8}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set clist_unsupported [list]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set clist_obsolete [list]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# TODO: Remove these obsolete subports on or after January 2022, along with all
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# traces of -devel. For the latter, also remember to update proc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# 'mpiutil_add_subport', in portgroup 'mpiutil'.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+lappend clist_obsolete \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    clang50 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    clang60 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    clang70 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    clang80 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    gcc49 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    gcc5 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    gcc6 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    gcc8 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    gccdevel
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# mpich only compiles with clang90+ on MacOS 10.7 and later
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if { ${os.major} >= 11 } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set clist(clang90) {macports-clang-9.0}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set clist(clang10) {macports-clang-10}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set clist(clang11) {macports-clang-11}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+} else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    lappend clist_unsupported \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        clang90 clang10 clang11
</span> }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# gcc 4.x not supported on mac OS 10.12 (Darwin16) or newer
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# Only provide gcc 4.9, as older versions do not build.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set clist(gcc49)     {macports-gcc-4.9}
</span> # gcc 9+ only available on macOS10.7 (Darwin11) and newer
 # However, gcc9+ builds fail on MacOS 10.7, so only enable for MacOS 10.8+.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-set clist(gcc9)      {macports-gcc-9}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set clist(gcc10)     {macports-gcc-10}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# Disable gcc11 for now, as builds fail across-the-board
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#set clist(gcc11)     {macports-gcc-11}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set clist(gccdevel)  {macports-gcc-devel}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# clang 6+ only available on macOS10.9 (Darwin13) and newer
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set clist(clang60)   {macports-clang-6.0}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set clist(clang70)   {macports-clang-7.0}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set clist(clang80)   {macports-clang-8.0}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set clist(clang90)   {macports-clang-9.0}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set clist(clang10)   {macports-clang-10}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set clist(clang11)   {macports-clang-11}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-foreach key [array name clist] {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    subport ${name}-${key} {}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    subport ${name}-devel-${key} {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if { ${os.arch} eq "arm" } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set clist(gcc11)   {macports-gcc-11}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    lappend clist_unsupported \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        gcc10 gcc11
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+} elseif { ${os.major} >= 12 } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set clist(gcc9)    {macports-gcc-9}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set clist(gcc10)   {macports-gcc-10}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set clist(gcc11)   {macports-gcc-11}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+} else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    lappend clist_unsupported \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        gcc9 gcc10 gcc11
</span> }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-subport ${name}-default {}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-subport ${name}-devel {}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-subport ${name}-devel-default {}
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-if {${name} ne ${subport} && [string first "-devel" $subport] < 0} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    set key                  [lindex [split ${subport} -] end]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    if {${key} eq "default"} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        # make every attempt to avoid MacPorts compilers
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        if {${os.major} == 10} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            configure.cxx_stdlib libstdc++
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        set compiler         "default"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        set compiler_version [compiler.command_line_tools_version ${configure.compiler}]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        set compiler         [lindex [split $clist($key) -] 1]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        set compiler_version [lindex [split $clist($key) -] 2]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+foreach key [array names clist] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    mpiutil_add_subport \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ${name} ${subport} ${key}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+foreach key ${clist_unsupported} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    mpiutil_add_subport \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ${name} ${subport} ${key}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+foreach key ${clist_obsolete} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    mpiutil_add_subport \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ${name} ${subport} ${key}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+unset key
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+mpiutil_add_subport \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    ${name} ${subport} "default"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set subport_enabled no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set cname           [lindex [split ${subport} -] end]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {${cname} in ${clist_unsupported}} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    known_fail  yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    pre-fetch {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        error "${subport} is not supported on ${os.platform} ${os.major}"
</span>     }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    set fail no
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    if {${compiler} eq "gcc"} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        if { ${os.major} >= 16 && [vercmp ${compiler_version} 5] < 0 } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            # gcc 4.x not supported on mac OS 10.12 (Darwin16) or newer
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            set fail yes
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        if { ${os.major} < 12 && [vercmp ${compiler_version} 9] >= 0 } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            set fail yes
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        if { ${os.major} < 10 && [vercmp ${compiler_version} 8] >= 0 } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            set fail yes
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        if { ${os.major} < 11 && ${compiler_version} eq "devel" } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            set fail yes
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        if { ${os.major} > 19 && [vercmp ${compiler_version} 8] < 0 } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            set fail yes
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        # Assume gcc11+ will support arm. To be seen.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        if { ${configure.build_arch} eq "arm64" && [vercmp ${compiler_version} 11] < 0 } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            set fail yes
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    append long_description " Note: ${cname} not supported on ${os.platform} ${os.major}."
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+} elseif {${cname} in ${clist_obsolete}} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    PortGroup   obsolete 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    known_fail  yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    pre-fetch {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        error "${subport} is obsolete"
</span>     }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    if {${compiler} eq "clang"} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        if { ${os.major} < 10 && [vercmp ${compiler_version} 8] >= 0 } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            set fail yes
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        if { ${os.major} <  9 && [vercmp ${compiler_version} 5] >= 0 } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            set fail yes
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        if { ${os.major} < 11 && [vercmp ${compiler_version} 6] >= 0 } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            set fail yes
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        if { ${os.major} > 19 && [vercmp ${compiler_version} 9]  < 0 } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            set fail yes
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        if { ${configure.build_arch} eq "arm64" && [vercmp ${compiler_version} 11] < 0 } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            set fail yes
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {[string match "clang*" ${cname}]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        replaced_by ${name}-clang90
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        replaced_by ${name}-gcc7
</span>     }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    if {${compiler} eq "default" && ${configure.compiler} eq "clang"} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        if {[vercmp 421.11.66 ${compiler_version}] <= 0 && [vercmp ${compiler_version} 425.0.24] < 0} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            # Linker for Apple clang version 421.11.66 segfaults
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            # See https://trac.macports.org/ticket/36654#comment:9
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            set fail yes
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    append long_description " Note: ${subport} is obsolete."
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+} elseif {(${subport} ne ${name}) && (${subport} ne "${name}-devel")} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {${cname} eq "default"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set cname "mp"
</span>     }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    if {${fail}} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        known_fail yes
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        pre-fetch {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            ui_error "${subport} fails on OS ${os.major} with compiler ${compiler}, version ${compiler_version}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            return -code error "incompatible macOS version"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set subport_enabled yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {${cname} eq "mp"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # make every attempt to avoid MacPorts compilers
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {${os.major} == 10} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            configure.cxx_stdlib libstdc++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {${configure.compiler} eq "clang"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set compiler_version [compiler.command_line_tools_version ${configure.compiler}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            if {[vercmp 421.11.66 ${compiler_version}] <= 0 && [vercmp ${compiler_version} 425.0.24] < 0} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                # Linker for Apple clang version 421.11.66 segfaults
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                # See https://trac.macports.org/ticket/36654#comment:9
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                known_fail yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                pre-fetch {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    ui_error "${subport} fails on OS ${os.major} with compiler ${compiler}, version ${compiler_version}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    return -code error "incompatible macOS version"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                set subport_enabled no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            }
</span>         }
     }
 }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-configure.args      --disable-dependency-tracking    \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {${subport_enabled}} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.args  --disable-dependency-tracking    \
</span>                     --disable-fortran                \
                     --disable-silent-rules           \
                     --enable-base-cache              \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -191,38 +194,29 @@ configure.args      --disable-dependency-tracking    \
</span>                     --with-hwloc-prefix=${prefix}    \
                     "F90FLAGS='' F90=''"
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-variant threads description {Build with full thread support} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-append   --enable-threads=multiple
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-platform darwin {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-append   --enable-timer-type=mach_absolute_time
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    if {${os.major} < 12} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        # MPICH requires OpenCL version 1.2, which was not introduced until OS X Mountain Lion
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        configure.args-append --enable-opencl=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    variant threads description {Build with full thread support} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.args-append   --enable-threads=multiple
</span>     }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    if {${name} ne ${subport}} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        patchfiles-append       patch-no_qmkshrobj.diff \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                                patch-ch4-ipv6.diff
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    platform darwin {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.args-append   --enable-timer-type=mach_absolute_time
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# We're making compiler wrappers here... don't default to -O2 for wrappers.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# Actual library code is compiled with -O2 via --enable-fast=O2 configure arg
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-configure.optflags-delete   -O2 -Os
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-configure.cppflags-delete   -I${prefix}/include
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-configure.ldflags-delete    -L${prefix}/lib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {${os.major} < 12} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            # MPICH requires OpenCL version 1.2, which was not introduced until OS X Mountain Lion
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            configure.args-append --enable-opencl=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-if {${name} ne ${subport} && [string first "-devel" $subport] < 0} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    set cname                   [lindex [split ${subport} -] end]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    if {${cname} == "default"} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        set cname                   mp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {${name} ne ${subport}} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            patchfiles-append   patch-no_qmkshrobj.diff \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                patch-ch4-ipv6.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span>     }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    set all_name [split ${subport} -]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    conflicts-append mpich-devel-[join [lrange ${all_name} 1 end] -]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # We're making compiler wrappers here... don't default to -O2 for wrappers.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # Actual library code is compiled with -O2 via --enable-fast=O2 configure arg
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.optflags-delete   -O2 -Os
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.cppflags-delete   -I${prefix}/include
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.ldflags-delete    -L${prefix}/lib
</span> 
     # As we are making wrappers, we depend on the compilers to exist.
     # Add them to depends_lib, not just depends_build.
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -248,10 +242,11 @@ if {${name} ne ${subport} && [string first "-devel" $subport] < 0} {
</span> 
     if {[string first "-default" $subport] < 0} {
         configure.compiler      [lindex $clist($cname) 0]
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        append long_description "\\n\\nTHIS SUBPORT WRAPS ${cname}'s C/C++"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        append long_description \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            "\\n\\nTHIS SUBPORT WRAPS ${cname}'s C/C++"
</span>     } else {
         append long_description \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-"\\n\\nTHIS SUBPORT WRAPS MACPORTS' DEFAULT COMPILER FOR C/C++"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            "\\n\\nTHIS SUBPORT WRAPS MACPORTS' DEFAULT COMPILER FOR C/C++"
</span>     }
 
     configure.args-append   \
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/science/openmpi/Portfile b/science/openmpi/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 6cf4f1dbf7e..2ee33f80320 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/science/openmpi/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/science/openmpi/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -54,42 +54,6 @@ livecheck.type      regex
</span> livecheck.url       https://www.open-mpi.org/
 livecheck.regex     Open MPI v(\[0-9\.\]+) released
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# Note: While openmpi-devel-* subports have been disabled for now, please
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# don't strip out devel-related logic like this. We may decide to re-add
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# them in the future, and it'll be easier if we don't have to dig through
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# git history.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-if {[string first "-devel" $subport] > 0} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    PortGroup           obsolete 1.0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # FIXME: this snapshot date is for 4.0.x not 4.1.x
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    set base            201905080241
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    set tag             5d4c9b4
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # failing for now due to above old/incorrect snapshot
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    known_fail          yes
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    distfiles
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    pre-fetch {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        error "$subport is currently broken"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    dist_subdir         openmpi-devel
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    version             ${branch}.999-${base}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    revision            2
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    distname            openmpi-v${branch}.x-${base}-${tag}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    master_sites        https://www.open-mpi.org/nightly/v${branch}.x
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    checksums           rmd160  65d03a8e8cb897ffb288eca36f4e2419cc119c81 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        sha256  d90dce8cadf9344b989e8b44ceadd3e8f878effc99c8a800f4ab250a071233b1 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        size    9890558
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    livecheck.version   ${base}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    livecheck.url       [lindex ${master_sites} 0]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    livecheck.regex     nightly/open-mpi/v${branch}.x/openmpi-v${branch}.x-(\[0-9\]+-\[0-9a-f\]+)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> # As OpenMPI creates compiler wrappers, there are lots of
 # variants for what compiler the user would like to wrap.
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -98,38 +62,36 @@ if {[string first "-devel" $subport] > 0} {
</span> # Sub-ports names and corresponding configure.compiler value
 array set clist {
     clang   {clang}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    clang50 {macports-clang-5.0}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    clang60 {macports-clang-6.0}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    clang70 {macports-clang-7.0}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    clang80 {macports-clang-8.0}
</span>     clang90 {macports-clang-9.0}
     clang10 {macports-clang-10}
     clang11 {macports-clang-11}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    gcc5    {macports-gcc-5}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    gcc6    {macports-gcc-6}
</span>     gcc7    {macports-gcc-7}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    gcc8    {macports-gcc-8}
</span> }
 set clist_unsupported [list]
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# gcc   4.x     not supported on mac OS 10.12 (Darwin16) or newer
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# clang 3.{3,4} not supported on mac OS 10.12 (Darwin16) or newer
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-if { ${os.major} < 16 } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    set clist(clang33) {macports-clang-3.3}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    set clist(clang34) {macports-clang-3.4}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # Only provide gcc 4.9, as older versions do not build.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    set clist(gcc49)   {macports-gcc-4.9}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-} else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    lappend clist_unsupported clang33 clang34 gcc49
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# clang 3.7,4.0 not supported on mac OS 10.14 (Darwin18) or newer
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-if { ${os.major} < 18 } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    set clist(clang37) {macports-clang-3.7}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-} else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    lappend clist_unsupported clang37
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set clist_obsolete [list]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# TODO: Remove these obsolete subports on or after January 2022, along with all
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# traces of -devel. For the latter, also remember to update proc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# 'mpiutil_add_subport', in portgroup 'mpiutil'.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+lappend clist_obsolete \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    clang33 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    clang34 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    clang37 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    clang50 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    clang60 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    clang70 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    clang80 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    gcc49 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    gcc5 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    gcc6 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    gcc8
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> # gcc 9+ only available on macOS10.7 (Darwin11) and newer
 # However, gcc9+ builds fail on MacOS 10.7, so only enable for MacOS 10.8+.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-if { ${os.major} > 11 } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if { ${os.arch} eq "arm" } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set clist(gcc11)   {macports-gcc-11}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    lappend clist_unsupported gcc10 gcc11
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+} elseif { ${os.major} >= 12 } {
</span>     set clist(gcc9)    {macports-gcc-9}
     set clist(gcc10)   {macports-gcc-10}
     set clist(gcc11)   {macports-gcc-11}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -138,58 +100,22 @@ if { ${os.major} > 11 } {
</span> }
 
 foreach key [array names clist] {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    subport ${name}-${key} {}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    subport ${name}-devel-${key} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        replaced_by ${name}-${key}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    mpiutil_add_subport \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ${name} ${subport} ${key}
</span> }
 foreach key ${clist_unsupported} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    subport ${name}-${key} {}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    subport ${name}-devel-${key} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        replaced_by ${name}-${key}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-subport ${name}-default {}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-subport ${name}-devel {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    replaced_by ${name}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    mpiutil_add_subport \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ${name} ${subport} ${key}
</span> }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-subport ${name}-devel-default {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    replaced_by ${name}-default
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+foreach key ${clist_obsolete} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    mpiutil_add_subport \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ${name} ${subport} ${key}
</span> }
<span style='display:block; white-space:pre;background:#e0ffe0;'>+unset key
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+mpiutil_add_subport \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    ${name} ${subport} "default"
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-pre-extract { file mkdir ${workpath}/build }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# https://trac.macports.org/ticket/39089
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-compiler.blacklist  gcc-4.0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-compiler.blacklist-append  llvm-gcc-4.2 macports-llvm-gcc-4.2
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# For reasons that are not entirely clear, -I${worksrcpath} is added to the CPPFLAGS by the configure script.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# In ${worksrcpath}, there is a file called VERSION.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# C++ has a standard library header version (https://en.cppreference.com/w/cpp/header/version).
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# Starting with Clang 8.0, version was included in other standard header files (https://reviews.llvm.org/D51955).
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# With a case-insensitive file system, VERSION is used instead of version.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# This is an ugly workaround.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-patchfiles-append   patch-configure.diff
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-configure.dir       ${workpath}/build
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-configure.cmd       ${worksrcpath}/configure
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-configure.args      --disable-mpi-fortran \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    --enable-mpi-cxx \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    "FFLAGS='' F77=''"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# remove -arch from ldflags, ticket #22833
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-configure.ld_archflags
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-configure.ccache no
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# We're making compiler wrappers here... don't default to -O2 for wrappers.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# Actual library code is compiled with -O2 via --enable-fast=O2 configure arg
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-configure.optflags-delete   -O2 -Os
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-configure.cppflags-delete   -I${prefix}/include
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-configure.ldflags-delete    -L${prefix}/lib
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-build.dir           ${configure.dir}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-destroot.dir        ${build.dir}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set subport_enabled no
</span> set cname           [lindex [split ${subport} -] end]
 if {${cname} in ${clist_unsupported}} {
     known_fail  yes
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -197,11 +123,67 @@ if {${cname} in ${clist_unsupported}} {
</span>         error "${subport} is not supported on ${os.platform} ${os.major}"
     }
     append long_description " Note: ${cname} not supported on ${os.platform} ${os.major}."
<span style='display:block; white-space:pre;background:#ffe0e0;'>-} elseif {${subport} ne ${name} && ${subport} ne "${name}-devel"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+} elseif {${cname} in ${clist_obsolete}} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    PortGroup   obsolete 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    known_fail  yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    pre-fetch {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        error "${subport} is obsolete"
</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;'>+    if {[string match "clang*" ${cname}]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        replaced_by ${name}-clang90
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        replaced_by ${name}-gcc7
</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;'>+    append long_description " Note: ${subport} is obsolete."
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+} elseif {(${subport} ne ${name}) && (${subport} ne "${name}-devel")} {
</span>     if {${cname} == "default"} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        set cname                   mp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set cname "mp"
</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;'>+    set subport_enabled yes
</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;'>+if {${subport_enabled}} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    pre-extract {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        file mkdir ${workpath}/build
</span>     }
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    # https://trac.macports.org/ticket/39089
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    compiler.blacklist-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        gcc-4.0 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        llvm-gcc-4.2 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        macports-llvm-gcc-4.2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # For reasons that are not entirely clear, -I${worksrcpath} is added to the CPPFLAGS by the configure script.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # In ${worksrcpath}, there is a file called VERSION.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # C++ has a standard library header version (https://en.cppreference.com/w/cpp/header/version).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # Starting with Clang 8.0, version was included in other standard header files (https://reviews.llvm.org/D51955).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # With a case-insensitive file system, VERSION is used instead of version.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # This is an ugly workaround.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    patchfiles-append   patch-configure.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.dir       ${workpath}/build
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.cmd       ${worksrcpath}/configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.args      --disable-mpi-fortran \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        --enable-mpi-cxx \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        "FFLAGS='' F77=''"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # remove -arch from ldflags, ticket #22833
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.ld_archflags
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.ccache no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # We're making compiler wrappers here... don't default to -O2 for wrappers.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # Actual library code is compiled with -O2 via --enable-fast=O2 configure arg
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.optflags-delete   -O2 -Os
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.cppflags-delete   -I${prefix}/include
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.ldflags-delete    -L${prefix}/lib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    build.dir           ${configure.dir}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    destroot.dir        ${build.dir}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span>     # As we are making wrappers, we depend on the compilers to exist.
     # Add them to depends_lib, not just depends_build.
     mpiutil_add_compiler_depends_lib ${cname}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -218,12 +200,13 @@ if {${cname} in ${clist_unsupported}} {
</span>     select.file                 ${filespath}/${name}-${cname}
     livecheck.type              none
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    if {[string first "-default" $subport] < 0} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {${cname} ne "mp"} {
</span>         configure.compiler      [lindex $clist($cname) 0]
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        append long_description "\\n\\nTHIS SUBPORT WRAPS ${cname}'s C/C++"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        append long_description \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            "\\n\\nTHIS SUBPORT WRAPS ${cname}'s C/C++"
</span>     } else {
         append long_description \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-"\\n\\nTHIS SUBPORT WRAPS MACPORTS' DEFAULT COMPILER FOR C/C++"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            "\\n\\nTHIS SUBPORT WRAPS MACPORTS' DEFAULT COMPILER FOR C/C++"
</span>     }
 
     configure.args-append   \
</pre><pre style='margin:0'>

</pre>