<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>