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

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/7bc2c0e6fa0dd7a5b331da8cf8eca4f8560772ac">https://github.com/macports/macports-ports/commit/7bc2c0e6fa0dd7a5b331da8cf8eca4f8560772ac</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 7bc2c0e6fa0 boost: add basic support for ARM64
</span>7bc2c0e6fa0 is described below

<span style='display:block; white-space:pre;color:#808000;'>commit 7bc2c0e6fa0dd7a5b331da8cf8eca4f8560772ac
</span>Author: Michael Dickens <michaelld@macports.org>
AuthorDate: Fri Aug 28 09:10:04 2020 -0400

<span style='display:block; white-space:pre;color:#404040;'>    boost: add basic support for ARM64
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Both alone and +universal ... hopefully ...
</span>---
 devel/boost/Portfile                               | 81 ++++++++++++----------
 devel/boost/files/patch-add-support-for-arm64.diff | 56 +++++++++++++++
 2 files changed, 101 insertions(+), 36 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/boost/Portfile b/devel/boost/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index b4cd44bd562..3faa38a8030 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/devel/boost/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/boost/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -87,6 +87,10 @@ post-patch {
</span> # see https://github.com/boostorg/build/issues/440
 patchfiles-append patch-clang_version.diff
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+# temporary patch to add basic support for arm64,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# both alone as well as +universal
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles-append patch-add-support-for-arm64.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> proc write_jam s {
     global worksrcpath
     set config [open ${worksrcpath}/user-config.jam a]
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -376,58 +380,63 @@ if {$subport eq $name} {
</span> }
 
 if {![variant_isset universal]} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    # Honour 'build_arch', if not universal as per #28327
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    if {[lsearch ${build_arch} ppc*] != -1} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        build.args-append   architecture=power
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        if {${os.arch} ne "powerpc"} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            build.args-append   --disable-long-double
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {[lsearch ${build_arch} arm*] != -1} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        build.args-append address-model=64 architecture=arm
</span>     } else {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        if {[lsearch ${build_arch} *86*] != -1} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            build.args-append   architecture=x86
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {[lsearch ${build_arch} ppc*] != -1} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            build.args-append architecture=power
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            if {${os.arch} ne "powerpc"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                build.args-append --disable-long-double
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            }
</span>         } else {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            pre-fetch {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                error "Current value of 'build_arch' is not supported."
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            if {[lsearch ${build_arch} *86*] != -1} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                build.args-append architecture=x86
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                pre-fetch {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    error "Current value of 'build_arch' (${build_arch}) is not supported."
</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 {[lsearch ${build_arch} *64] != -1} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                build.args-append address-model=64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                build.args-append address-model=32
</span>             }
         }
     }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    if {[lsearch ${build_arch} *64] != -1} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        build.args-append   address-model=64
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        build.args-append   address-model=32
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    }
</span> }
 
 variant universal {
     build.args-append   pch=off
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    if {[lsearch ${universal_archs} ppc*] != -1} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        if {[lsearch ${universal_archs} *86*] != -1} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            build.args-append   architecture=combined
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {[lsearch ${universal_archs} arm*] != -1} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        build.args-append address-model=64 architecture=combined
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {[lsearch ${universal_archs} ppc*] != -1} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            if {[lsearch ${universal_archs} *86*] != -1} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                build.args-append architecture=combined
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                build.args-append architecture=power
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            if {${os.arch} ne "powerpc"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                build.args-append --disable-long-double
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            }
</span>         } else {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            build.args-append   architecture=power
</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;'>-        if {${os.arch} ne "powerpc"} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            build.args-append   --disable-long-double
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            build.args-append architecture=x86
</span>         }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        build.args-append   architecture=x86
</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;'>-    if {[lsearch ${universal_archs} *64] != -1} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        if {[lsearch ${universal_archs} i386] != -1 || [lsearch ${universal_archs} ppc] != -1} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            build.args-append   address-model=32_64
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            if {[lsearch ${universal_archs} ppc64] == -1} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                post-patch {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    reinplace "/local support-ppc64 =/s/= 1/= /" ${worksrcpath}/tools/build/src/tools/darwin.jam
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {[lsearch ${universal_archs} *64] != -1} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            if {[lsearch ${universal_archs} i386] != -1 || [lsearch ${universal_archs} ppc] != -1} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                build.args-append address-model=32_64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                if {[lsearch ${universal_archs} ppc64] == -1} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    post-patch {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        reinplace "/local support-ppc64 =/s/= 1/= /" ${worksrcpath}/tools/build/src/tools/darwin.jam
</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;'>+                build.args-append address-model=64
</span>             }
         } else {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            build.args-append   address-model=64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            build.args-append address-model=32
</span>         }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        build.args-append   address-model=32
</span>     }
 }
 
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/boost/files/patch-add-support-for-arm64.diff b/devel/boost/files/patch-add-support-for-arm64.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..44b190226be
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/boost/files/patch-add-support-for-arm64.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,56 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- tools/build/src/tools/darwin.jam.orig
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ tools/build/src/tools/darwin.jam
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -431,6 +431,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     local support-ppc64 = 1 ;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     osx-version ?= $(.host-osx-version) ;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    local osx-version-split = [ regex.split $(osx-version) \\. ] ;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     switch $(osx-version)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -440,7 +441,7 @@
</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;'>+         case * :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        if $(osx-version) && ! [ version.version-less [ regex.split $(osx-version) \\. ] : 10 6 ]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        if $(osx-version) && ! [ version.version-less $(osx-version-split) : 10 6 ]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             # When targeting 10.6:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             # - gcc 4.2 will give a compiler errir if ppc64 compilation is requested
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -452,7 +453,16 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         case combined : 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            if $(address-model) = 32_64 {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            if ! [ version.version-less $(osx-version-split) : 11 0 ]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                # macOS 11.0 "Big Sur" and later is always 64-bit ...
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                if ( $(address_model) = 32 || $(address_model) = 32_64 ) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                    echo "'address_model' contains 32; macOS 11 or later builds 64 only; overriding" ;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                    address-model = 64 ;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                # ... and "combined" means Intel and ARM
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                options = -arch x86_64 -arch arm64 ;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            } else if $(address-model) = 32_64 {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 if $(support-ppc64) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                     options = -arch i386 -arch ppc -arch x86_64 -arch ppc64 ;                    
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -500,8 +510,18 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         case arm :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            if ! [ version.version-less $(osx-version-split) : 11 0 ]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                # macOS 11.0 "Big Sur" and later is always 64-bit
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                if ( $(address_model) = 32 || $(address_model) = 32_64 ) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                    echo "'address_model' contains 32; macOS 11 or later builds 64 only; overriding" ;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                    address-model = 64 ;
</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 $(instruction-set) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 options = -arch$(_)$(instruction-set) ;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            } else if $(address-model) = 64 {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                options = -arch arm64 ;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 options = -arch arm ;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             }
</span></pre><pre style='margin:0'>

</pre>