<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/6fe66edb1b96d02fd7250b0d6647e8a15d272329">https://github.com/macports/macports-ports/commit/6fe66edb1b96d02fd7250b0d6647e8a15d272329</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 6fe66edb1b9 libgcc10: Needs to provide libgcc_s.2.dylib on arm
</span>6fe66edb1b9 is described below

<span style='display:block; white-space:pre;color:#808000;'>commit 6fe66edb1b96d02fd7250b0d6647e8a15d272329
</span>Author: Chris Jones <jonesc@macports.org>
AuthorDate: Sun May 16 00:15:21 2021 +0100

<span style='display:block; white-space:pre;color:#404040;'>    libgcc10: Needs to provide libgcc_s.2.dylib on arm
</span>---
 lang/gcc10/Portfile | 135 ++++++++++++++++++++++++++++++++++++++++++++--------
 1 file changed, 116 insertions(+), 19 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/gcc10/Portfile b/lang/gcc10/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index f8d9b895be1..9b72baf3b81 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/gcc10/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/gcc10/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -46,16 +46,16 @@ if { ${os.arch} eq "arm" } {
</span>     checksums       rmd160  7ad0ba740d46554b5a5ccdfdc75f4401a76108b4 \
                     sha256  53beed690e4e0355d972ad58917a11e01af1cfe67b2e7602ca1ef89c98417a67 \
                     size    118840250
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    subport         libgcc10 { revision [ expr ${revision} + 2 ] }
</span> } else {
     distname        gcc-${version}
     use_xz          yes
     checksums       rmd160  8edb715cf1159fd8de773d0d5208d2e83ca36402 \
                     sha256  64f404c1a650f27fc33da242e1f2df54952e3963a49e06e73f6940f3223ac344 \
                     size    76692288
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    subport         libgcc10 { revision [ expr ${revision} + 1 ] }
</span> }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-subport             libgcc10 { revision [ expr ${revision} + 1 ] }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> patchfiles          patch-fix-libgccjit-soname
 
 depends_build-append \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -183,7 +183,7 @@ conflicts_build-append libunwind-headers
</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 libgcc_s.2.dylib libgfortran.5.dylib libquadmath.0.dylib libstdc++.6.dylib libobjc-gnu.4.dylib libgomp.1.dylib libitm.1.dylib libssp.0.dylib libasan.6.dylib libubsan.1.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 libgcc_s.1.1.dylib libgcc_s.2.dylib libgfortran.5.dylib libquadmath.0.dylib libstdc++.6.dylib libobjc-gnu.4.dylib libgomp.1.dylib libitm.1.dylib libssp.0.dylib libasan.6.dylib libubsan.1.dylib libatomic.1.dylib}
</span> 
 if {${subport} ne ${name}} {
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -208,26 +208,123 @@ if {${subport} ne ${name}} {
</span>         }
     }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    # gcc8 runtime versions are identical to that in gcc9, so libgcc8 does not
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # need to provide anything, hence do not build anything.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # port still defined as needed to satisfy dependency tree
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    depends_run   path:share/doc/libgcc/README:libgcc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    depends_lib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if { ${os.arch} eq "arm" } {
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    fetch.type    none
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    build         { }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    use_configure no
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    patchfiles
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    destroot {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        set doc_dir ${destroot}${prefix}/share/doc/${subport}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        xinstall -m 755 -d ${doc_dir}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        system "echo ${subport} provides no runtime > ${doc_dir}/README"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # http://trac.macports.org/ticket/35770
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # http://trac.macports.org/ticket/38814
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # While there can be multiple versions of these runtimes in a single
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # process, it is not possible to pass objects between different versions,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # so we simplify this by having the libgcc port provide the newest version
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # of these runtimes for all versions of gcc to use.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        #
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # If there is a binary incompatible change to the runtime in a future
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # version of gcc, then the latest version of gcc to provide a given ABI
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # version should continue to provide a subport for that and older gcc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # versions.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        depends_run path:share/doc/libgcc/README:libgcc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        depends_build-append {*}${depends_lib}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        depends_lib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.args-replace \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            --libdir=${prefix}/lib/${name} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            --libdir=${prefix}/lib/libgcc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # see https://trac.macports.org/ticket/54766
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.args-replace \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            --includedir=${prefix}/include/${name} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            --includedir=${prefix}/include/gcc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.args-replace \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            --with-gxx-include-dir=${prefix}/include/${name}/c++/ \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            --with-gxx-include-dir=${prefix}/include/gcc/c++/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # TODO: Possibly disable bootstrap with appropriate configure flags.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        #       the problem is that libstdc++'s configure script tests for tls support
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        #       using the running compiler (not gcc for which libstdc++ is being built).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        #       Thus when we build with clang, we get a mismatch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # http://trac.macports.org/ticket/36116
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        #compiler.blacklist-append {clang < 425}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        #configure.args-append --disable-bootstrap
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        #build.target        all
</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;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            # Create temporary lib dir
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            file mkdir ${destroot}${prefix}/lib/libgcc.merged
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            # Loop over the specific libs provided by this port
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            foreach dylib ${install_dylibs} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                
</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/libgcc/${dylib}]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    continue
</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;'>+                move ${destroot}${prefix}/lib/libgcc/${dylib} ${destroot}${prefix}/lib/libgcc.merged
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                if {[variant_exists universal] && [variant_isset universal]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    foreach archdir [glob ${destroot}${prefix}/lib/libgcc/*/] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        set archdir_nodestroot [string map "${destroot}/ /" ${archdir}]
</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;'>+                            system "install_name_tool -id ${prefix}/lib/libgcc/${dylib} ${archdir}/${dylib}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            foreach link [glob -tails -directory ${archdir} *.dylib] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                system "install_name_tool -change ${archdir_nodestroot}${link} ${prefix}/lib/libgcc/${link} ${archdir}/${dylib}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            system "lipo -create -output ${destroot}${prefix}/lib/libgcc.merged/${dylib}~ ${destroot}${prefix}/lib/libgcc.merged/${dylib} ${archdir}/${dylib} && mv ${destroot}${prefix}/lib/libgcc.merged/${dylib}~ ${destroot}${prefix}/lib/libgcc.merged/${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><span style='display:block; white-space:pre;background:#e0ffe0;'>+                
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                # strip debug symbols to supress debugger warnings:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                # http://trac.macports.org/attachment/ticket/34831
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                if {! [string match *libgcc_ext* ${dylib}]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    system "strip -x ${destroot}${prefix}/lib/libgcc.merged/${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><span style='display:block; white-space:pre;background:#e0ffe0;'>+            # Remove stuff not provided by libgccX ports
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            file delete -force ${destroot}${prefix}/bin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            file delete -force ${destroot}${prefix}/share
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            file delete -force ${destroot}${prefix}/lib/libgcc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            file delete -force ${destroot}${prefix}/libexec
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            # Move temporary lib dir back in place
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            move ${destroot}${prefix}/lib/libgcc.merged ${destroot}${prefix}/lib/libgcc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            
</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;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set doc_dir ${destroot}${prefix}/share/doc/${subport}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            xinstall -m 755 -d ${doc_dir}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            system "echo ${subport} provides additional runtime > ${doc_dir}/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;'>+    } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # gcc9 runtime versions are identical to that in gcc10, so libgcc9 does not
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # need to provide anything, hence do not build anything.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # port still defined as needed to satisfy dependency tree
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        depends_run   path:share/doc/libgcc/README:libgcc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        depends_lib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        fetch.type    none
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        build         { }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        use_configure no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        patchfiles
</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;'>+            set doc_dir ${destroot}${prefix}/share/doc/${subport}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            xinstall -m 755 -d ${doc_dir}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            system "echo ${subport} provides no runtime > ${doc_dir}/README"
</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;'>-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    
</span>     # clang (as) from Xcode 12.5 has various problems with gcc build
     if { ${os.platform} eq "darwin" && \
              ( [ vercmp ${xcodeversion} 12.5 ] >= 0 || [ vercmp ${cltversion} 12.5 ] >= 0 ) } {
</pre><pre style='margin:0'>

</pre>