<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/13e26f108c5487b57c0acb5086e0180fac8d844e">https://github.com/macports/macports-ports/commit/13e26f108c5487b57c0acb5086e0180fac8d844e</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 13e26f1  llvm/clang-9.0: fix build on Leopard
</span>13e26f1 is described below

<span style='display:block; white-space:pre;color:#808000;'>commit 13e26f108c5487b57c0acb5086e0180fac8d844e
</span>Author: Ken Cunningham <kencu@macports.org>
AuthorDate: Thu Oct 31 14:20:01 2019 -0700

<span style='display:block; white-space:pre;color:#404040;'>    llvm/clang-9.0: fix build on Leopard
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    identical fixes to llvm/clang-8.0
</span>---
 lang/llvm-9.0/Portfile                             |  9 +++-
 ...p-use-older-cfname-and-fix-uuid-on-leopard.diff | 23 ++++++++++
 ...atch-libcxx-src-new-posix-memalign-leopard.diff | 53 ++++++++++++++++++++++
 ...lchains-darwin-add-back-pre-10.6-link-libs.diff | 30 ++++++++++++
 4 files changed, 114 insertions(+), 1 deletion(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/llvm-9.0/Portfile b/lang/llvm-9.0/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 74e14e5..7b7eb10 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/llvm-9.0/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/llvm-9.0/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -168,6 +168,9 @@ patchfiles-append \
</span>     5001-patch-machoreader-strnlen.diff \
     5002-patch-objdumper-strnlen.diff
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+# fix build on leopard
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles-append 5000-patch-llvm8-tools-dsymutil-symbolmap-use-older-cfname-and-fix-uuid-on-leopard.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> if {${subport} eq "clang-${llvm_version}"} {
     patchfiles-append \
         1001-MacPorts-Only-Prepare-clang-format-for-replacement-w.patch \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -182,7 +185,11 @@ if {${subport} eq "clang-${llvm_version}"} {
</span>         3001-Fix-missing-long-long-math-prototypes-when-using-the.patch \
         3002-implement-atomic-using-mutex-lock_guard-for-64b-ops-.patch \
         openmp-locations.patch
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # fix build on leopard
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    patchfiles-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        5001-patch-libcxx-src-new-posix-memalign-leopard.diff \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        5002-patch-toolchains-darwin-add-back-pre-10.6-link-libs.diff
</span> 
     # https://llvm.org/bugs/show_bug.cgi?id=25681
     if {${worksrcdir} eq "trunk" || ${worksrcdir} eq "release_${llvm_version_no_dot}"} {
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/llvm-9.0/files/5000-patch-llvm8-tools-dsymutil-symbolmap-use-older-cfname-and-fix-uuid-on-leopard.diff b/lang/llvm-9.0/files/5000-patch-llvm8-tools-dsymutil-symbolmap-use-older-cfname-and-fix-uuid-on-leopard.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..122d21e
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/llvm-9.0/files/5000-patch-llvm8-tools-dsymutil-symbolmap-use-older-cfname-and-fix-uuid-on-leopard.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,23 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/tools/dsymutil/SymbolMap.cpp b/tools/dsymutil/SymbolMap.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index cab9374a..5c2377e4 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/tools/dsymutil/SymbolMap.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/tools/dsymutil/SymbolMap.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -18,8 +18,18 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifdef __APPLE__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <CoreFoundation/CoreFoundation.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <uuid/uuid.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if MAC_OS_X_VERSION_MAX_ALLOWED < 1060
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* declare a missing reference not found in SDK < 10.6 for function called below */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++typedef char * uuid_string_t;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++typedef struct __CFError * CFErrorRef;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define CFPropertyListCreateWithStream(A,B,C,D,E,F) CFPropertyListCreateFromStream(A,B,C,D,E,F)
</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;'>+ #endif
</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;'>+ namespace llvm {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ namespace dsymutil {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/llvm-9.0/files/5001-patch-libcxx-src-new-posix-memalign-leopard.diff b/lang/llvm-9.0/files/5001-patch-libcxx-src-new-posix-memalign-leopard.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..87b5746
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/llvm-9.0/files/5001-patch-libcxx-src-new-posix-memalign-leopard.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,53 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/projects/libcxx/src/new.cpp b/projects/libcxx/src/new.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index cc8383d..ff09580 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/projects/libcxx/src/new.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/projects/libcxx/src/new.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -31,6 +31,48 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # endif
</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;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# if defined(__APPLE__) && (MAC_OS_X_VERSION_MIN_REQUIRED < 1060)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <stdlib.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <errno.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++int posix_memalign(void** pp, size_t alignment, size_t bytes) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  /* if alignment is 0 or not a power of 2 return bad value */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (alignment < sizeof( void *) ||            // excludes 0 == alignment
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      0 != (alignment & (alignment - 1))) {     // relies on sizeof(void *) being a power of two.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return EINVAL;
</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;'>++  void* mem = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (alignment <= 16) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    /* MacOSX always returns memory aligned on
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     * a 16 byte alignment
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    mem = malloc(bytes);
</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;'>++   /* if the caller wants a larger alignment than 16
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    * we give them a page-aligned allotment. This is not as efficient
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    * as an optimized aligned memory implementation, but much
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    * simpler, effective, and requires no changes to the rest of the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    * underlying memory management system.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    mem = valloc(bytes);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (mem == 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return ENOMEM;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    *pp = mem;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return 0;
</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;'>++#endif
</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;'>+ namespace std
</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/lang/llvm-9.0/files/5002-patch-toolchains-darwin-add-back-pre-10.6-link-libs.diff b/lang/llvm-9.0/files/5002-patch-toolchains-darwin-add-back-pre-10.6-link-libs.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..6ea0b00
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/llvm-9.0/files/5002-patch-toolchains-darwin-add-back-pre-10.6-link-libs.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,30 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+kencu@macports.org - add back runtime libraries used on 10.4 and 10.5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+removed in https://github.com/llvm/llvm-project/commit/3434ade2b7ca351b61522f7da4b55070d811b83f
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+related, the following code used to add libclang_rt_10.4.a to Tiger, but this library
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+is no longer built in the runtime library collections. If building for Tiger, it
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+may be required to replace this library at some point.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The line below this, adding "builtins" adds libclang_rt.osx.a, does the second part of this.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+it may be easiest to just add Tiger functions to libclang_rt.osx.a directly
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   // if (isMacosxVersionLT(10, 5))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   //   AddLinkRuntimeLib(Args, CmdArgs, "libclang_rt.10.4.a");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   // else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   //   AddLinkRuntimeLib(Args, CmdArgs, "libclang_rt.osx.a");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/tools/clang/lib/Driver/ToolChains/Darwin.cpp b/tools/clang/lib/Driver/ToolChains/Darwin.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index bea877ae9..26f1ad714 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/tools/clang/lib/Driver/ToolChains/Darwin.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/tools/clang/lib/Driver/ToolChains/Darwin.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1140,6 +1140,12 @@ void DarwinClang::AddLinkRuntimeLibArgs(const ArgList &Args,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         getTriple().getArch() != llvm::Triple::aarch64)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       CmdArgs.push_back("-lgcc_s.1");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (isTargetMacOS()) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if (isMacosxVersionLT(10, 5))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      CmdArgs.push_back("-lgcc_s.10.4");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    else if (isMacosxVersionLT(10, 6))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      CmdArgs.push_back("-lgcc_s.10.5");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   AddLinkRuntimeLib(Args, CmdArgs, "builtins");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span></pre><pre style='margin:0'>

</pre>