<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/7aa2ff679e61f923475b6c2a56958da61205430b">https://github.com/macports/macports-ports/commit/7aa2ff679e61f923475b6c2a56958da61205430b</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 7aa2ff6  cctools: try to use clang in as
</span>7aa2ff6 is described below

<span style='display:block; white-space:pre;color:#808000;'>commit 7aa2ff679e61f923475b6c2a56958da61205430b
</span>Author: Joshua Root <jmr@macports.org>
AuthorDate: Fri Jan 25 02:01:15 2019 +1100

<span style='display:block; white-space:pre;color:#404040;'>    cctools: try to use clang in as
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    The clang integrated assembler is way more up-to-date than the ancient
</span><span style='display:block; white-space:pre;color:#404040;'>    pre-GPLv3 version of gas that is the alternative. The latter doesn't
</span><span style='display:block; white-space:pre;color:#404040;'>    know about newer instructions such as AVX. The as(1) shipped with
</span><span style='display:block; white-space:pre;color:#404040;'>    recent Xcode versions will just run clang behind the scenes under most
</span><span style='display:block; white-space:pre;color:#404040;'>    circumstances for this reason.
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Our cctools can't actually depend on clang because that would create a
</span><span style='display:block; white-space:pre;color:#404040;'>    circular dependency. So we'll try to run the clang corresponding to the
</span><span style='display:block; white-space:pre;color:#404040;'>    LLVM being used by cctools, and if that isn't present, try the system
</span><span style='display:block; white-space:pre;color:#404040;'>    clang in /usr/bin if we're on an OS version that has a clang with a
</span><span style='display:block; white-space:pre;color:#404040;'>    working integrated assembler. (The ancient gas is still used as a final
</span><span style='display:block; white-space:pre;color:#404040;'>    fallback.)
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Fixes: https://trac.macports.org/ticket/37846
</span>---
 devel/cctools/Portfile                 | 13 ++++++++++++-
 devel/cctools/files/as-try-clang.patch | 34 ++++++++++++++++++++++++++++++++++
 devel/cctools/files/not-clang.patch    | 12 ------------
 3 files changed, 46 insertions(+), 13 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/cctools/Portfile b/devel/cctools/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index b83bdf2..eba645b 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/devel/cctools/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/cctools/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -6,6 +6,7 @@ name                    cctools
</span> # Xcode 10.0
 version                 921
 set ld64_version        409.12
<span style='display:block; white-space:pre;background:#e0ffe0;'>+revision                1
</span> categories              devel
 platforms               darwin
 maintainers             {jeremyhu @jeremyhu} openmaintainer
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -37,7 +38,7 @@ patchfiles              cctools-829-lto.patch \
</span>                         PR-12400897.patch \
                         cctools-862-prunetrie.patch \
                         cctools-921-noavx512.patch \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                        not-clang.patch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        as-try-clang.patch
</span> 
 if {${os.major} < 11} {
     patchfiles-append snowleopard-strnlen.patch
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -139,8 +140,18 @@ post-patch {
</span>             reinplace "s:\"llvm-objdump\":\"llvm-objdump-mp-${llvm_version}\":" ${worksrcpath}/otool/main.c
             reinplace "s:\"llvm-mc\":\"llvm-mc-mp-${llvm_version}\":" ${worksrcpath}/as/driver.c
             reinplace "s:@@LLVM_LIBDIR@@:${prefix}/libexec/llvm-${llvm_version}/lib:" ${worksrcpath}/libstuff/lto.c
<span style='display:block; white-space:pre;background:#e0ffe0;'>+            reinplace "s:__MP_CLANG_NAME__:clang-mp-${llvm_version}:" ${worksrcpath}/as/driver.c
</span>         }
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {${os.major} >= 11} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set try_system_clang 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            # clang's integrated assembler may not work well on 10.6 and doesn't
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            # exist on older OS versions.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set try_system_clang 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        reinplace "s:__TRY_SYSTEM_CLANG__:${try_system_clang}:" ${worksrcpath}/as/driver.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span>         foreach file [glob ${worksrcpath}/{*/,}Makefile] {
             reinplace "s:/usr/local:@PREFIX@:g" ${file}
             reinplace "s:/usr:@PREFIX@:g" ${file}
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/cctools/files/as-try-clang.patch b/devel/cctools/files/as-try-clang.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..22ee4de
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/cctools/files/as-try-clang.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,34 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- as/driver.c.orig       2018-09-19 08:01:56.000000000 +1000
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ as/driver.c    2019-01-25 01:35:21.000000000 +1100
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -295,11 +295,18 @@ char **envp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       arch_flag.cputype == CPU_TYPE_ARM64 ||
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       arch_flag.cputype == CPU_TYPE_ARM64_32 ||
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       arch_flag.cputype == CPU_TYPE_ARM)){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      as = makestr(prefix, CLANG, NULL);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      if(access(as, F_OK) != 0){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          printf("%s: assembler (%s) not installed\n", progname, as);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          exit(1);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        as = makestr(prefix, "__MP_CLANG_NAME__", NULL);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        if(access(as, F_OK) != 0){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if __TRY_SYSTEM_CLANG__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            as = "/usr/bin/clang";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            if(access(as, F_OK) != 0){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                as = NULL;
</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;'>++            as = NULL;
</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;'>++        if (as != NULL) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       new_argv = allocate((argc + 8) * sizeof(char *));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       new_argv[0] = as;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       j = 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -360,6 +367,7 @@ char **envp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           exit(0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           exit(1);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        } /* as != NULL */
</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;color:#808080;'>diff --git a/devel/cctools/files/not-clang.patch b/devel/cctools/files/not-clang.patch
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 6db44a2..0000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/devel/cctools/files/not-clang.patch
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,12 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- as/driver.c.orig       2015-11-23 21:01:45.000000000 -0800
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ as/driver.c    2015-11-23 21:09:24.000000000 -0800
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -280,6 +280,9 @@ char **envp)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-      arch_flag.cputype == CPU_TYPE_ARM)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-       run_clang = 1;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        /* MACPORTS: Don't use the clang assembler for now. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        run_clang = 0;
</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;'>-    * Use the clang as the assembler if is the default or asked to with
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    * the -q flag. But don't use it asked to use the system assembler
</span></pre><pre style='margin:0'>

</pre>