<pre style='margin:0'>
Chris Jones (cjones051073) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/37619a17caf48f80aafda18e5c46a6dcf68c9e32">https://github.com/macports/macports-ports/commit/37619a17caf48f80aafda18e5c46a6dcf68c9e32</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 37619a1  Updates to the various gcc<X> and libgcc<X> ports to update gcc8 to 8.2 stable release and to add new gcc9 port based on a current beta snapshot. libgcc-devel consequently updated to now be based of the same gcc9 snapshsot.
</span>37619a1 is described below

<span style='display:block; white-space:pre;color:#808000;'>commit 37619a17caf48f80aafda18e5c46a6dcf68c9e32
</span>Author: Chris Jones <jonesc@macports.org>
AuthorDate: Sat Jul 28 11:06:16 2018 +0100

<span style='display:block; white-space:pre;color:#404040;'>    Updates to the various gcc<X> and libgcc<X> ports to update gcc8 to 8.2 stable release
</span><span style='display:block; white-space:pre;color:#404040;'>    and to add new gcc9 port based on a current beta snapshot. libgcc-devel consequently
</span><span style='display:block; white-space:pre;color:#404040;'>    updated to now be based of the same gcc9 snapshsot.
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    libgcc:       Updated to be a standalone port, that picks the correct gcc primary runtime.
</span><span style='display:block; white-space:pre;color:#404040;'>    gcc8:         Update to gcc 8.2.0
</span><span style='display:block; white-space:pre;color:#404040;'>    libgcc8:      New port providing gcc 8.2.0 runtime
</span><span style='display:block; white-space:pre;color:#404040;'>    libgcc7:      New port based gcc 7.3.0. Contains older API library versions updated in libgcc.
</span><span style='display:block; white-space:pre;color:#404040;'>    gcc7:         Update to depend on libgcc7.
</span><span style='display:block; white-space:pre;color:#404040;'>    libgcc-devel: Update to gcc snapshot 9-20180722.
</span><span style='display:block; white-space:pre;color:#404040;'>    gcc9:         New port based on gcc snapshot 9-20180722.
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    compilers-1.0.tcl : Updated to adapt to the new libgcc runtims as above
</span><span style='display:block; white-space:pre;color:#404040;'>    languages-1.0.tcl   and to add gcc8 as a compiler option.
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Closes: https://trac.macports.org/ticket/56521
</span>---
 _resources/port1.0/group/compilers-1.0.tcl        |   8 +-
 _resources/port1.0/group/languages-1.0.tcl        |   6 +-
 lang/gcc6/Portfile                                |  11 +-
 lang/gcc7/Portfile                                | 116 ++++++++++------
 lang/gcc8/Portfile                                | 158 +++++++++++++---------
 lang/gcc8/files/notparallel-install-headers.patch |  13 --
 lang/gcc8/files/pr81033-v2.diff                   |  51 +++++++
 lang/{gcc8 => gcc9}/Portfile                      | 113 +++++++++-------
 lang/gcc9/files/mp-gcc9                           |   7 +
 lang/gcc9/files/pr81033-v2.diff                   |  51 +++++++
 lang/libgcc/Portfile                              |  50 +++++++
 11 files changed, 402 insertions(+), 182 deletions(-)

<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 061f51b..fb262f8 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;'>@@ -78,7 +78,7 @@ if {${build_arch} eq "ppc" || ${build_arch} eq "ppc64"} {
</span> set compilers.list {cc cxx cpp objc fc f77 f90}
 
 # build database of gcc compiler attributes
<span style='display:block; white-space:pre;background:#ffe0e0;'>-set gcc_versions {44 45 46 47 48 49 5 6 7}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set gcc_versions {44 45 46 47 48 49 5 6 7 8}
</span> foreach v ${gcc_versions} {
     # if the string is more than one character insert a '.' into it: e.g 49 -> 4.9
     set version $v
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -91,9 +91,11 @@ foreach v ${gcc_versions} {
</span>     set cdb(gcc$v,descrip)  "MacPorts gcc $version"
     set cdb(gcc$v,depends)  port:gcc$v
     if {[vercmp ${version} 4.6] < 0} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        set cdb(gcc$v,dependsl) "path:lib/libgcc/libgcc_s.1.dylib:libgcc port:libgcc6 port:libgcc45"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set cdb(gcc$v,dependsl) "path:lib/libgcc/libgcc_s.1.dylib:libgcc port:libgcc7 port:libgcc6 port:libgcc45"
</span>     } elseif {[vercmp ${version} 7] < 0} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        set cdb(gcc$v,dependsl) "path:lib/libgcc/libgcc_s.1.dylib:libgcc port:libgcc6"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set cdb(gcc$v,dependsl) "path:lib/libgcc/libgcc_s.1.dylib:libgcc port:libgcc7 port:libgcc6"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    } elseif {[vercmp ${version} 8] < 0} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set cdb(gcc$v,dependsl) "path:lib/libgcc/libgcc_s.1.dylib:libgcc port:libgcc7"
</span>     } else {
         set cdb(gcc$v,dependsl) "path:lib/libgcc/libgcc_s.1.dylib:libgcc"
     }
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/_resources/port1.0/group/languages-1.0.tcl b/_resources/port1.0/group/languages-1.0.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index bcacd26..5797d28 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/_resources/port1.0/group/languages-1.0.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/_resources/port1.0/group/languages-1.0.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -705,9 +705,11 @@ proc portconfigure::add_compiler_port_dependencies {compiler} {
</span>             }
             # compiler links against libraries in libgcc\d* and/or libgcc-devel
             if {[vercmp ${gcc_version} 4.6] < 0} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                set libgccs "path:lib/libgcc/libgcc_s.1.dylib:libgcc port:libgcc6 port:libgcc45"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                set libgccs "path:lib/libgcc/libgcc_s.1.dylib:libgcc port:libgcc7 port:libgcc6 port:libgcc45"
</span>             } elseif {[vercmp ${gcc_version} 7] < 0} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                set libgccs "path:lib/libgcc/libgcc_s.1.dylib:libgcc port:libgcc6"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                set libgccs "path:lib/libgcc/libgcc_s.1.dylib:libgcc port:libgcc7 port:libgcc6"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            } elseif {[vercmp ${gcc_version} 8] < 0} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                set libgccs "path:lib/libgcc/libgcc_s.1.dylib:libgcc port:libgcc7"
</span>             } else {
                 set libgccs "path:lib/libgcc/libgcc_s.1.dylib:libgcc"
             }
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/gcc6/Portfile b/lang/gcc6/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index add2cd2..a4fc961 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/gcc6/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/gcc6/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -7,8 +7,8 @@ PortGroup compiler_blacklist_versions 1.0
</span> name                gcc6
 epoch               2
 version             6.4.0
<span style='display:block; white-space:pre;background:#ffe0e0;'>-revision            1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-subport             libgcc6 { revision 2 }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision            2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+subport             libgcc6 { revision 3 }
</span> platforms           darwin
 categories          lang
 maintainers         nomaintainer
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -16,7 +16,7 @@ maintainers         nomaintainer
</span> license             {GPL-3+ Permissive}
 description         The GNU compiler collection
 long_description    The GNU compiler collection, including front ends for \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                    C, C++, Objective-C, Objective-C++, and Fortran.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    C, C++, Objective-C, Objective-C++ and Fortran.
</span> 
 homepage            https://gcc.gnu.org/
 master_sites        ftp://ftp.funet.fi/pub/mirrors/sources.redhat.com/pub/gcc/releases/gcc-${version}/ \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -36,6 +36,7 @@ depends_lib         port:cctools \
</span>                     path:lib/pkgconfig/isl.pc:isl \
                     port:ld64 \
                     path:lib/libgcc/libgcc_s.1.dylib:libgcc \
<span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:libgcc7 \
</span>                     port:libiconv \
                     port:libmpc \
                     port:mpfr
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -181,7 +182,7 @@ if {${subport} eq "libgcc6"} {
</span> 
         # We need to list libquadmath.0.dylib here even though it isn't installed in order to make sure we cleanup libgfortran.3.dylib's linkage when +universal
         # See https://trac.macports.org/ticket/54768
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        set dylibs {libgfortran.3.dylib libquadmath.0.dylib}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set dylibs {libgfortran.3.dylib libquadmath.0.dylib libasan.3.dylib}
</span> 
         foreach dylib ${dylibs} {
             # Different OS versions (e.g. Leopard) or architectures (e.g. PPC) don't produce all the dylibs
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -237,7 +238,7 @@ post-destroot {
</span>         file rename ${file} ${newfile}
     }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    foreach dylib {libgcc_ext.10.4.dylib libgcc_ext.10.5.dylib libgcc_s.1.dylib libgfortran.3.dylib libquadmath.0.dylib libstdc++.6.dylib libobjc-gnu.4.dylib libgomp.1.dylib libitm.1.dylib libssp.0.dylib libasan.0.dylib libatomic.1.dylib} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    foreach dylib {libgcc_ext.10.4.dylib libgcc_ext.10.5.dylib libgcc_s.1.dylib libgfortran.3.dylib libquadmath.0.dylib libstdc++.6.dylib libobjc-gnu.4.dylib libgomp.1.dylib libitm.1.dylib libssp.0.dylib libasan.3.dylib libatomic.1.dylib} {
</span>         # Different OS versions (e.g. Leopard) or architectures (e.g. PPC) don't produce all the dylibs
         # https://trac.macports.org/ticket/40098
         # https://trac.macports.org/ticket/40100
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/gcc7/Portfile b/lang/gcc7/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index d8f2a84..e776c00 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/gcc7/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/gcc7/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -7,8 +7,8 @@ PortGroup compiler_blacklist_versions 1.0
</span> name                gcc7
 epoch               2
 version             7.3.0
<span style='display:block; white-space:pre;background:#ffe0e0;'>-revision            1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-subport             libgcc { revision 1 }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision            2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+subport             libgcc7 { revision 0 }
</span> platforms           darwin
 categories          lang
 maintainers         nomaintainer
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -16,7 +16,7 @@ maintainers         nomaintainer
</span> license             {GPL-3+ Permissive}
 description         The GNU compiler collection
 long_description    The GNU compiler collection, including front ends for \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                    C, C++, Objective-C, Objective-C++, and Fortran.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    C, C++, Objective-C, Objective-C++ and Fortran.
</span> 
 homepage            https://gcc.gnu.org/
 master_sites        ftp://ftp.funet.fi/pub/mirrors/sources.redhat.com/pub/gcc/releases/gcc-${version}/ \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -151,8 +151,30 @@ use_parallel_build  yes
</span> 
 destroot.target     install install-info-host
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-if {${subport} eq "libgcc"} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    conflicts       libgcc-devel
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Check if this is the last supported gcc version for this system.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# If it is, libgcc7 installs a full runtime, otherwise it only installs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# what is missing from newer libgccX builds.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# NOTE : The logic here must match that in the libgcc port.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set isLastSupported [ expr ${os.major} <= 10 ]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if { ${isLastSupported} } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # Don't depend on libgcc, as libgcc7 is libgcc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    depends_lib-delete path:lib/libgcc/libgcc_s.1.dylib:libgcc
</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} eq "libgcc7" } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # Activate hack for new libgcc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # https://trac.macports.org/wiki/PortfileRecipes#deactivatehack
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    pre-activate {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {![catch {set installed [lindex [registry_active libgcc] 0]}]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            # Extract the epoch of the installed libgcc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set _epoch [lindex $installed 5]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            # If < 3 need to deactivate
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            if {[vercmp $_epoch 3] < 0} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                registry_deactivate_composite libgcc "" [list ports_nodepcheck 1]
</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> 
     # http://trac.macports.org/ticket/35770
     # http://trac.macports.org/ticket/38814
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -166,8 +188,6 @@ if {${subport} eq "libgcc"} {
</span>     # version should continue to provide a subport for that and older gcc
     # versions.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    depends_lib-delete path:lib/libgcc/libgcc_s.1.dylib:libgcc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span>     configure.args-replace \
         --libdir=${prefix}/lib/${name} \
         --libdir=${prefix}/lib/libgcc
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -196,8 +216,14 @@ if {${subport} eq "libgcc"} {
</span>         # Note that we really don't want to include libgcc_ext.10.[45].dylib here, but install_name_tool
         # doesn't know how to change the id of stubs, and it's easier than recreating them for each
         # gcc port.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        set dylibs {libgcc_ext.10.4.dylib libgcc_ext.10.5.dylib libgcc_s.1.dylib libgfortran.4.dylib libquadmath.0.dylib libstdc++.6.dylib libobjc-gnu.4.dylib libgomp.1.dylib libitm.1.dylib libssp.0.dylib libasan.0.dylib libatomic.1.dylib}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if { ${isLastSupported} } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            # Install all
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set dylibs {libgcc_ext.10.4.dylib libgcc_ext.10.5.dylib libgcc_s.1.dylib libgfortran.4.dylib libquadmath.0.dylib libstdc++.6.dylib libobjc-gnu.4.dylib libgomp.1.dylib libitm.1.dylib libssp.0.dylib libasan.4.dylib libubsan.0.dylib libcilkrts.5.dylib libatomic.1.dylib}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            # Only install those not in newer libgcc builds
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set dylibs {libgfortran.4.dylib libquadmath.0.dylib libasan.4.dylib libubsan.0.dylib libcilkrts.5.dylib}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        
</span>         foreach dylib ${dylibs} {
             # Different OS versions (e.g. Leopard) or architectures (e.g. PPC) don't produce all the dylibs
             # https://trac.macports.org/ticket/40098
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -231,48 +257,58 @@ if {${subport} eq "libgcc"} {
</span>         file delete -force ${destroot}${prefix}/share
         file delete -force ${destroot}${prefix}/lib/libgcc
         file delete -force ${destroot}${prefix}/libexec
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        
</span>         move ${destroot}${prefix}/lib/libgcc.merged ${destroot}${prefix}/lib/libgcc
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        # For binary compatibility with binaries that linked against the old libstdcxx port
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        ln -s libgcc/libstdc++.6.dylib ${destroot}${prefix}/lib/libstdc++.6.dylib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if { ${isLastSupported} } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            # For binary compatibility with binaries that linked against the old libstdcxx port
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            ln -s libgcc/libstdc++.6.dylib ${destroot}${prefix}/lib/libstdc++.6.dylib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            # Remove includes. Provided by newer libgcc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            file delete -force ${destroot}${prefix}/include
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            # This is provided by the libgcc port
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            file delete -force ${destroot}${prefix}/lib/libgcc/libquadmath.0.dylib
</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> } else {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-depends_run-append         port:gcc_select
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-post-destroot {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    file delete ${destroot}${prefix}/share/info/dir
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    foreach file [glob ${destroot}${prefix}/share/{info,man/man7}/*] {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        set extension [file extension ${file}]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        set newfile [regsub "${extension}$" ${file} "-mp-${major}${extension}"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    depends_run-append    port:gcc_select port:libgcc7
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        file rename ${file} ${newfile}
</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;'>-    foreach dylib {libgcc_ext.10.4.dylib libgcc_ext.10.5.dylib libgcc_s.1.dylib libgfortran.4.dylib libquadmath.0.dylib libstdc++.6.dylib libobjc-gnu.4.dylib libgomp.1.dylib libitm.1.dylib libssp.0.dylib libasan.0.dylib libatomic.1.dylib} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        # Different OS versions (e.g. Leopard) or architectures (e.g. PPC) don't produce all the dylibs
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        # https://trac.macports.org/ticket/40098
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        # https://trac.macports.org/ticket/40100
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        if {[file exists ${destroot}${prefix}/lib/${name}/${dylib}]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            delete ${destroot}${prefix}/lib/${name}/${dylib}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            ln -s ${prefix}/lib/libgcc/${dylib} ${destroot}${prefix}/lib/${name}/${dylib}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    post-destroot {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        file delete ${destroot}${prefix}/share/info/dir
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        foreach file [glob ${destroot}${prefix}/share/{info,man/man7}/*] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set extension [file extension ${file}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set newfile [regsub "${extension}$" ${file} "-mp-${major}${extension}"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            file rename ${file} ${newfile}
</span>         }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        if {[variant_isset universal]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            foreach archdir [glob ${destroot}${prefix}/lib/${name}/*/] {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                if {[file exists ${archdir}/${dylib}]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    delete ${archdir}/${dylib}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    ln -s ${prefix}/lib/libgcc/${dylib} ${archdir}/${dylib}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        foreach dylib {libgcc_ext.10.4.dylib libgcc_ext.10.5.dylib libgcc_s.1.dylib libgfortran.4.dylib libquadmath.0.dylib libstdc++.6.dylib libobjc-gnu.4.dylib libgomp.1.dylib libitm.1.dylib libssp.0.dylib libasan.4.dylib libubsan.0.dylib libcilkrts.5.dylib libatomic.1.dylib} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            # Different OS versions (e.g. Leopard) or architectures (e.g. PPC) don't produce all the dylibs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            # https://trac.macports.org/ticket/40098
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            # https://trac.macports.org/ticket/40100
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            if {[file exists ${destroot}${prefix}/lib/${name}/${dylib}]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                delete ${destroot}${prefix}/lib/${name}/${dylib}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                ln -s ${prefix}/lib/libgcc/${dylib} ${destroot}${prefix}/lib/${name}/${dylib}
</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 {[variant_isset universal]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                foreach archdir [glob ${destroot}${prefix}/lib/${name}/*/] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    if {[file exists ${archdir}/${dylib}]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        delete ${archdir}/${dylib}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        ln -s ${prefix}/lib/libgcc/${dylib} ${archdir}/${dylib}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    }
</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;'>-select.group        gcc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-select.file         ${filespath}/mp-${name}
</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;'>+    select.group        gcc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    select.file         ${filespath}/mp-${name}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    
</span> }
 
 platform powerpc {
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/gcc8/Portfile b/lang/gcc8/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 89e1219..9cc656c 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/gcc8/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/gcc8/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -4,52 +4,54 @@ PortSystem 1.0
</span> PortGroup select 1.0
 PortGroup compiler_blacklist_versions 1.0
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-epoch               1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+epoch               2
</span> name                gcc8
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# This is the last version that builds; see
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82092
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-version             8-20170604
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-revision            2
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-subport             libgcc-devel { revision 3 }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+version             8.2.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision            0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+subport             libgcc8 { revision 0 }
</span> platforms           darwin
 categories          lang
 maintainers         nomaintainer
 # an exception in the license allows dependents to not be GPL
 license             {GPL-3+ Permissive}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-description         The GNU compiler collection, prerelease BETA
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+description         The GNU compiler collection.
</span> long_description    The GNU compiler collection, including front ends for \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                    C, C++, Objective-C, Objective-C++, and Fortran. \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    This is a prerelease BETA version!
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    C, C++, Objective-C, Objective-C++ and Fortran.
</span> 
 homepage            https://gcc.gnu.org/
<span style='display:block; white-space:pre;background:#ffe0e0;'>-master_sites        ftp://ftp.funet.fi/pub/mirrors/sources.redhat.com/pub/gcc/snapshots/${version}/ \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    ftp://gcc.gnu.org/pub/gcc/snapshots/${version}/ \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    http://gcc.skazkaforyou.com/snapshots/${version}/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+master_sites        ftp://ftp.funet.fi/pub/mirrors/sources.redhat.com/pub/gcc/releases/gcc-${version}/ \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    ftp://ftp.gwdg.de/pub/linux/gcc/releases/gcc-${version}/ \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    ftp://gcc.ftp.nluug.nl/mirror/languages/gcc/releases/gcc-${version}/ \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    ftp://gcc.gnu.org/pub/gcc/releases/gcc-${version}/ \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    gnu:gcc/gcc-${version}
</span> 
 distname            gcc-${version}
 use_xz              yes
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-checksums           rmd160  5ca2b4868ba36a195f17fbacab881e04a97ae3c7 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    sha256  b07104e99b0b2f613395b74260b05adb1c2f59b9549713a07a63425ecb33e411
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+checksums           rmd160  4fba19867980d04bed1e62d46d4787c99f4fd13d \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    sha256  196c3c04ba2613f893283977e6011b2345d1cd1af9abeac58e916b1aab3e0080 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    size    63460876
</span> 
 depends_lib         port:cctools \
                     port:gmp \
                     path:lib/pkgconfig/isl.pc:isl \
                     port:ld64 \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                    port:libgcc-devel \
</span>                     port:libiconv \
                     port:libmpc \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                    port:mpfr
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:mpfr \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:zlib
</span> 
 depends_skip_archcheck-append gcc_select ld64 cctools
<span style='display:block; white-space:pre;background:#ffe0e0;'>-license_noconflict  gmp mpfr ppl libmpc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# Work around parallel building issue on APFS
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81797
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-patchfiles-append   notparallel-install-headers.patch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+license_noconflict  gmp mpfr ppl libmpc zlib
</span> 
 set major           [lindex [split ${version} .-] 0]
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+# Fix compilation with older cctools releases.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81033 comment 40
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Probably can be removed once gcc 8.3.0 is released.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles-append   pr81033-v2.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> platform darwin {
     configure.pre_args-append --build=${build_arch}-apple-darwin${os.major}
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -143,8 +145,29 @@ use_parallel_build  yes
</span> 
 destroot.target     install install-info-host
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-if {${subport} eq "libgcc-devel"} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    conflicts       libgcc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Is this gcc release supported here.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# NOTE : The logic here must match that in the libgcc port.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+pre-fetch {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if { ${os.major} < 10 } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ui_error "${name} ${version} is not supported on Darwin ${os.major}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        return -code error "incompatible OS X version"
</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;'>+if {${subport} eq "libgcc8"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # Activate hack for new libgcc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # https://trac.macports.org/wiki/PortfileRecipes#deactivatehack
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    pre-activate {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {![catch {set installed [lindex [registry_active libgcc] 0]}]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            # Extract the epoch of the installed libgcc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set _epoch [lindex $installed 5]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            # If < 3 need to deactivate
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            if {[vercmp $_epoch 3] < 0} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                registry_deactivate_composite libgcc "" [list ports_nodepcheck 1]
</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> 
     # http://trac.macports.org/ticket/35770
     # http://trac.macports.org/ticket/38814
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -157,22 +180,20 @@ if {${subport} eq "libgcc-devel"} {
</span>     # version of gcc, then the latest version of gcc to provide a given ABI
     # version should continue to provide a subport for that and older gcc
     # versions.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    depends_lib-delete port:libgcc-devel
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    
</span>     configure.args-replace \
         --libdir=${prefix}/lib/${name} \
         --libdir=${prefix}/lib/libgcc
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    
</span>     # see https://trac.macports.org/ticket/54766
     configure.args-replace \
         --includedir=${prefix}/include/${name} \
         --includedir=${prefix}/include/gcc
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    
</span>     configure.args-replace \
         --with-gxx-include-dir=${prefix}/include/${name}/c++/ \
         --with-gxx-include-dir=${prefix}/include/gcc/c++/
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    
</span>     # TODO: Possibly disable bootstrap with appropriate configure flags.
     #       the problem is that libstdc++'s configure script tests for tls support
     #       using the running compiler (not gcc for which libstdc++ is being built).
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -181,15 +202,15 @@ if {${subport} eq "libgcc-devel"} {
</span>     #compiler.blacklist-append {clang < 425}
     #configure.args-append --disable-bootstrap
     #build.target        all
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    
</span>     post-destroot {
         file mkdir ${destroot}${prefix}/lib/libgcc.merged
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        
</span>         # Note that we really don't want to include libgcc_ext.10.[45].dylib here, but install_name_tool
         # doesn't know how to change the id of stubs, and it's easier than recreating them for each
         # gcc port.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        set dylibs {libgcc_ext.10.4.dylib libgcc_ext.10.5.dylib libgcc_s.1.dylib libgfortran.4.dylib libquadmath.0.dylib libstdc++.6.dylib libobjc-gnu.4.dylib libgomp.1.dylib libitm.1.dylib libssp.0.dylib libasan.0.dylib libatomic.1.dylib}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set dylibs {libgcc_ext.10.4.dylib libgcc_ext.10.5.dylib libgcc_s.1.dylib libgfortran.5.dylib libquadmath.0.dylib libstdc++.6.dylib libobjc-gnu.4.dylib libgomp.1.dylib libitm.1.dylib libssp.0.dylib libasan.5.dylib libubsan.1.dylib libatomic.1.dylib}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        
</span>         foreach dylib ${dylibs} {
             # Different OS versions (e.g. Leopard) or architectures (e.g. PPC) don't produce all the dylibs
             # https://trac.macports.org/ticket/40098
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -197,7 +218,7 @@ if {${subport} eq "libgcc-devel"} {
</span>             if {! [file exists ${destroot}${prefix}/lib/libgcc/${dylib}]} {
                 continue
             }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            
</span>             move ${destroot}${prefix}/lib/libgcc/${dylib} ${destroot}${prefix}/lib/libgcc.merged
             if {[variant_isset universal]} {
                 foreach archdir [glob ${destroot}${prefix}/lib/libgcc/*/] {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -211,60 +232,63 @@ if {${subport} eq "libgcc-devel"} {
</span>                     }
                 }
             }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            
</span>             # strip debug symbols to supress debugger warnings:
             # http://trac.macports.org/attachment/ticket/34831
             if {! [string match *libgcc_ext* ${dylib}]} {
                 system "strip -x ${destroot}${prefix}/lib/libgcc.merged/${dylib}"
             }
         }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        
</span>         file delete -force ${destroot}${prefix}/bin
         file delete -force ${destroot}${prefix}/share
         file delete -force ${destroot}${prefix}/lib/libgcc
         file delete -force ${destroot}${prefix}/libexec
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        
</span>         move ${destroot}${prefix}/lib/libgcc.merged ${destroot}${prefix}/lib/libgcc
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        
</span>         # For binary compatibility with binaries that linked against the old libstdcxx port
         ln -s libgcc/libstdc++.6.dylib ${destroot}${prefix}/lib/libstdc++.6.dylib
     }
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    
</span> } else {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-depends_run-append         port:gcc_select
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-post-destroot {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    file delete ${destroot}${prefix}/share/info/dir
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    foreach file [glob ${destroot}${prefix}/share/{info,man/man7}/*] {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        set extension [file extension ${file}]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        set newfile [regsub "${extension}$" ${file} "-mp-${major}${extension}"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    depends_run-append      port:gcc_select port:libgcc8
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    depends_lib-append      path:lib/libgcc/libgcc_s.1.dylib:libgcc  
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        file rename ${file} ${newfile}
</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;'>-    foreach dylib {libgcc_ext.10.4.dylib libgcc_ext.10.5.dylib libgcc_s.1.dylib libgfortran.4.dylib libquadmath.0.dylib libstdc++.6.dylib libobjc-gnu.4.dylib libgomp.1.dylib libitm.1.dylib libssp.0.dylib libasan.0.dylib libatomic.1.dylib} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        # Different OS versions (e.g. Leopard) or architectures (e.g. PPC) don't produce all the dylibs
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        # https://trac.macports.org/ticket/40098
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        # https://trac.macports.org/ticket/40100
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        if {[file exists ${destroot}${prefix}/lib/${name}/${dylib}]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            delete ${destroot}${prefix}/lib/${name}/${dylib}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            ln -s ${prefix}/lib/libgcc/${dylib} ${destroot}${prefix}/lib/${name}/${dylib}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    post-destroot {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        file delete ${destroot}${prefix}/share/info/dir
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        foreach file [glob ${destroot}${prefix}/share/{info,man/man7}/*] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set extension [file extension ${file}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set newfile [regsub "${extension}$" ${file} "-mp-${major}${extension}"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            file rename ${file} ${newfile}
</span>         }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        if {[variant_isset universal]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            foreach archdir [glob ${destroot}${prefix}/lib/${name}/*/] {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                if {[file exists ${archdir}/${dylib}]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    delete ${archdir}/${dylib}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    ln -s ${prefix}/lib/libgcc/${dylib} ${archdir}/${dylib}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        foreach dylib {libgcc_ext.10.4.dylib libgcc_ext.10.5.dylib libgcc_s.1.dylib libgfortran.5.dylib libquadmath.0.dylib libstdc++.6.dylib libobjc-gnu.4.dylib libgomp.1.dylib libitm.1.dylib libssp.0.dylib libasan.5.dylib libubsan.1.dylib libatomic.1.dylib} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            # Different OS versions (e.g. Leopard) or architectures (e.g. PPC) don't produce all the dylibs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            # https://trac.macports.org/ticket/40098
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            # https://trac.macports.org/ticket/40100
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            if {[file exists ${destroot}${prefix}/lib/${name}/${dylib}]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                delete ${destroot}${prefix}/lib/${name}/${dylib}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                ln -s ${prefix}/lib/libgcc/${dylib} ${destroot}${prefix}/lib/${name}/${dylib}
</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 {[variant_isset universal]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                foreach archdir [glob ${destroot}${prefix}/lib/${name}/*/] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    if {[file exists ${archdir}/${dylib}]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        delete ${archdir}/${dylib}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        ln -s ${prefix}/lib/libgcc/${dylib} ${archdir}/${dylib}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    }
</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;'>-select.group        gcc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-select.file         ${filespath}/mp-${name}
</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;'>+    select.group        gcc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    select.file         ${filespath}/mp-${name}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    
</span> }
 
 platform powerpc {
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/gcc8/files/notparallel-install-headers.patch b/lang/gcc8/files/notparallel-install-headers.patch
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 68f60c7..0000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/gcc8/files/notparallel-install-headers.patch
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,13 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Work around parallel building issue on APFS
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81797
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- libstdc++-v3/include/Makefile.in.orig  2017-07-25 14:05:07.000000000 -0400
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ libstdc++-v3/include/Makefile.in       2017-09-02 12:22:08.000000000 -0400
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1764,6 +1764,8 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- @GLIBCXX_HOSTED_TRUE@install-data-local: install-headers
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- @GLIBCXX_HOSTED_FALSE@install-data-local: install-freestanding-headers
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+.NOTPARALLEL: install-headers
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # This is a subset of the full install-headers rule.  We only need <ciso646>,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # <cstddef>, <cfloat>, <limits>, <climits>, <cstdint>, <cstdlib>, <new>,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # <typeinfo>, <exception>, <initializer_list>, <cstdalign>, <cstdarg>,
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/gcc8/files/pr81033-v2.diff b/lang/gcc8/files/pr81033-v2.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..550efd0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/gcc8/files/pr81033-v2.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,51 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/dwarf2out.c.orig   
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/dwarf2out.c        
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -297,6 +297,10 @@ static unsigned int rnglist_idx;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define FUNC_BEGIN_LABEL  "LFB"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifndef FUNC_SECOND_SECT_LABEL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define FUNC_SECOND_SECT_LABEL    "LFSB"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifndef FUNC_END_LABEL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define FUNC_END_LABEL            "LFE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1212,21 +1216,24 @@ static void set_cur_line_info_table (section *);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ dwarf2out_switch_text_section (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  char label[MAX_ARTIFICIAL_LABEL_BYTES];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   section *sect;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   dw_fde_ref fde = cfun->fde;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   gcc_assert (cfun && fde && fde->dw_fde_second_begin == NULL);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  ASM_GENERATE_INTERNAL_LABEL (label, FUNC_SECOND_SECT_LABEL,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                         current_function_funcdef_no);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  fde->dw_fde_second_begin = xstrdup (label);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (!in_cold_section_p)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       fde->dw_fde_end = crtl->subsections.cold_section_end_label;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      fde->dw_fde_second_begin = crtl->subsections.hot_section_label;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       fde->dw_fde_second_end = crtl->subsections.hot_section_end_label;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       fde->dw_fde_end = crtl->subsections.hot_section_end_label;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      fde->dw_fde_second_begin = crtl->subsections.cold_section_label;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       fde->dw_fde_second_end = crtl->subsections.cold_section_end_label;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   have_multiple_function_sections = true;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/final.c.orig       
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/final.c    
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2223,5 +2223,8 @@ final_scan_insn_1 (rtx_insn *insn, FILE *file, int optimize_p ATTRIBUTE_UNUSED,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         ASM_OUTPUT_LABEL (asm_out_file,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           IDENTIFIER_POINTER (cold_function_name));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        if (dwarf2out_do_frame ()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            && cfun->fde->dw_fde_second_begin != NULL)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          ASM_OUTPUT_LABEL (asm_out_file, cfun->fde->dw_fde_second_begin);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     break;
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/gcc8/Portfile b/lang/gcc9/Portfile
</span>similarity index 78%
copy from lang/gcc8/Portfile
copy to lang/gcc9/Portfile
<span style='display:block; white-space:pre;color:#808080;'>index 89e1219..08e5661 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/gcc8/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/gcc9/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -4,13 +4,11 @@ PortSystem 1.0
</span> PortGroup select 1.0
 PortGroup compiler_blacklist_versions 1.0
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-epoch               1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-name                gcc8
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# This is the last version that builds; see
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82092
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-version             8-20170604
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-revision            2
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-subport             libgcc-devel { revision 3 }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+epoch               2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+name                gcc9
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+version             9-20180722
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision            0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+subport             libgcc-devel { revision 0 }
</span> platforms           darwin
 categories          lang
 maintainers         nomaintainer
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -18,43 +16,42 @@ maintainers         nomaintainer
</span> license             {GPL-3+ Permissive}
 description         The GNU compiler collection, prerelease BETA
 long_description    The GNU compiler collection, including front ends for \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                    C, C++, Objective-C, Objective-C++, and Fortran. \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    C, C++, Objective-C, Objective-C++ and Fortran. \
</span>                     This is a prerelease BETA version!
 
 homepage            https://gcc.gnu.org/
 master_sites        ftp://ftp.funet.fi/pub/mirrors/sources.redhat.com/pub/gcc/snapshots/${version}/ \
                     ftp://gcc.gnu.org/pub/gcc/snapshots/${version}/ \
<span style='display:block; white-space:pre;background:#e0ffe0;'>+                    http://mirror.koddos.net/gcc/snapshots/${version} \
</span>                     http://gcc.skazkaforyou.com/snapshots/${version}/
 
 distname            gcc-${version}
 use_xz              yes
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-checksums           rmd160  5ca2b4868ba36a195f17fbacab881e04a97ae3c7 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    sha256  b07104e99b0b2f613395b74260b05adb1c2f59b9549713a07a63425ecb33e411
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+checksums           rmd160  a17074483ca2eea709e413ffc36afae6114c4b5a \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    sha256  35cce1da9244babd1984d9df90ef27a11c24d2b92a1264b4392f8a37aeb144f7 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    size    62039980
</span> 
 depends_lib         port:cctools \
                     port:gmp \
                     path:lib/pkgconfig/isl.pc:isl \
                     port:ld64 \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                    port:libgcc-devel \
</span>                     port:libiconv \
                     port:libmpc \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                    port:mpfr
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:mpfr \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:zlib
</span> 
 depends_skip_archcheck-append gcc_select ld64 cctools
<span style='display:block; white-space:pre;background:#ffe0e0;'>-license_noconflict  gmp mpfr ppl libmpc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# Work around parallel building issue on APFS
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81797
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-patchfiles-append   notparallel-install-headers.patch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+license_noconflict  gmp mpfr ppl libmpc zlib
</span> 
 set major           [lindex [split ${version} .-] 0]
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+# Fix compilation with older cctools releases.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81033 comment 40
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles-append   pr81033-v2.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> platform darwin {
     configure.pre_args-append --build=${build_arch}-apple-darwin${os.major}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # see https://gcc.gnu.org/ml/gcc-patches/2012-05/msg00672.html
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    patchfiles-append         patch-float128.diff
</span> }
 
 configure.dir       ${workpath}/build
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -125,6 +122,9 @@ pre-configure {
</span>     file mkdir ${configure.dir}
 }
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+# Added for gcc9 beta. To be checked if needed come release.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+compiler.blacklist-append gcc-4.2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> # http://trac.macports.org/ticket/29067
 compiler.blacklist-append gcc-4.0
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -143,6 +143,14 @@ use_parallel_build  yes
</span> 
 destroot.target     install install-info-host
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+# Is this gcc release supported here.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+pre-fetch {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if { ${os.major} < 10 } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ui_error "${name} ${version} is not supported on Darwin ${os.major}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        return -code error "incompatible OS X version"
</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> if {${subport} eq "libgcc-devel"} {
     conflicts       libgcc
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -158,8 +166,6 @@ if {${subport} eq "libgcc-devel"} {
</span>     # version should continue to provide a subport for that and older gcc
     # versions.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    depends_lib-delete port:libgcc-devel
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span>     configure.args-replace \
         --libdir=${prefix}/lib/${name} \
         --libdir=${prefix}/lib/libgcc
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -188,7 +194,7 @@ if {${subport} eq "libgcc-devel"} {
</span>         # Note that we really don't want to include libgcc_ext.10.[45].dylib here, but install_name_tool
         # doesn't know how to change the id of stubs, and it's easier than recreating them for each
         # gcc port.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        set dylibs {libgcc_ext.10.4.dylib libgcc_ext.10.5.dylib libgcc_s.1.dylib libgfortran.4.dylib libquadmath.0.dylib libstdc++.6.dylib libobjc-gnu.4.dylib libgomp.1.dylib libitm.1.dylib libssp.0.dylib libasan.0.dylib libatomic.1.dylib}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set dylibs {libgcc_ext.10.4.dylib libgcc_ext.10.5.dylib libgcc_s.1.dylib libgfortran.5.dylib libquadmath.0.dylib libstdc++.6.dylib libobjc-gnu.4.dylib libgomp.1.dylib libitm.1.dylib libssp.0.dylib libasan.5.dylib libubsan.1.dylib libatomic.1.dylib}
</span> 
         foreach dylib ${dylibs} {
             # Different OS versions (e.g. Leopard) or architectures (e.g. PPC) don't produce all the dylibs
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -229,42 +235,45 @@ if {${subport} eq "libgcc-devel"} {
</span>         # For binary compatibility with binaries that linked against the old libstdcxx port
         ln -s libgcc/libstdc++.6.dylib ${destroot}${prefix}/lib/libstdc++.6.dylib
     }
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    
</span> } else {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-depends_run-append         port:gcc_select
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-post-destroot {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    file delete ${destroot}${prefix}/share/info/dir
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    foreach file [glob ${destroot}${prefix}/share/{info,man/man7}/*] {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        set extension [file extension ${file}]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        set newfile [regsub "${extension}$" ${file} "-mp-${major}${extension}"]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        file rename ${file} ${newfile}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    }
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    foreach dylib {libgcc_ext.10.4.dylib libgcc_ext.10.5.dylib libgcc_s.1.dylib libgfortran.4.dylib libquadmath.0.dylib libstdc++.6.dylib libobjc-gnu.4.dylib libgomp.1.dylib libitm.1.dylib libssp.0.dylib libasan.0.dylib libatomic.1.dylib} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        # Different OS versions (e.g. Leopard) or architectures (e.g. PPC) don't produce all the dylibs
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        # https://trac.macports.org/ticket/40098
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        # https://trac.macports.org/ticket/40100
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        if {[file exists ${destroot}${prefix}/lib/${name}/${dylib}]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            delete ${destroot}${prefix}/lib/${name}/${dylib}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            ln -s ${prefix}/lib/libgcc/${dylib} ${destroot}${prefix}/lib/${name}/${dylib}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    depends_run-append         port:gcc_select
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    depends_lib-append         port:libgcc-devel
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    post-destroot {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        file delete ${destroot}${prefix}/share/info/dir
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        foreach file [glob ${destroot}${prefix}/share/{info,man/man7}/*] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set extension [file extension ${file}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set newfile [regsub "${extension}$" ${file} "-mp-${major}${extension}"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            file rename ${file} ${newfile}
</span>         }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        if {[variant_isset universal]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            foreach archdir [glob ${destroot}${prefix}/lib/${name}/*/] {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                if {[file exists ${archdir}/${dylib}]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    delete ${archdir}/${dylib}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    ln -s ${prefix}/lib/libgcc/${dylib} ${archdir}/${dylib}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        foreach dylib {libgcc_ext.10.4.dylib libgcc_ext.10.5.dylib libgcc_s.1.dylib libgfortran.5.dylib libquadmath.0.dylib libstdc++.6.dylib libobjc-gnu.4.dylib libgomp.1.dylib libitm.1.dylib libssp.0.dylib libasan.5.dylib libubsan.1.dylib libatomic.1.dylib} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            # Different OS versions (e.g. Leopard) or architectures (e.g. PPC) don't produce all the dylibs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            # https://trac.macports.org/ticket/40098
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            # https://trac.macports.org/ticket/40100
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            if {[file exists ${destroot}${prefix}/lib/${name}/${dylib}]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                delete ${destroot}${prefix}/lib/${name}/${dylib}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                ln -s ${prefix}/lib/libgcc/${dylib} ${destroot}${prefix}/lib/${name}/${dylib}
</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 {[variant_isset universal]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                foreach archdir [glob ${destroot}${prefix}/lib/${name}/*/] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    if {[file exists ${archdir}/${dylib}]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        delete ${archdir}/${dylib}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        ln -s ${prefix}/lib/libgcc/${dylib} ${archdir}/${dylib}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    }
</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;'>-select.group        gcc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-select.file         ${filespath}/mp-${name}
</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;'>+    select.group        gcc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    select.file         ${filespath}/mp-${name}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    
</span> }
 
 platform powerpc {
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/gcc9/files/mp-gcc9 b/lang/gcc9/files/mp-gcc9
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..0cc656b
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/gcc9/files/mp-gcc9
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/gcc-mp-9
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/cpp-mp-9
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/c++-mp-9
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/g++-mp-9
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/gcov-mp-9
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/gfortran-mp-9
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/gcc9/files/pr81033-v2.diff b/lang/gcc9/files/pr81033-v2.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..550efd0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/gcc9/files/pr81033-v2.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,51 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/dwarf2out.c.orig   
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/dwarf2out.c        
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -297,6 +297,10 @@ static unsigned int rnglist_idx;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define FUNC_BEGIN_LABEL  "LFB"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifndef FUNC_SECOND_SECT_LABEL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define FUNC_SECOND_SECT_LABEL    "LFSB"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifndef FUNC_END_LABEL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define FUNC_END_LABEL            "LFE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1212,21 +1216,24 @@ static void set_cur_line_info_table (section *);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ dwarf2out_switch_text_section (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  char label[MAX_ARTIFICIAL_LABEL_BYTES];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   section *sect;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   dw_fde_ref fde = cfun->fde;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   gcc_assert (cfun && fde && fde->dw_fde_second_begin == NULL);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  ASM_GENERATE_INTERNAL_LABEL (label, FUNC_SECOND_SECT_LABEL,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                         current_function_funcdef_no);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  fde->dw_fde_second_begin = xstrdup (label);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (!in_cold_section_p)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       fde->dw_fde_end = crtl->subsections.cold_section_end_label;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      fde->dw_fde_second_begin = crtl->subsections.hot_section_label;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       fde->dw_fde_second_end = crtl->subsections.hot_section_end_label;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       fde->dw_fde_end = crtl->subsections.hot_section_end_label;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      fde->dw_fde_second_begin = crtl->subsections.cold_section_label;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       fde->dw_fde_second_end = crtl->subsections.cold_section_end_label;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   have_multiple_function_sections = true;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/final.c.orig       
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/final.c    
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2223,5 +2223,8 @@ final_scan_insn_1 (rtx_insn *insn, FILE *file, int optimize_p ATTRIBUTE_UNUSED,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         ASM_OUTPUT_LABEL (asm_out_file,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           IDENTIFIER_POINTER (cold_function_name));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        if (dwarf2out_do_frame ()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            && cfun->fde->dw_fde_second_begin != NULL)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          ASM_OUTPUT_LABEL (asm_out_file, cfun->fde->dw_fde_second_begin);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     break;
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/libgcc/Portfile b/lang/libgcc/Portfile
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..ee71b22
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/libgcc/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,50 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:filetype=tcl:et:sw=4:ts=4:sts=4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortSystem 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup select 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+epoch               3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+name                libgcc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+version             1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+categories          lang
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+maintainers         nomaintainer
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+distfiles
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+use_configure       no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+supported_archs     noarch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+platforms           darwin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+conflicts           libgcc-devel
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+description         Provides the appropriate gcc runtime.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+long_description    ${description} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    Picks the version to use based on macOS version.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+license             BSD
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+homepage            https://www.macports.org/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Pick the gcc version that provides the primary runtime.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# NOTE : The logic here must match that in the gccX ports.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if { ${os.major} < 10 } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   set gcc_version 7
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+} else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   set gcc_version 8
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+depends_lib port:libgcc${gcc_version}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+build { }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+destroot {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   xinstall -d ${destroot}${prefix}/share/doc/${name}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   system "echo 'libgcc runtime is provided by libgcc${gcc_version}' > ${destroot}${prefix}/share/doc/${name}/README"
</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;'>+post-deactivate {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # When this port is deactivated, the associated libgccX should also be.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {![catch {set installed [lindex [registry_active libgcc${gcc_version}] 0]}]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        registry_deactivate_composite libgcc${gcc_version} "" [list ports_nodepcheck 1]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span></pre><pre style='margin:0'>

</pre>