<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/bfaead7c966464ba67834641087d34af38c31880">https://github.com/macports/macports-ports/commit/bfaead7c966464ba67834641087d34af38c31880</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 bfaead7 llvm/clang-8.0: fix build on Leopard
</span>bfaead7 is described below
<span style='display:block; white-space:pre;color:#808000;'>commit bfaead7c966464ba67834641087d34af38c31880
</span>Author: Ken Cunningham <kencu@macports.org>
AuthorDate: Sun Oct 27 21:35:31 2019 -0700
<span style='display:block; white-space:pre;color:#404040;'> llvm/clang-8.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;'> replace a renamed CF function
</span><span style='display:block; white-space:pre;color:#404040;'> add a workable definition for uuid_string_t
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> add a replacement function for posix_memalign on Leopard
</span><span style='display:block; white-space:pre;color:#404040;'> could also disable aligned memory instead, as libcxx is not
</span><span style='display:block; white-space:pre;color:#404040;'> installed with clang-8.0 anyway, so this is just for the build
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> add back the addition of the runtime libs needed on 10.4 and 10.5
</span>---
lang/llvm-8.0/Portfile | 8 ++++
...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(+)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/llvm-8.0/Portfile b/lang/llvm-8.0/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 700bc96..8eab98a 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/llvm-8.0/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/llvm-8.0/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -161,6 +161,9 @@ patchfiles \
</span> 0004-Fix-build-issues-pre-Lion-due-to-missing-a-strnlen-d.patch \
0005-Threading-Only-call-pthread_setname_np-on-SnowLeopar.patch
<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;'>@@ -178,6 +181,11 @@ if {${subport} eq "clang-${llvm_version}"} {
</span> openmp-locations.patch \
patch-libcxx-cmakelists-reenable-10.6.8.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 \
</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><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> # https://llvm.org/bugs/show_bug.cgi?id=25681
if {${worksrcdir} eq "trunk" || ${worksrcdir} eq "release_${llvm_version_no_dot}"} {
# Cannot set cppflags due to https://cmake.org/Bug/view.php?id=12928
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/llvm-8.0/files/5000-patch-llvm8-tools-dsymutil-symbolmap-use-older-cfname-and-fix-uuid-on-leopard.diff b/lang/llvm-8.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-8.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-8.0/files/5001-patch-libcxx-src-new-posix-memalign-leopard.diff b/lang/llvm-8.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-8.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-8.0/files/5002-patch-toolchains-darwin-add-back-pre-10.6-link-libs.diff b/lang/llvm-8.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-8.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>