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

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/af2f2de8c8eee89c397c24d506c6c20ed2d4d9c1">https://github.com/macports/macports-ports/commit/af2f2de8c8eee89c397c24d506c6c20ed2d4d9c1</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 af2f2de8c8e gcc10-bootstrap: fix build on Big Sur and universal variant
</span>af2f2de8c8e is described below

<span style='display:block; white-space:pre;color:#808000;'>commit af2f2de8c8eee89c397c24d506c6c20ed2d4d9c1
</span>Author: Kirill A. Korinsky <kirill@korins.ky>
AuthorDate: Sun Mar 6 01:30:38 2022 +0100

<span style='display:block; white-space:pre;color:#404040;'>    gcc10-bootstrap: fix build on Big Sur and universal variant
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    It also exaplins how to use this port to build anything with universal variant.
</span>---
 lang/gcc10-bootstrap/Portfile | 123 ++++++++++++++++++++++++------------------
 1 file changed, 72 insertions(+), 51 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/gcc10-bootstrap/Portfile b/lang/gcc10-bootstrap/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index db72892bb62..8ad0894f281 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/gcc10-bootstrap/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/gcc10-bootstrap/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,6 +1,7 @@
</span> # -*- 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
 
 PortSystem          1.0
<span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup           cltversion 1.0
</span> PortGroup           muniversal 1.0
 
 # ideally for this bootstrap port we want no deps on any MacPorts port. This port
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -10,7 +11,7 @@ name                gcc10-bootstrap
</span> 
 # Note, this is the last version of gcc which haven't required c++11 for bootstrap
 version             10.3.0
<span style='display:block; white-space:pre;background:#ffe0e0;'>-revision            3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision            4
</span> epoch               0
 
 platforms           darwin
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -157,9 +158,10 @@ platform darwin 8 {
</span>                             PATH=${workpath}/bins:/usr/bin:/bin:/usr/sbin:/sbin
 }
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+prefix              ${prefix}/libexec/${name}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> configure.cmd       ${worksrcpath}/configure
 configure.dir       ${workpath}/build
<span style='display:block; white-space:pre;background:#ffe0e0;'>-configure.pre_args  --prefix=${prefix}/libexec/${name}
</span> configure.args      --enable-languages=c,c++,objc,obj-c++ \
                     --enable-bootstrap \
                     --with-system-zlib \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -174,30 +176,17 @@ if {${os.major} >= 18 && ${configure.sdkroot} ne ""} {
</span>     configure.args-append --with-sysroot="[regsub {MacOSX1[0-9]\.[0-9]+\.sdk} ${configure.sdkroot} {MacOSX.sdk}]"
 }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-set universal_targets ""
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-foreach arch ${configure.universal_archs} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    switch -- ${arch} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        arm64   {set universal_targets "${universal_targets},aarch64-apple-${os.platform}${os.version}"}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        x86_64  {set universal_targets "${universal_targets},x86_64-apple-${os.platform}${os.version}"}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        i386    {set universal_targets "${universal_targets},i686-apple-${os.platform}${os.version}"}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        ppc     {set universal_targets "${universal_targets},powerpc-apple-${os.platform}${os.version}"}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        ppc64   {set universal_targets "${universal_targets},powerpc64-apple-${os.platform}${os.version}"}
</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;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-variant universal {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-replace \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    --disable-multilib \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    --enable-multilib
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-replace \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    --disable-multiarch \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    --enable-multiarch
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    if { [string length ${universal_targets}] > 0 } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        configure.args-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            --enable-targets=[string replace ${universal_targets} 0 0]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# clang (as) from Xcode 12.5 has various problems with gcc build
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if { ${os.platform} eq "darwin" && \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         ( [ vercmp ${xcodeversion} 12.5 ] >= 0 || [ vercmp ${cltversion} 12.5 ] >= 0 ) } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    pre-configure {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ui_warn "Applying '--without-build-config' workaround to Xcode ${xcodeversion} / CLT ${cltversion}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ui_warn "If versions > 12.5 please check if it is still required"
</span>     }
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    # gcc has build issues on macOS 11.3 with the use of Xcode clang as 'as'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100340
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # https://trac.macports.org/ticket/62775
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.args-append  --without-build-config
</span> }
 
 default_variants    +universal
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -214,34 +203,42 @@ merger_must_run_binaries    yes
</span> if {![info exists universal_possible]} {
     set universal_possible [expr {${os.universal_supported} && [llength ${configure.universal_archs}] >= 2}]
 }
<span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set merger_host(arm64)  aarch64-apple-${os.platform}${os.major}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set merger_host(i386)   i386-apple-${os.platform}${os.major}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set merger_host(ppc)    powerpc-apple-${os.platform}${os.major}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set merger_host(ppc64)  powerpc64-apple-${os.platform}${os.major}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set merger_host(x86_64) x86_64-apple-${os.platform}${os.major}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+foreach {arch target} [array get merger_host] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    lappend merger_configure_args(${arch}) --build=${target}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    lappend merger_configure_args(${arch}) --target=${target}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> if {${universal_possible} && [variant_isset universal]} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    set merger_host(arm64)  aarch64-apple-${os.platform}${os.major}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    set merger_host(i386)   i386-apple-${os.platform}${os.major}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    set merger_host(ppc)    powerpc-apple-${os.platform}${os.major}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    set merger_host(ppc64)  powerpc64-apple-${os.platform}${os.major}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    set merger_host(x86_64) x86_64-apple-${os.platform}${os.major}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    set merger_configure_args(arm64)  --build=aarch64-apple-${os.platform}${os.major}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    set merger_configure_args(i386)   --build=i386-apple-${os.platform}${os.major}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    set merger_configure_args(ppc)    --build=powerpc-apple-${os.platform}${os.major}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    set merger_configure_args(ppc64)  --build=powerpc64-apple-${os.platform}${os.major}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    set merger_configure_args(x86_64) --build=x86_64-apple-${os.platform}${os.major}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-} elseif {${build_arch} eq "arm64"} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    --host=aarch64-apple-${os.platform}${os.major} \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    --build=aarch64-apple-${os.platform}${os.major}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-} elseif {${build_arch} eq "ppc"} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    --host=powerpc-apple-${os.platform}${os.major} \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    --build=powerpc-apple-${os.platform}${os.major}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-} elseif {${build_arch} eq "ppc64"} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    --host=powerpc64-apple-${os.platform}${os.major} \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    --build=powerpc64-apple-${os.platform}${os.major}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.args-replace \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                     --disable-multilib \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                     --enable-multilib
</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;'>+                     --disable-multiarch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                     --enable-multiarch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set universal_targets ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    foreach arch ${configure.universal_archs} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set universal_targets "${universal_targets},$merger_host(${arch})"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if { [string length ${universal_targets}] > 0 } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.args-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            --enable-targets=[string replace ${universal_targets} 0 0]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span> } else {
     configure.args-append \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                    --host=${build_arch}-apple-${os.platform}${os.major} \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    --build=${build_arch}-apple-${os.platform}${os.major}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    --host=$merger_host(${build_arch}) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    --build=$merger_host(${build_arch}) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    --target=$merger_host(${build_arch}) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    --enable-targets=$merger_host(${build_arch})
</span> }
 
 build.dir           ${configure.dir}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -255,11 +252,35 @@ To use this bootstrap version of gcc instead of the default compiler, add the\
</span> following lines to the Portfile:
 
 depends_lib-append      port:${name}
<span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> configure.cc            \$\{prefix\}/libexec/${name}/bin/gcc
 configure.cxx           \$\{prefix\}/libexec/${name}/bin/g++
 
 If you would like to build universal port with this compiler,\
<span style='display:block; white-space:pre;background:#ffe0e0;'>-see clang-11-bootstrap port as example.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+you must use per target compiler. The easy way is using muniversal PG:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup               muniversal 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {![info exists universal_possible]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set universal_possible [expr {${os.universal_supported} && [llength ${configure.universal_archs}] >= 2}]
</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 {${universal_possible} && [variant_isset universal]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    array set cpu_arch_map {arm64 aarch64 i386 x86 ppc powerpc ppc64  powerpc64 x86_64 x86_64}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.cc        {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.cxx       {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    foreach {arch target} [array get cpu_arch_map] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        lappend merger_configure_env(${arch}) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        CC=${prefix}/libexec/gcc10-bootstrap/bin/${target}-apple-${os.platform}${os.major}-gcc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        lappend merger_configure_env(${arch}) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        CXX=${prefix}/libexec/gcc10-bootstrap/bin/${target}-apple-${os.platform}${os.major}-g++
</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;'>+    configure.cc        \$\{prefix\}/libexec/${name}/bin/gcc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.cxx       \$\{prefix\}/libexec/${name}/bin/g++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span> "
 
 livecheck.type      none
</pre><pre style='margin:0'>

</pre>