<pre style='margin:0'>
Jeremy Huddleston Sequoia (jeremyhu) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/d4ee75abe98a37eded19a987ded06b35c8320622">https://github.com/macports/macports-ports/commit/d4ee75abe98a37eded19a987ded06b35c8320622</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit d4ee75abe98a37eded19a987ded06b35c8320622
</span>Author: Jeremy Huddleston Sequoia <jeremyhu@macports.org>
AuthorDate: Mon Jul 23 10:30:57 2018 -0700

<span style='display:block; white-space:pre;color:#404040;'>    clang-4.0: Fix building sanitizer runtimes against SDKs that come with Xcode 10
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@macports.org>
</span>---
 lang/llvm-4.0/Portfile                             |  2 +
 ...ly-Don-t-check-for-the-macosx.internal-SD.patch | 14 ++---
 ...te-function-parameters-with-attribute-noe.patch | 62 ++++++++++++++++++++++
 ...nore-the-DISPATCH_NOESCAPE-if-not-defined.patch | 37 +++++++++++++
 4 files changed, 108 insertions(+), 7 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/llvm-4.0/Portfile b/lang/llvm-4.0/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 599971c..c66e152 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/llvm-4.0/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/llvm-4.0/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -157,6 +157,8 @@ if {${subport} eq "clang-${llvm_version}"} {
</span>         1007-Fix-build-issues-pre-Lion-due-to-missing-a-strnlen-d.patch \
         1008-Fix-float.h-to-work-on-Snow-Leopard-and-earlier.patch \
         2001-MacPorts-Only-Don-t-check-for-the-macosx.internal-SD.patch \
<span style='display:block; white-space:pre;background:#e0ffe0;'>+        2002-tsan-Annotate-function-parameters-with-attribute-noe.patch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        2003-Ignore-the-DISPATCH_NOESCAPE-if-not-defined.patch \
</span>         3001-buildit-build-fix-for-Leopard.patch \
         3002-buildit-Set-compatibility-version-to-RC_ProjectSourc.patch \
         3003-Fix-local-and-iterator-when-building-with-Lion-and-n.patch \
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/llvm-4.0/files/2001-MacPorts-Only-Don-t-check-for-the-macosx.internal-SD.patch b/lang/llvm-4.0/files/2001-MacPorts-Only-Don-t-check-for-the-macosx.internal-SD.patch
</span><span style='display:block; white-space:pre;color:#808080;'>index 28a2df9..24e4281 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/llvm-4.0/files/2001-MacPorts-Only-Don-t-check-for-the-macosx.internal-SD.patch
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/llvm-4.0/files/2001-MacPorts-Only-Don-t-check-for-the-macosx.internal-SD.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,7 +1,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From e3af7250d96fc7fbe2e368db5dcbe26da773a315 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 92f861a5ef15ddc828e8e9a36590a07f2e150656 Mon Sep 17 00:00:00 2001
</span> From: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 Date: Mon, 30 Nov 2015 00:52:14 -0500
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Subject: [PATCH 2001/2002] MacPorts Only: Don't check for the macosx.internal
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 2001/2003] MacPorts Only: Don't check for the macosx.internal
</span>  SDK
 
 https://llvm.org/bugs/show_bug.cgi?id=25677
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -11,10 +11,10 @@ Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
</span>  cmake/Modules/CompilerRTDarwinUtils.cmake | 11 -----------
  1 file changed, 11 deletions(-)
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git llvm_master/projects/compiler-rt/cmake/Modules/CompilerRTDarwinUtils.cmake macports_master/projects/compiler-rt/cmake/Modules/CompilerRTDarwinUtils.cmake
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 28d398672..92a51cfe8 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- llvm_master/projects/compiler-rt/cmake/Modules/CompilerRTDarwinUtils.cmake
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ macports_master/projects/compiler-rt/cmake/Modules/CompilerRTDarwinUtils.cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git llvm_release_40/projects/compiler-rt/cmake/Modules/CompilerRTDarwinUtils.cmake macports_release_40/projects/compiler-rt/cmake/Modules/CompilerRTDarwinUtils.cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 3c89381f9..07accdd9b 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- llvm_release_40/projects/compiler-rt/cmake/Modules/CompilerRTDarwinUtils.cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ macports_release_40/projects/compiler-rt/cmake/Modules/CompilerRTDarwinUtils.cmake
</span> @@ -5,14 +5,6 @@ include(CMakeParseArguments)
  # the current Xcode.
  function(find_darwin_sdk_dir var sdk_name)
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -41,5 +41,5 @@ index 28d398672..92a51cfe8 100644
</span>      set(${var} ${var_internal} PARENT_SCOPE)
    endif()
 -- 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-2.11.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+2.18.0
</span> 
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/llvm-4.0/files/2002-tsan-Annotate-function-parameters-with-attribute-noe.patch b/lang/llvm-4.0/files/2002-tsan-Annotate-function-parameters-with-attribute-noe.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..053fd2b
</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-4.0/files/2002-tsan-Annotate-function-parameters-with-attribute-noe.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,62 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From cdac7de72e9815d90fc6efd5993e2625037d3715 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Akira Hatanaka <ahatanaka@apple.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Thu, 21 Sep 2017 22:16:50 +0000
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 2002/2003] [tsan] Annotate function parameters with attribute
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 'noescape'.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+This commit annotates the block parameters of the following functions
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+declared in compiler-rt with 'noescape':
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- dispatch_sync
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- dispatch_barrier_sync
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- dispatch_once
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- dispatch_apply
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+This is needed to commit the patch that adds support for 'noescape' in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+clang (see https://reviews.llvm.org/D32210) since these functions are
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+annotated with 'noescape' in the SDK header files.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Differential Revision: https://reviews.llvm.org/D32210
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@313929 91177308-0d34-0410-b5e6-96231b3b80d8
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+(cherry picked from commit 0b01c05ec7545697a453b594f3b288e38d4c36cb)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lib/tsan/rtl/tsan_libdispatch_mac.cc | 8 +++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1 file changed, 5 insertions(+), 3 deletions(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git llvm_release_40/projects/compiler-rt/lib/tsan/rtl/tsan_libdispatch_mac.cc macports_release_40/projects/compiler-rt/lib/tsan/rtl/tsan_libdispatch_mac.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index d8c689ebb..1085c836e 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- llvm_release_40/projects/compiler-rt/lib/tsan/rtl/tsan_libdispatch_mac.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ macports_release_40/projects/compiler-rt/lib/tsan/rtl/tsan_libdispatch_mac.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -174,7 +174,8 @@ static void invoke_and_release_block(void *param) {
</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;'>+ #define DISPATCH_INTERCEPT_SYNC_B(name, barrier)                             \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  TSAN_INTERCEPTOR(void, name, dispatch_queue_t q, dispatch_block_t block) { \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  TSAN_INTERCEPTOR(void, name, dispatch_queue_t q,                           \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                   DISPATCH_NOESCAPE dispatch_block_t block) {               \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     SCOPED_TSAN_INTERCEPTOR(name, q, block);                                 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     SCOPED_TSAN_INTERCEPTOR_USER_CALLBACK_START();                           \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     dispatch_block_t heap_block = Block_copy(block);                         \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -264,7 +265,7 @@ TSAN_INTERCEPTOR(void, dispatch_after_f, dispatch_time_t when,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // need to undefine the macro.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #undef dispatch_once
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ TSAN_INTERCEPTOR(void, dispatch_once, dispatch_once_t *predicate,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                 dispatch_block_t block) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                 DISPATCH_NOESCAPE dispatch_block_t block) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   SCOPED_INTERCEPTOR_RAW(dispatch_once, predicate, block);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   atomic_uint32_t *a = reinterpret_cast<atomic_uint32_t *>(predicate);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   u32 v = atomic_load(a, memory_order_acquire);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -474,7 +475,8 @@ TSAN_INTERCEPTOR(void, dispatch_source_set_registration_handler_f,
</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;'>+ TSAN_INTERCEPTOR(void, dispatch_apply, size_t iterations,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                 dispatch_queue_t queue, void (^block)(size_t)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                 dispatch_queue_t queue,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                 DISPATCH_NOESCAPE void (^block)(size_t)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   SCOPED_TSAN_INTERCEPTOR(dispatch_apply, iterations, queue, block);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   void *parent_to_child_sync = nullptr;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-- 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+2.18.0
</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-4.0/files/2003-Ignore-the-DISPATCH_NOESCAPE-if-not-defined.patch b/lang/llvm-4.0/files/2003-Ignore-the-DISPATCH_NOESCAPE-if-not-defined.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..ac40891
</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-4.0/files/2003-Ignore-the-DISPATCH_NOESCAPE-if-not-defined.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,37 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 930db9f07bd1b557a0b81ddb7b80e5cf68e23946 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Yi Kong <yikong@google.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Thu, 28 Dec 2017 23:06:24 +0000
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 2003/2003] Ignore the DISPATCH_NOESCAPE if not defined
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+This macro is only defined after XCode 8, causing build breakage for
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+build systems with prior versions. Ignore DISPATCH_NOESCAPE if not
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+defined.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Differential Revision: https://reviews.llvm.org/D41601
</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;'>+git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@321543 91177308-0d34-0410-b5e6-96231b3b80d8
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+(cherry picked from commit b2e492beb7dee6983578da79ad2b79f102826ed2)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lib/tsan/rtl/tsan_libdispatch_mac.cc | 5 +++++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1 file changed, 5 insertions(+)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git llvm_release_40/projects/compiler-rt/lib/tsan/rtl/tsan_libdispatch_mac.cc macports_release_40/projects/compiler-rt/lib/tsan/rtl/tsan_libdispatch_mac.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 1085c836e..1ff399d4f 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- llvm_release_40/projects/compiler-rt/lib/tsan/rtl/tsan_libdispatch_mac.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ macports_release_40/projects/compiler-rt/lib/tsan/rtl/tsan_libdispatch_mac.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -25,6 +25,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <dispatch/dispatch.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <pthread.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// DISPATCH_NOESCAPE is not defined prior to XCode 8.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifndef DISPATCH_NOESCAPE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define DISPATCH_NOESCAPE
</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;'>+ typedef long long_t;  // NOLINT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ namespace __tsan {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-- 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+2.18.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span></pre><pre style='margin:0'>

</pre>