<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/49bd2ee7c1e54f290cb6fe07a084de8a2abddb66">https://github.com/macports/macports-ports/commit/49bd2ee7c1e54f290cb6fe07a084de8a2abddb66</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 49bd2ee7c1e54f290cb6fe07a084de8a2abddb66
</span>Author: Jeremy Huddleston Sequoia <jeremyhu@macports.org>
AuthorDate: Thu Jan 19 21:59:11 2017 -0800

<span style='display:block; white-space:pre;color:#404040;'>    llvm-4.0: New port (based on existing llvm-devel pre-branch revision)
</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>---
 devel/cctools/Portfile                             |   2 +-
 devel/ld64/Portfile                                |   2 +-
 lang/llvm-3.4/Portfile                             |   2 +-
 lang/llvm-3.5/Portfile                             |   2 +-
 lang/llvm-3.6/Portfile                             |   2 +-
 lang/llvm-3.7/Portfile                             |   2 +-
 lang/llvm-3.8/Portfile                             |   2 +-
 lang/llvm-3.9/Portfile                             |   2 +-
 lang/{llvm-3.9 => llvm-4.0}/Portfile               | 250 +++++++++++-----
 ...h-O-CPU-Subtype-to-ppc7400-when-targeting.patch |  55 ++++
 ...MASK_CRASH-and-MACH_EXCEPTION_CODES-if-th.patch |  36 +++
 ...ly-Don-t-embed-the-deployment-target-in-t.patch |  29 ++
 ...ssues-pre-Lion-due-to-missing-a-strnlen-d.patch |  96 +++++++
 ...Only-Helper-script-for-generating-patches.patch |  30 ++
 ...ly-Prepare-clang-format-for-replacement-w.patch |  84 ++++++
 ...ly-Fix-name-of-scan-view-executable-insid.patch |  29 ++
 .../1003-Default-to-ppc7400-for-OSX-10.5.patch     |  26 ++
 ...etpriority-PRIO_DARWIN_THREAD-0-PRIO_DARW.patch |  29 ++
 ...fragile-ObjC-runtime-when-targeting-darwi.patch |  31 ++
 ...dc-header-search-paths-for-older-versions.patch |  41 +++
 ...ssues-pre-Lion-due-to-missing-a-strnlen-d.patch |  42 +++
 ...ly-Don-t-check-for-the-macosx.internal-SD.patch |  45 +++
 ...-for-cpu-types-and-subtypes-that-might-be.patch |  41 +++
 .../files/3001-buildit-build-fix-for-Leopard.patch |  35 +++
 ...-compatibility-version-to-RC_ProjectSourc.patch |  28 ++
 ...nd-iterator-when-building-with-Lion-and-n.patch |  45 +++
 ...-long-long-math-prototypes-when-using-the.patch |  51 ++++
 ...tomic-using-mutex-lock_guard-for-64b-ops-.patch | 316 +++++++++++++++++++++
 ...https-llvm.org-bugs-show_bug.cgi-id-31433.patch |  30 ++
 .../files/4002-Fix-build-on-Mountain-Lion.patch    |  41 +++
 lang/llvm-4.0/files/9001-macports-libstdcxx.diff   | 125 ++++++++
 lang/llvm-4.0/files/leopard-no-asan.patch          |  12 +
 lang/llvm-4.0/files/leopard-no-blocks.patch        |  26 ++
 lang/llvm-4.0/files/llvm-bin                       |   2 +
 lang/llvm-4.0/files/mp-clang-4.0                   |  34 +++
 lang/llvm-4.0/files/mp-llvm-4.0                    |  60 ++++
 lang/llvm-4.0/files/openmp-locations.patch         |  53 ++++
 37 files changed, 1660 insertions(+), 78 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 79b2ac5..49193de 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;'>@@ -53,7 +53,7 @@ if {${os.major} < 12} {
</span> if {${os.major} < 14} {
     lappend all_llvm_variants llvm37
 }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-array set llvm_variant_version {llvm34 3.4 llvm37 3.7 llvm39 3.9 llvmdev devel}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+array set llvm_variant_version {llvm34 3.4 llvm37 3.7 llvm39 3.9 llvm40 4.0 llvmdev devel}
</span> set llvm_version {}
 
 foreach variantname $all_llvm_variants {
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/ld64/Portfile b/devel/ld64/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 64d956f..b420385 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/devel/ld64/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/ld64/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -253,7 +253,7 @@ if {${subport} eq ${name}} {
</span>     if {${os.major} < 14} {
         lappend all_llvm_variants llvm37
     }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    array set llvm_variant_version {llvm33 3.3 llvm34 3.4 llvm37 3.7 llvm39 3.9 llvmdev devel}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    array set llvm_variant_version {llvm33 3.3 llvm34 3.4 llvm37 3.7 llvm39 3.9 llvm40 4.0 llvmdev devel}
</span>     set llvm_version {}
 
     foreach variantname $all_llvm_variants {
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/llvm-3.4/Portfile b/lang/llvm-3.4/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 5ac7479..00afbcf 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/llvm-3.4/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/llvm-3.4/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -214,7 +214,7 @@ variant assertions description "Enable assertions for error detection (has perfo
</span> 
 # blacklist current and future versions if they're not available in order to
 # help break potential dependency cycles.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-foreach ver {3.4 3.5 3.6 3.7 3.8 3.9 devel} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+foreach ver {3.4 3.5 3.6 3.7 3.8 3.9 4.0 devel} {
</span>     if {![file exists ${prefix}/bin/clang-mp-${ver}]} {
         compiler.blacklist-append macports-clang-${ver}
     }
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/llvm-3.5/Portfile b/lang/llvm-3.5/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index e7c9eef..29ef35e 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/llvm-3.5/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/llvm-3.5/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -200,7 +200,7 @@ compiler.blacklist *gcc* {clang < 425.0.24}
</span> 
 # blacklist current and future versions if they're not available in order to
 # help break potential dependency cycles.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-foreach ver {3.5 3.6 3.7 3.8 3.9 devel} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+foreach ver {3.5 3.6 3.7 3.8 3.9 4.0 devel} {
</span>     if {![file exists ${prefix}/bin/clang-mp-${ver}]} {
         compiler.blacklist-append macports-clang-${ver}
     }
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/llvm-3.6/Portfile b/lang/llvm-3.6/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 7edcf3f..54ab50b 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/llvm-3.6/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/llvm-3.6/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -189,7 +189,7 @@ compiler.blacklist *gcc* {clang < 425.0.24}
</span> 
 # blacklist current and future versions if they're not available in order to
 # help break potential dependency cycles.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-foreach ver {3.6 3.7 3.8 3.9 devel} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+foreach ver {3.6 3.7 3.8 3.9 4.0 devel} {
</span>     if {![file exists ${prefix}/bin/clang-mp-${ver}]} {
         compiler.blacklist-append macports-clang-${ver}
     }
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/llvm-3.7/Portfile b/lang/llvm-3.7/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index cffb1c4..27387e7 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/llvm-3.7/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/llvm-3.7/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -193,7 +193,7 @@ compiler.blacklist *gcc* {clang < 500}
</span> 
 # blacklist current and future versions if they're not available in order to
 # help break potential dependency cycles.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-foreach ver {3.7 3.8 3.9 devel} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+foreach ver {3.7 3.8 3.9 4.0 devel} {
</span>     if {![file exists ${prefix}/bin/clang-mp-${ver}]} {
         compiler.blacklist-append macports-clang-${ver}
     }
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/llvm-3.8/Portfile b/lang/llvm-3.8/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index b84664c..2a30a74 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/llvm-3.8/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/llvm-3.8/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -255,7 +255,7 @@ if {${subport} eq "clang-${llvm_version}"} {
</span> 
 # blacklist current and future versions if they're not available in order to
 # help break potential dependency cycles.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-foreach ver {3.8 3.9 devel} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+foreach ver {3.8 3.9 4.0 devel} {
</span>     if {![file exists ${prefix}/bin/clang-mp-${ver}]} {
         compiler.blacklist-append macports-clang-${ver}
     }
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/llvm-3.9/Portfile b/lang/llvm-3.9/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 4126a43..c0871d7 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/llvm-3.9/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/llvm-3.9/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -249,7 +249,7 @@ if {${subport} eq "clang-${llvm_version}"} {
</span> 
 # blacklist current and future versions if they're not available in order to
 # help break potential dependency cycles.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-foreach ver {3.9 devel} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+foreach ver {3.9 4.0 devel} {
</span>     if {![file exists ${prefix}/bin/clang-mp-${ver}]} {
         compiler.blacklist-append macports-clang-${ver}
     }
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/llvm-3.9/Portfile b/lang/llvm-4.0/Portfile
</span>similarity index 64%
copy from lang/llvm-3.9/Portfile
copy to lang/llvm-4.0/Portfile
<span style='display:block; white-space:pre;color:#808080;'>index 4126a43..281f2d3 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/llvm-3.9/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;'>@@ -1,5 +1,5 @@
</span> # TODO:
<span style='display:block; white-space:pre;background:#ffe0e0;'>-#  * Update clang subport to build against installed llvm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#  * Update clang and lldb subports to build against installed libLLVM/libclang
</span> 
 PortSystem              1.0
 PortGroup select        1.0
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -7,11 +7,14 @@ PortGroup compiler_blacklist_versions 1.0
</span> PortGroup active_variants 1.1
 PortGroup cmake         1.0
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-set llvm_version        3.9
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set llvm_version_no_dot 39
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set llvm_version        4.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set llvm_version_no_dot 4.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set clang_executable_version 4.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set lldb_executable_version 4.0.0
</span> name                    llvm-${llvm_version}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-revision                2
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-subport                 clang-${llvm_version} { revision 3 }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision                0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+subport                 clang-${llvm_version} {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+subport                 lldb-${llvm_version} {}
</span> set suffix              mp-${llvm_version}
 set sub_prefix          ${prefix}/libexec/llvm-${llvm_version}
 dist_subdir             llvm
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -48,7 +51,7 @@ if {${subport} eq "llvm-${llvm_version}"} {
</span> 
     depends_lib         port:libxml2 port:libomp port:llvm-${llvm_version} port:python27
     depends_run         port:clang_select port:ld64
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    depends_skip_archcheck-append ld64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    depends_skip_archcheck-append ld64 subversion
</span> 
     # Clang doesn't actually use any of these, but the LLVM makefile
     # system overlinks its binaries. Remove (or convert to build deps?)
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -63,29 +66,44 @@ if {${subport} eq "llvm-${llvm_version}"} {
</span>     }
 
     default_variants    +analyzer
<span style='display:block; white-space:pre;background:#e0ffe0;'>+} elseif {${subport} eq "lldb-${llvm_version}"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    homepage            http://lldb.llvm.org/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    description         the LLVM debugger
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    long_description    Lldb is the "LLVM native" debugger.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    depends_lib         port:libxml2 port:libomp port:llvm-${llvm_version} port:python27 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        port:ncurses
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    depends_build-append port:swig-python port:doxygen
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # Clang doesn't actually use any of these, but the LLVM makefile
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # system overlinks its binaries. Remove (or convert to build deps?)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # after #46040 is resolved.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    depends_lib-append  port:libedit port:libffi port:ncurses port:zlib
</span> }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-#fetch.type              svn
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#svn.revision            279141
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+fetch.type              svn
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+svn.revision            290074
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+depends_extract-append  port:subversion
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-#set compiler_rt_rev     ${svn.revision}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#set libcxx_rev          ${svn.revision}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#set clang-modernize_rev ${svn.revision}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#version                 ${llvm_version}-r${svn.revision}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#worksrcdir              trunk
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#svn.url                 https://llvm.org/svn/llvm-project/llvm/trunk
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set compiler_rt_rev     ${svn.revision}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set libcxx_rev          ${svn.revision}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set clang-modernize_rev ${svn.revision}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+version                 ${llvm_version}-r${svn.revision}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+worksrcdir              trunk
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+svn.url                 https://llvm.org/svn/llvm-project/llvm/trunk
</span> #worksrcdir              release_${llvm_version_no_dot}
 #svn.url                 https://llvm.org/svn/llvm-project/llvm/branches/release_${llvm_version_no_dot}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-#default_variants-append +assertions
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#default_variants-append +debug
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default_variants-append +assertions
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default_variants-append +debug
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-version                 ${llvm_version}.1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-epoch                   1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-master_sites            http://llvm.org/releases/${version}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-use_xz                  yes
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-extract.suffix          .tar.xz
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-distfiles               llvm-${version}.src${extract.suffix}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-worksrcdir              llvm-${version}.src
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#version                 ${llvm_version}.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#epoch                   1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#master_sites            http://llvm.org/releases/${version}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#use_xz                  yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#extract.suffix          .tar.xz
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#distfiles               llvm-${version}.src${extract.suffix}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#worksrcdir              llvm-${version}.src
</span> 
 if {${distfiles} ne ""} {
     if {${subport} eq "llvm-${llvm_version}"} {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -94,38 +112,17 @@ if {${distfiles} ne ""} {
</span>         }
     } elseif {${subport} eq "clang-${llvm_version}"} {
         distfiles-append     cfe-${version}.src${extract.suffix} compiler-rt-${version}.src${extract.suffix} libcxx-${version}.src${extract.suffix} clang-tools-extra-${version}.src${extract.suffix}
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    } elseif {${subport} eq "lldb-${llvm_version}"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        distfiles-append     cfe-${version}.src${extract.suffix} lldb-${version}.src${extract.suffix}
</span>     }
 }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-checksums           llvm-3.9.1.src.tar.xz \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    rmd160  b0a3c68cfec83a2b4dad6922316b71c0dc25c40a \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    sha256  1fd90354b9cf19232e8f168faf2220e79be555df3aa743242700879e8fd329ee \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    cfe-3.9.1.src.tar.xz \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    rmd160  51930c2d55eacd44df28b49a84565771c94f418e \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    sha256  e6c4cebb96dee827fa0470af313dff265af391cb6da8d429842ef208c8f25e63 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    compiler-rt-3.9.1.src.tar.xz \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    rmd160  15cb816616a09d83f76b65f4443884af475b4437 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    sha256  d30967b1a5fa51a2503474aacc913e69fd05ae862d37bf310088955bdb13ec99 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    libcxx-3.9.1.src.tar.xz \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    rmd160  43bcf879f60763425f5d296f4fa5ac0b9a0779f6 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    sha256  25e615e428f60e651ed09ffd79e563864e3f4bc69a9e93ee41505c419d1a7461 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    clang-tools-extra-3.9.1.src.tar.xz \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    rmd160  d3293699daafa69aaa062f47de4903ac8445d01a \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    sha256  29a5b65bdeff7767782d4427c7c64d54c3a8684bc6b217b74a70e575e4813635 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    polly-3.9.1.src.tar.xz \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    rmd160  4d4109afd1f5b090301134dbba7dfd66a25a2bc3 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    sha256  9ba5e61fc7bf8c7435f64e2629e0810c9b1d1b03aa5b5605b780d0e177b4cb46
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> patch.pre_args  -p1
 patchfiles \
     0001-Set-the-Mach-O-CPU-Subtype-to-ppc7400-when-targeting.patch \
     0002-Define-EXC_MASK_CRASH-and-MACH_EXCEPTION_CODES-if-th.patch \
     0003-MacPorts-Only-Don-t-embed-the-deployment-target-in-t.patch \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    0004-CMake-Use-CMake-s-default-RPATH-for-the-unit-tests.patch \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    0005-CMake-Fix-rpath-construction-for-out-of-tree-builds.patch \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    0006-CMake-Make-CMAKE_INSTALL_RPATH-work-again.patch \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    0007-CMake-Fix-llvm_setup_rpath-function.patch \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    0008-Fix-build-issues-pre-Lion-due-to-missing-a-strnlen-d.patch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    0004-Fix-build-issues-pre-Lion-due-to-missing-a-strnlen-d.patch
</span> 
 if {${subport} eq "clang-${llvm_version}"} {
     patchfiles-append \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -136,20 +133,40 @@ if {${subport} eq "clang-${llvm_version}"} {
</span>         1005-Default-to-fragile-ObjC-runtime-when-targeting-darwi.patch \
         1006-Fixup-libstdc-header-search-paths-for-older-versions.patch \
         1007-Fix-build-issues-pre-Lion-due-to-missing-a-strnlen-d.patch \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        1008-Sema-Don-t-diagnose-an-array-type-mismatch-when-the-.patch \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        2001-MacPorts-Only-Comment-out-SL-cctools-workaround.patch \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        2002-Update-CheckArches-to-fallback-on-Intel-ppc-if-ld-v-.patch \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        2003-Fall-back-on-xcodebuild-sdk-when-xcrun-sdk-is-not-su.patch \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        2004-On-darwin-build-ppc-slices-of-the-compiler-runtime-i.patch \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        2005-MacPorts-Only-Don-t-build-x86_64h-slice-of-compiler-.patch \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        2006-MacPorts-Only-Fix-regression-introduced-when-fixing-.patch \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        2007-MacPorts-Only-Don-t-check-for-the-macosx.internal-SD.patch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        2001-MacPorts-Only-Don-t-check-for-the-macosx.internal-SD.patch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        2002-Add-defines-for-cpu-types-and-subtypes-that-might-be.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 \
         3004-Fix-missing-long-long-math-prototypes-when-using-the.patch \
         3005-implement-atomic-using-mutex-lock_guard-for-64b-ops-.patch \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        compiler_rt-toolchain.patch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        openmp-locations.patch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # https://llvm.org/bugs/show_bug.cgi?id=25681
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {${worksrcdir} eq "trunk" || ${worksrcdir} eq "release_${llvm_version_no_dot}"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # Cannot set cppflags due to https://cmake.org/Bug/view.php?id=12928
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # Cannot set cxxflags due to https://llvm.org/bugs/show_bug.cgi?id=25904
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        #configure.cxxflags-append -DSVN_REVISION='"${svn.revision}"'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        post-patch {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            reinplace "1 i \\                             
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                #define SVN_REVISION \"${svn.revision}\"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            " ${worksrcpath}/tools/clang/lib/Basic/Version.cpp
</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;'>+if {${subport} eq "lldb-${llvm_version}"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # lldb needs the clang sources present, so we apply the applicable patches.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    patchfiles-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        1001-MacPorts-Only-Prepare-clang-format-for-replacement-w.patch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        1002-MacPorts-Only-Fix-name-of-scan-view-executable-insid.patch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        1003-Default-to-ppc7400-for-OSX-10.5.patch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        1004-Only-call-setpriority-PRIO_DARWIN_THREAD-0-PRIO_DARW.patch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        1005-Default-to-fragile-ObjC-runtime-when-targeting-darwi.patch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        1006-Fixup-libstdc-header-search-paths-for-older-versions.patch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        1007-Fix-build-issues-pre-Lion-due-to-missing-a-strnlen-d.patch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        4001-https-llvm.org-bugs-show_bug.cgi-id-31433.patch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        4002-Fix-build-on-Mountain-Lion.patch \
</span>         openmp-locations.patch
 
     # https://llvm.org/bugs/show_bug.cgi?id=25681
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -170,7 +187,7 @@ configure.post_args         ../${worksrcdir}
</span> default configure.dir       {${workpath}/build}
 default build.dir           {${workpath}/build}
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-cmake.install_prefix        ${sub_prefix}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+cmake.install_prefix ${sub_prefix}
</span> 
 # Adjust this once cmake-1.0.tcl is fixed:
 #     https://github.com/macports/macports-ports/pull/103
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -232,12 +249,27 @@ if {${subport} eq "llvm-${llvm_version}"} {
</span>         configure.args-append \
             -DCOMPILER_RT_BUILD_SANITIZERS=OFF
     }
<span style='display:block; white-space:pre;background:#e0ffe0;'>+} elseif {${subport} eq "lldb-${llvm_version}"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    #select.group        lldb
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    #select.file         ${filespath}/mp-${subport}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.args-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        -DLLDB_CODESIGN_IDENTITY=- \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        -DCLANG_ENABLE_ARCMT=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        -DCLANG_INCLUDE_TESTS=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        -DCLANG_ENABLE_STATIC_ANALYZER=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        -DLLVM_BUILD_RUNTIME=ON \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        -DLIBCXX_ENABLE_SHARED=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        -DLIBCXX_INSTALL_LIBRARY=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        -DPYTHON_EXECUTABLE=${prefix}/bin/python2.7 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        -DPYTHON_INCLUDE_DIR=${prefix}/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7
</span> }
 
 # llvm-3.5 and later requires a C++11 runtime
 # XCode 4.3's clang (318.x) fails per https://trac.macports.org/ticket/44161
 # XCode 4.5's clang (421.11.66) fails due to http://llvm.org/bugs/show_bug.cgi?id=20184
 # Xcode 4.6.3's clang (425.0.28) fails due to http://trac.macports.org/ticket/46897
<span style='display:block; white-space:pre;background:#e0ffe0;'>+# Xcode 4.6.3's clang (425.0.28) fails due to https://llvm.org/bugs/show_bug.cgi?id=30384
</span> # Xcode 5.1's clang (clang-503.0.40) has codegen issues (resulting compiler crashes)
 # Xcode 6.2's clang (600.0.57) fails due to https://llvm.org/bugs/show_bug.cgi?id=25753
 compiler.blacklist *gcc* {clang < 602}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -249,7 +281,7 @@ if {${subport} eq "clang-${llvm_version}"} {
</span> 
 # blacklist current and future versions if they're not available in order to
 # help break potential dependency cycles.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-foreach ver {3.9 devel} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+foreach ver {4.0 devel} {
</span>     if {![file exists ${prefix}/bin/clang-mp-${ver}]} {
         compiler.blacklist-append macports-clang-${ver}
     }
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -318,36 +350,62 @@ platform darwin {
</span>     configure.cxxflags-append -std=c++11
 }
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+pre-fetch {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {${subport} eq "lldb-${llvm_version}"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {${os.platform} eq "darwin" && ${os.major} < 11} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            depends_build
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            depends_lib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            depends_run
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            archive_sites
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            pre-fetch {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                ui_error "${subport} is not supported on OS X Snow Leopard and earlier.  It requires libxpc."
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                return -code error {unsupported platform}
</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;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> post-extract {
     # Get HTTP proxy arguments if required, assuming we can use the same proxy for all repositories
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    set proxy_args [portfetch::svn_proxy_args http://llvm.org/svn/llvm-project/cfe/trunk]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set proxy_args [portfetch::svn_proxy_args https://llvm.org/svn/llvm-project/cfe/trunk]
</span>     if {${subport} eq "llvm-${llvm_version}"} {
         if {[variant_isset polly]} {
             if {${worksrcdir} eq "trunk"} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                system -W ${worksrcpath}/tools "svn ${proxy_args} co -r ${svn.revision} http://llvm.org/svn/llvm-project/polly/trunk polly"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                system -W ${worksrcpath}/tools "svn ${proxy_args} co -r ${svn.revision} https://llvm.org/svn/llvm-project/polly/trunk polly"
</span>             } elseif {${worksrcdir} eq "release_${llvm_version_no_dot}" } {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                system -W ${worksrcpath}/tools "svn ${proxy_args} co -r ${svn.revision} http://llvm.org/svn/llvm-project/polly/branches/release_${llvm_version_no_dot} polly"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                system -W ${worksrcpath}/tools "svn ${proxy_args} co -r ${svn.revision} https://llvm.org/svn/llvm-project/polly/branches/release_${llvm_version_no_dot} polly"
</span>             } else {
                 file rename ${workpath}/polly-${version}.src ${worksrcpath}/tools/polly
             }
         }
     } elseif {${subport} eq "clang-${llvm_version}"} {
         if {${worksrcdir} eq "trunk"} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            system -W ${worksrcpath}/tools "svn ${proxy_args} co -r ${svn.revision} http://llvm.org/svn/llvm-project/cfe/trunk clang"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            system -W ${worksrcpath}/projects "svn ${proxy_args} co -r ${compiler_rt_rev} http://llvm.org/svn/llvm-project/compiler-rt/trunk compiler-rt"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            system -W ${worksrcpath}/projects "svn ${proxy_args} co -r ${libcxx_rev} http://llvm.org/svn/llvm-project/libcxx/trunk libcxx"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            system -W ${worksrcpath}/tools/clang/tools "svn ${proxy_args} co -r ${clang-modernize_rev} http://llvm.org/svn/llvm-project/clang-tools-extra/trunk extra"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            system -W ${worksrcpath}/tools "svn ${proxy_args} co -r ${svn.revision} https://llvm.org/svn/llvm-project/cfe/trunk clang"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            system -W ${worksrcpath}/projects "svn ${proxy_args} co -r ${compiler_rt_rev} https://llvm.org/svn/llvm-project/compiler-rt/trunk compiler-rt"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            system -W ${worksrcpath}/projects "svn ${proxy_args} co -r ${libcxx_rev} https://llvm.org/svn/llvm-project/libcxx/trunk libcxx"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            system -W ${worksrcpath}/tools/clang/tools "svn ${proxy_args} co -r ${clang-modernize_rev} https://llvm.org/svn/llvm-project/clang-tools-extra/trunk extra"
</span>         } elseif {${worksrcdir} eq "release_${llvm_version_no_dot}" } {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            system -W ${worksrcpath}/tools "svn ${proxy_args} co -r ${svn.revision} http://llvm.org/svn/llvm-project/cfe/branches/release_${llvm_version_no_dot} clang"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            system -W ${worksrcpath}/projects "svn ${proxy_args} co -r ${compiler_rt_rev} http://llvm.org/svn/llvm-project/compiler-rt/branches/release_${llvm_version_no_dot} compiler-rt"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            system -W ${worksrcpath}/projects "svn ${proxy_args} co -r ${libcxx_rev} http://llvm.org/svn/llvm-project/libcxx/branches/release_${llvm_version_no_dot} libcxx"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            system -W ${worksrcpath}/tools/clang/tools "svn ${proxy_args} co -r ${clang-modernize_rev} http://llvm.org/svn/llvm-project/clang-tools-extra/branches/release_${llvm_version_no_dot} extra"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            system -W ${worksrcpath}/tools "svn ${proxy_args} co -r ${svn.revision} https://llvm.org/svn/llvm-project/cfe/branches/release_${llvm_version_no_dot} clang"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            system -W ${worksrcpath}/projects "svn ${proxy_args} co -r ${compiler_rt_rev} https://llvm.org/svn/llvm-project/compiler-rt/branches/release_${llvm_version_no_dot} compiler-rt"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            system -W ${worksrcpath}/projects "svn ${proxy_args} co -r ${libcxx_rev} https://llvm.org/svn/llvm-project/libcxx/branches/release_${llvm_version_no_dot} libcxx"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            system -W ${worksrcpath}/tools/clang/tools "svn ${proxy_args} co -r ${clang-modernize_rev} https://llvm.org/svn/llvm-project/clang-tools-extra/branches/release_${llvm_version_no_dot} extra"
</span>         } else {
             file rename ${workpath}/cfe-${version}.src ${worksrcpath}/tools/clang
             file rename ${workpath}/compiler-rt-${version}.src ${worksrcpath}/projects/compiler-rt
             file rename ${workpath}/libcxx-${version}.src ${worksrcpath}/projects/libcxx
             file rename ${workpath}/clang-tools-extra-${version}.src ${worksrcpath}/tools/clang/tools/extra
         }
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    } elseif {${subport} eq "lldb-${llvm_version}"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {${worksrcdir} eq "trunk"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            system -W ${worksrcpath}/tools "svn ${proxy_args} co -r ${svn.revision} https://llvm.org/svn/llvm-project/cfe/trunk clang"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            system -W ${worksrcpath}/tools "svn ${proxy_args} co -r ${svn.revision} https://llvm.org/svn/llvm-project/lldb/trunk lldb"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        } elseif {${worksrcdir} eq "release_${llvm_version_no_dot}" } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            system -W ${worksrcpath}/tools "svn ${proxy_args} co -r ${svn.revision} https://llvm.org/svn/llvm-project/cfe/branches/release_${llvm_version_no_dot} clang"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            system -W ${worksrcpath}/tools "svn ${proxy_args} co -r ${svn.revision} https://llvm.org/svn/llvm-project/lldb/branches/release_${llvm_version_no_dot} lldb"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            file rename ${workpath}/cfe-${version}.src ${worksrcpath}/tools/clang
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            file rename ${workpath}/lldb-${version}.src ${worksrcpath}/tools/lldb
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span>     }
 }
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -358,7 +416,41 @@ if {${subport} eq "clang-${llvm_version}"} {
</span>         system "cd ${destroot.dir}/projects/libcxx && ${destroot.cmd} ${destroot.pre_args} ${destroot.target} ${destroot.post_args}"
 
         delete ${destroot}${sub_prefix}/bin/clang
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        file rename ${destroot}${sub_prefix}/bin/clang-${llvm_version} ${destroot}${sub_prefix}/bin/clang
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        file rename ${destroot}${sub_prefix}/bin/clang-${clang_executable_version} ${destroot}${sub_prefix}/bin/clang
</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;'>+if {${subport} eq "lldb-${llvm_version}"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    post-patch {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        reinplace "s|@@PREFIX@@|${prefix}|" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            ${worksrcpath}/tools/clang/lib/Driver/Tools.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        reinplace "s|@CLANG_FORMAT_PATH@|${prefix}/bin/clang-format-${suffix}|g" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            ${worksrcpath}/tools/clang/tools/clang-format/clang-format-bbedit.applescript \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            ${worksrcpath}/tools/clang/tools/clang-format/clang-format-diff.py            \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            ${worksrcpath}/tools/clang/tools/clang-format/clang-format-sublime.py         \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            ${worksrcpath}/tools/clang/tools/clang-format/clang-format.el                 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            ${worksrcpath}/tools/clang/tools/clang-format/clang-format.py
</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;'>+    build.dir   ${build.dir}/tools/lldb
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    post-destroot {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        foreach bin {lldb lldb-mi lldb-server} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            delete ${destroot}${sub_prefix}/bin/${bin}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            file rename ${destroot}${sub_prefix}/bin/${bin}-${lldb_executable_version} ${destroot}${sub_prefix}/bin/${bin}
</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;'>+        xinstall -m 755 -d ${destroot}${prefix}/share/doc/lldb-${llvm_version}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        xinstall -m 644 ${worksrcpath}/tools/lldb/docs/code-signing.txt ${destroot}${prefix}/share/doc/lldb-${llvm_version}/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    post-activate {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ui_msg "Please follow the instructions in ${prefix}/lldb-${llvm_version}/code-signing.txt and then codesign the debugserver with:"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {${os.major} >= 13} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            ui_msg "   sudo codesign --force --deep --preserve-metadata=identifier,entitlements,resource-rules,requirements,flags,team-identifier --sign <identity> ${sub_prefix}/bin/debugserver"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            ui_msg "   sudo codesign --force --deep --preserve-metadata=identifier,entitlements,resource-rules,requirements --sign <identity> ${sub_prefix}/bin/debugserver"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span>     }
 }
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -387,6 +479,8 @@ post-destroot {
</span> 
         # http://trac.macports.org/ticket/33207
         ln -s ${prefix}/libexec/ld64/ld ${destroot}${sub_prefix}/bin/ld
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    } elseif {${subport} eq "lldb-${llvm_version}"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        delete ${destroot}${prefix}/bin/debugserver-${suffix}
</span>     }
 }
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -431,6 +525,22 @@ if {${subport} eq "llvm-${llvm_version}"} {
</span>         }
     }
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    variant libstdcxx description {-stdlib=macports-libstdc++ searches for MacPorts libstdc++} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        depends_lib-append port:gcc6
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        patchfiles-append 9001-macports-libstdcxx.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        post-patch {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            reinplace "s|@@MACPORTS_GCC_INCLUDE_DIR@@|${prefix}/include/gcc6/c++|g" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                ${worksrcpath}/tools/clang/lib/Frontend/InitHeaderSearch.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            reinplace "s|@@MACPORTS_HOST_NAME@@|${build_arch}-apple-darwin${os.major}|g" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                ${worksrcpath}/tools/clang/lib/Frontend/InitHeaderSearch.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            reinplace "s|@@MACPORTS_libstdc++@@|${prefix}/lib/libgcc/libstdc++.6.dylib|g" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                ${worksrcpath}/tools/clang/lib/Driver/ToolChains.cpp
</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;'>+    #default_variants +libstdcxx
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span>     post-patch {
         reinplace "s|@@PREFIX@@|${prefix}|" \
             ${worksrcpath}/tools/clang/lib/Driver/Tools.cpp
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/llvm-4.0/files/0001-Set-the-Mach-O-CPU-Subtype-to-ppc7400-when-targeting.patch b/lang/llvm-4.0/files/0001-Set-the-Mach-O-CPU-Subtype-to-ppc7400-when-targeting.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..2ac6966
</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/0001-Set-the-Mach-O-CPU-Subtype-to-ppc7400-when-targeting.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,55 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From a0c10070b02b587bc667059b2418d1561000d3cd Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Sat, 17 Jan 2015 09:03:43 -0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 1/4] Set the Mach-O CPU Subtype to ppc7400 when targeting
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Leopard
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+http://llvm.org/bugs/show_bug.cgi?id=18463
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp | 13 ++++++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1 file changed, 10 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_master/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp macports_master/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 5847b3a52bf..8ada8541744 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- llvm_master/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ macports_master/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -201,16 +201,23 @@ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // FIXME: This should be in a separate file.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ namespace {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   class DarwinPPCAsmBackend : public PPCAsmBackend {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    Triple TheTriple;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    DarwinPPCAsmBackend(const Target &T) : PPCAsmBackend(T, false) { }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    DarwinPPCAsmBackend(const Target &T, const Triple &TT) : PPCAsmBackend(T, false), TheTriple(TT) { }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     MCObjectWriter *createObjectWriter(raw_pwrite_stream &OS) const override {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       bool is64 = getPointerSize() == 8;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      MachO::CPUSubTypePowerPC CS = MachO::CPU_SUBTYPE_POWERPC_ALL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      if (TheTriple.isOSDarwin() && !TheTriple.isMacOSXVersionLT(10,5)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          CS = MachO::CPU_SUBTYPE_POWERPC_7400;
</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;'>+       return createPPCMachObjectWriter(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           OS,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           /*Is64Bit=*/is64,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           (is64 ? MachO::CPU_TYPE_POWERPC64 : MachO::CPU_TYPE_POWERPC),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          MachO::CPU_SUBTYPE_POWERPC_ALL);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          CS);
</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;'>+@@ -233,7 +240,7 @@ MCAsmBackend *llvm::createPPCAsmBackend(const Target &T,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                         const Triple &TT, StringRef CPU,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                         const MCTargetOptions &Options) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (TT.isOSDarwin())
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    return new DarwinPPCAsmBackend(T);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return new DarwinPPCAsmBackend(T, TT);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   uint8_t OSABI = MCELFObjectTargetWriter::getOSABI(TT.getOS());
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   bool IsLittleEndian = TT.getArch() == Triple::ppc64le;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-- 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+2.11.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/0002-Define-EXC_MASK_CRASH-and-MACH_EXCEPTION_CODES-if-th.patch b/lang/llvm-4.0/files/0002-Define-EXC_MASK_CRASH-and-MACH_EXCEPTION_CODES-if-th.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..14befa3
</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/0002-Define-EXC_MASK_CRASH-and-MACH_EXCEPTION_CODES-if-th.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,36 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From b8098da2d225e031a92e8bd9d85261415aed5f93 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Sun, 18 Jan 2015 11:18:13 -0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 2/4] Define EXC_MASK_CRASH and MACH_EXCEPTION_CODES if they're
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ not defined in the SDK
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The 10.4 SDK does not define these macros
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lib/Support/Unix/Signals.inc | 9 +++++++++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1 file changed, 9 insertions(+)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git llvm_master/lib/Support/Unix/Signals.inc macports_master/lib/Support/Unix/Signals.inc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 3750d7f4c09..7b163161988 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- llvm_master/lib/Support/Unix/Signals.inc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ macports_master/lib/Support/Unix/Signals.inc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -476,6 +476,15 @@ void llvm::sys::PrintStackTraceOnErrorSignal(StringRef Argv0,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   AddSignalHandler(PrintStackTraceSignalHandler, nullptr);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if defined(__APPLE__) && ENABLE_CRASH_OVERRIDES
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* These aren't defined in the 10.4 SDK, so provide them here */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifndef EXC_MASK_CRASH
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define EXC_MASK_CRASH 0x400
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifndef MACH_EXCEPTION_CODES
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define MACH_EXCEPTION_CODES 0x80000000
</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;'>+   // Environment variable to disable any kind of crash dialog.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (DisableCrashReporting || getenv("LLVM_DISABLE_CRASH_REPORT")) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     mach_port_t self = mach_task_self();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-- 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+2.11.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/0003-MacPorts-Only-Don-t-embed-the-deployment-target-in-t.patch b/lang/llvm-4.0/files/0003-MacPorts-Only-Don-t-embed-the-deployment-target-in-t.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..f658643
</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/0003-MacPorts-Only-Don-t-embed-the-deployment-target-in-t.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,29 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 62bfda50e50245543b00ad7f8ccd80fb95b1d217 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Sat, 17 Jan 2015 16:41:30 -0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 3/4] MacPorts Only: Don't embed the deployment target in the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ asm when using -fno-integrated-as
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+http://llvm.org/bugs/show_bug.cgi?id=21636
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lib/CodeGen/AsmPrinter/AsmPrinter.cpp | 2 +-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1 file changed, 1 insertion(+), 1 deletion(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git llvm_master/lib/CodeGen/AsmPrinter/AsmPrinter.cpp macports_master/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 7adac4cbf94..fb47d6079a4 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- llvm_master/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ macports_master/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -193,7 +193,7 @@ bool AsmPrinter::doInitialization(Module &M) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   // anyway.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   const Triple &TT = TM.getTargetTriple();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   // If there is a version specified, Major will be non-zero.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  if (TT.isOSDarwin() && TT.getOSMajorVersion() != 0) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (TT.isOSDarwin() && TT.getOSMajorVersion() != 0 && MAI->useIntegratedAssembler()) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     unsigned Major, Minor, Update;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     MCVersionMinType VersionType;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if (TT.isWatchOS()) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-- 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+2.11.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/0004-Fix-build-issues-pre-Lion-due-to-missing-a-strnlen-d.patch b/lang/llvm-4.0/files/0004-Fix-build-issues-pre-Lion-due-to-missing-a-strnlen-d.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..939326d
</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/0004-Fix-build-issues-pre-Lion-due-to-missing-a-strnlen-d.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,96 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From adc969d25c40b21c469bad38d6ac3460b0ebd885 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Tue, 20 Dec 2016 12:41:21 -0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 4/4] Fix build issues pre-Lion due to missing a strnlen
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ definition
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://trac.macports.org/ticket/51520
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://llvm.org/bugs/show_bug.cgi?id=27714
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lib/ObjectYAML/MachOYAML.cpp           | 11 +++++++++++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ tools/llvm-pdbdump/LLVMOutputStyle.cpp | 11 +++++++++++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ tools/obj2yaml/macho2yaml.cpp          | 13 ++++++++++++-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 3 files changed, 34 insertions(+), 1 deletion(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git llvm_master/lib/ObjectYAML/MachOYAML.cpp macports_master/lib/ObjectYAML/MachOYAML.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 7ebb1bed088..a9f37a3a442 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- llvm_master/lib/ObjectYAML/MachOYAML.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ macports_master/lib/ObjectYAML/MachOYAML.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -18,6 +18,20 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <string.h> // For memcpy, memset and strnlen.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef __APPLE__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <Availability.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if __MAC_OS_X_VERSION_MIN_REQUIRED < 1070
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static size_t strnlen(const char *s, size_t maxlen) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  size_t l = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  while (l < maxlen && *s) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    l++;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    s++;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return l;
</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;'>++#endif
</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;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ MachOYAML::LoadCommand::~LoadCommand() {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/tools/llvm-pdbdump/LLVMOutputStyle.cpp b/tools/llvm-pdbdump/LLVMOutputStyle.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 98c67ec9ef3..90f9129d5f1 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/tools/llvm-pdbdump/LLVMOutputStyle.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/tools/llvm-pdbdump/LLVMOutputStyle.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -31,6 +31,20 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <unordered_map>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef __APPLE__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <Availability.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if __MAC_OS_X_VERSION_MIN_REQUIRED < 1070
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static size_t strnlen(const char *s, size_t maxlen) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  size_t l = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  while (l < maxlen && *s) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    l++;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    s++;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return l;
</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;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ using namespace llvm;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ using namespace llvm::codeview;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ using namespace llvm::msf;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/tools/obj2yaml/macho2yaml.cpp b/tools/obj2yaml/macho2yaml.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 9cd05463edc..02678123d76 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/tools/obj2yaml/macho2yaml.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/tools/obj2yaml/macho2yaml.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -15,7 +15,21 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "llvm/Support/ErrorHandling.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "llvm/Support/LEB128.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#include <string.h> // for memcpy
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <string.h> // for memcpy abd strnlen
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef __APPLE__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <Availability.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if __MAC_OS_X_VERSION_MIN_REQUIRED < 1070
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static size_t strnlen(const char *s, size_t maxlen) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  size_t l = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  while (l < maxlen && *s) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    l++;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    s++;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return l;
</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;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ using namespace llvm;
</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;'>+2.11.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/1000-MacPorts-Only-Helper-script-for-generating-patches.patch b/lang/llvm-4.0/files/1000-MacPorts-Only-Helper-script-for-generating-patches.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..581c162
</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/1000-MacPorts-Only-Helper-script-for-generating-patches.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,30 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 1e890634bb9efac93a1966f9b2e366290fe2fd7e Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Sat, 17 Jan 2015 17:48:39 -0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 1000/1007] MacPorts Only: Helper script for generating patches
</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;'>+ create_macports_patches.sh | 11 +++++++++++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1 file changed, 11 insertions(+)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ create mode 100755 create_macports_patches.sh
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git llvm_master/tools/clang/create_macports_patches.sh macports_master/tools/clang/create_macports_patches.sh
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+new file mode 100755
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 0000000000..e51c371004
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ macports_master/tools/clang/create_macports_patches.sh
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -0,0 +1,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#!/bin/bash
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++parse_git_branch()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    ref=$(git symbolic-ref HEAD 2> /dev/null) || return;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    echo ${ref#refs/heads/}
</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;'>++branch=$(parse_git_branch)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++git format-patch origin/${branch} --src-prefix=llvm_${branch}/tools/clang/ --dst-prefix=macports_${branch}/tools/clang/ --start-number=1000
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-- 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+2.11.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/1001-MacPorts-Only-Prepare-clang-format-for-replacement-w.patch b/lang/llvm-4.0/files/1001-MacPorts-Only-Prepare-clang-format-for-replacement-w.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..04a702c
</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/1001-MacPorts-Only-Prepare-clang-format-for-replacement-w.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,84 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From f07780b534efdf5084f76ce57ed20111e8e61e2e Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Sat, 17 Jan 2015 17:50:24 -0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 1001/1007] MacPorts Only: Prepare clang-format for replacement
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ with absolute path
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ tools/clang-format/clang-format-bbedit.applescript | 2 +-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ tools/clang-format/clang-format-diff.py            | 2 +-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ tools/clang-format/clang-format-sublime.py         | 2 +-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ tools/clang-format/clang-format.el                 | 3 +--
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ tools/clang-format/clang-format.py                 | 2 +-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 5 files changed, 5 insertions(+), 6 deletions(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git llvm_master/tools/clang/tools/clang-format/clang-format-bbedit.applescript macports_master/tools/clang/tools/clang-format/clang-format-bbedit.applescript
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index fa88fe9004..eb09448be5 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- llvm_master/tools/clang/tools/clang-format/clang-format-bbedit.applescript
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ macports_master/tools/clang/tools/clang-format/clang-format-bbedit.applescript
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -15,7 +15,7 @@ tell application "BBEdit"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ end tell
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set filePath to urlToPOSIXPath(fileURL)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-set newContents to do shell script "/path/to/clang-format -offset=" & selectionOffset & " -length=" & selectionLength & " " & quoted form of filePath
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++set newContents to do shell script "@CLANG_FORMAT_PATH@ -offset=" & selectionOffset & " -length=" & selectionLength & " " & quoted form of filePath
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ tell application "BBEdit"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   -- "set contents of text document 1 to newContents" scrolls to the bottom while
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git llvm_master/tools/clang/tools/clang-format/clang-format-diff.py macports_master/tools/clang/tools/clang-format/clang-format-diff.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ffa30e70dd..a624ad256f 100755
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- llvm_master/tools/clang/tools/clang-format/clang-format-diff.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ macports_master/tools/clang/tools/clang-format/clang-format-diff.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -55,7 +55,7 @@ def main():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   parser.add_argument('-style',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                       help='formatting style to apply (LLVM, Google, Chromium, '
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                       'Mozilla, WebKit)')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  parser.add_argument('-binary', default='clang-format',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  parser.add_argument('-binary', default='@CLANG_FORMAT_PATH@',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                       help='location of binary to use for clang-format')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   args = parser.parse_args()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git llvm_master/tools/clang/tools/clang-format/clang-format-sublime.py macports_master/tools/clang/tools/clang-format/clang-format-sublime.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 16ff56e502..4b68104a28 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- llvm_master/tools/clang/tools/clang-format/clang-format-sublime.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ macports_master/tools/clang/tools/clang-format/clang-format-sublime.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -18,7 +18,7 @@ import sublime_plugin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ import subprocess
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Change this to the full path if clang-format is not on the path.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-binary = 'clang-format'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++binary = '@CLANG_FORMAT_PATH@'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Change this to format according to other formatting styles. See the output of
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # 'clang-format --help' for a list of supported styles. The default looks for
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git llvm_master/tools/clang/tools/clang-format/clang-format.el macports_master/tools/clang/tools/clang-format/clang-format.el
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 0ac2da3ad2..dba511033c 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- llvm_master/tools/clang/tools/clang-format/clang-format.el
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ macports_master/tools/clang/tools/clang-format/clang-format.el
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -36,8 +36,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   :group 'tools)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (defcustom clang-format-executable
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  (or (executable-find "clang-format")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      "clang-format")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  "@CLANG_FORMAT_PATH@"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   "Location of the clang-format executable.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ A string containing the name or the full path of the executable."
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git llvm_master/tools/clang/tools/clang-format/clang-format.py macports_master/tools/clang/tools/clang-format/clang-format.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ae8a6ebf74..93268cd381 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- llvm_master/tools/clang/tools/clang-format/clang-format.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ macports_master/tools/clang/tools/clang-format/clang-format.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -36,7 +36,7 @@ import vim
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # set g:clang_format_path to the path to clang-format if it is not on the path
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Change this to the full path if clang-format is not on the path.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-binary = 'clang-format'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++binary = '@CLANG_FORMAT_PATH@'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if vim.eval('exists("g:clang_format_path")') == "1":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   binary = vim.eval('g:clang_format_path')
</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;'>+2.11.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/1002-MacPorts-Only-Fix-name-of-scan-view-executable-insid.patch b/lang/llvm-4.0/files/1002-MacPorts-Only-Fix-name-of-scan-view-executable-insid.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..05be896
</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/1002-MacPorts-Only-Fix-name-of-scan-view-executable-insid.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,29 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 4191978f112c6c87d7680402bf12ab8202cd7689 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Sat, 17 Jan 2015 17:55:27 -0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 1002/1007] MacPorts Only: Fix name of scan-view executable
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ inside scan-build
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+http://trac.macports.org/ticket/35006
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ tools/scan-build/bin/scan-build | 2 ++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1 file changed, 2 insertions(+)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git llvm_master/tools/clang/tools/scan-build/bin/scan-build macports_master/tools/clang/tools/scan-build/bin/scan-build
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index cbf3bf3d6f..f7fad16bba 100755
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- llvm_master/tools/clang/tools/scan-build/bin/scan-build
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ macports_master/tools/clang/tools/scan-build/bin/scan-build
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1855,6 +1855,8 @@ if (defined $Options{OutputFormat}) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       Diag "Analysis run complete.\n";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       Diag "Viewing analysis results in '$Options{OutputDir}' using scan-view.\n";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       my $ScanView = Cwd::realpath("$RealBin/scan-view");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      if (! -x $ScanView) { $ScanView = Cwd::realpath("$RealBin/bin/scan-view"); }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      if (! -x $ScanView) { $ScanView = Cwd::realpath("$RealBin/../scan-view/scan-view"); }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       if (! -x $ScanView) { $ScanView = "scan-view"; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       if (! -x $ScanView) { $ScanView = Cwd::realpath("$RealBin/../../scan-view/bin/scan-view"); }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       exec $ScanView, "$Options{OutputDir}";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-- 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+2.11.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/1003-Default-to-ppc7400-for-OSX-10.5.patch b/lang/llvm-4.0/files/1003-Default-to-ppc7400-for-OSX-10.5.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..d1c0ca1
</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/1003-Default-to-ppc7400-for-OSX-10.5.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,26 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 55e5fccea9da529605215205888a8d14d8a0bfb8 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Iain Sandoe <iain@codesourcery.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Sun, 27 Jul 2014 20:35:16 +0100
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 1003/1007] Default to ppc7400 for OSX 10.5+
</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;'>+ lib/Driver/Tools.cpp | 3 +++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1 file changed, 3 insertions(+)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git llvm_master/tools/clang/lib/Driver/Tools.cpp macports_master/tools/clang/lib/Driver/Tools.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index f4cab2a888..8e13e59060 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- llvm_master/tools/clang/lib/Driver/Tools.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ macports_master/tools/clang/lib/Driver/Tools.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2118,6 +2118,9 @@ static std::string getCPUName(const ArgList &Args, const llvm::Triple &T,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         TargetCPUName = "ppc64";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       else if (T.getArch() == llvm::Triple::ppc64le)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         TargetCPUName = "ppc64le";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      else if (T.isOSDarwin() && !T.isMacOSXVersionLT(10,5))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        // For 10.5+ Altivec is assumed available.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        TargetCPUName = "7400";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         TargetCPUName = "ppc";
</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;'>+2.11.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/1004-Only-call-setpriority-PRIO_DARWIN_THREAD-0-PRIO_DARW.patch b/lang/llvm-4.0/files/1004-Only-call-setpriority-PRIO_DARWIN_THREAD-0-PRIO_DARW.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..ae593d8
</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/1004-Only-call-setpriority-PRIO_DARWIN_THREAD-0-PRIO_DARW.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,29 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From de36e89244ba27d84d2b0725268e8648e557912e Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Sat, 17 Jan 2015 19:08:57 -0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 1004/1007] Only call setpriority(PRIO_DARWIN_THREAD, 0,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PRIO_DARWIN_BG) if it is available
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Tiger and earlier versions of darwin do not support this.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ tools/libclang/CIndex.cpp | 2 +-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1 file changed, 1 insertion(+), 1 deletion(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git llvm_master/tools/clang/tools/libclang/CIndex.cpp macports_master/tools/clang/tools/libclang/CIndex.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 210e74bf59..966f10d03e 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- llvm_master/tools/clang/tools/libclang/CIndex.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ macports_master/tools/clang/tools/libclang/CIndex.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -7913,7 +7913,7 @@ void clang::setThreadBackgroundPriority() {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (getenv("LIBCLANG_BGPRIO_DISABLE"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     return;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#ifdef USE_DARWIN_THREADS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined(USE_DARWIN_THREADS) && defined(PRIO_DARWIN_THREAD) && defined(PRIO_DARWIN_BG)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   setpriority(PRIO_DARWIN_THREAD, 0, PRIO_DARWIN_BG);
</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;'>+2.11.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/1005-Default-to-fragile-ObjC-runtime-when-targeting-darwi.patch b/lang/llvm-4.0/files/1005-Default-to-fragile-ObjC-runtime-when-targeting-darwi.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..eaf531c
</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/1005-Default-to-fragile-ObjC-runtime-when-targeting-darwi.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,31 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 211a11fc9d4de5a32af8404ed4773db70a0d5a68 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Tue, 20 Jan 2015 00:09:16 -0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 1005/1007] Default to fragile ObjC runtime when targeting
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ darwin/ppc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lib/Driver/ToolChains.h | 6 ++++--
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1 file changed, 4 insertions(+), 2 deletions(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git llvm_master/tools/clang/lib/Driver/ToolChains.h macports_master/tools/clang/lib/Driver/ToolChains.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 7dab08915d..73c080b435 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- llvm_master/tools/clang/lib/Driver/ToolChains.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ macports_master/tools/clang/lib/Driver/ToolChains.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -362,8 +362,10 @@ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   bool IsEncodeExtendedBlockSignatureDefault() const override { return true; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   bool IsObjCNonFragileABIDefault() const override {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    // Non-fragile ABI is default for everything but i386.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    return getTriple().getArch() != llvm::Triple::x86;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    // Non-fragile ABI is default for legacy architectures
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return getTriple().getArch() != llvm::Triple::x86 &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++           getTriple().getArch() != llvm::Triple::ppc &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++           getTriple().getArch() != llvm::Triple::ppc64;
</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;'>+   bool UseObjCMixedDispatch() const override { return true; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-- 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+2.11.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/1006-Fixup-libstdc-header-search-paths-for-older-versions.patch b/lang/llvm-4.0/files/1006-Fixup-libstdc-header-search-paths-for-older-versions.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..0cee4102
</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/1006-Fixup-libstdc-header-search-paths-for-older-versions.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,41 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 5a26bf491ba1f7e590554d8e761c674ddccabc9f Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Mon, 31 Oct 2016 15:06:36 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 1006/1007] Fixup libstdc++ header search paths for older
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ versions of Mac OS X
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The subpaths were removed in Lion.  Leopard and Snow Leopard had darwin8
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+symlinks for compatibility.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://llvm.org/bugs/show_bug.cgi?id=30858
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lib/Frontend/InitHeaderSearch.cpp | 4 ++--
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1 file changed, 2 insertions(+), 2 deletions(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git llvm_master/tools/clang/lib/Frontend/InitHeaderSearch.cpp macports_master/tools/clang/lib/Frontend/InitHeaderSearch.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index d50fb6d788..c8969b67bf 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- llvm_master/tools/clang/lib/Frontend/InitHeaderSearch.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ macports_master/tools/clang/lib/Frontend/InitHeaderSearch.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -365,7 +365,7 @@ AddDefaultCPlusPlusIncludePaths(const llvm::Triple &triple, const HeaderSearchOp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                   "powerpc-apple-darwin10", "", "ppc64",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                   triple);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.0.0",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                                  "powerpc-apple-darwin10", "", "ppc64",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                  "powerpc-apple-darwin8", "", "ppc64",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                   triple);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -374,7 +374,7 @@ AddDefaultCPlusPlusIncludePaths(const llvm::Triple &triple, const HeaderSearchOp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.2.1",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                   "i686-apple-darwin10", "", "x86_64", triple);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.0.0",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                                  "i686-apple-darwin8", "", "", triple);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                  "i686-apple-darwin8", "", "x86_64", triple);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     case llvm::Triple::arm:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-- 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+2.11.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/1007-Fix-build-issues-pre-Lion-due-to-missing-a-strnlen-d.patch b/lang/llvm-4.0/files/1007-Fix-build-issues-pre-Lion-due-to-missing-a-strnlen-d.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..dc9f897
</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/1007-Fix-build-issues-pre-Lion-due-to-missing-a-strnlen-d.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,42 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 06a86b2c74ec3f03e5b998e31c116af2d9acb54e Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Tue, 20 Dec 2016 15:53:39 -0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 1007/1007] Fix build issues pre-Lion due to missing a strnlen
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ definition
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://trac.macports.org/ticket/51520
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://llvm.org/bugs/show_bug.cgi?id=27714
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lib/Lex/HeaderMap.cpp | 14 ++++++++++++++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1 file changed, 14 insertions(+)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git llvm_master/tools/clang/lib/Lex/HeaderMap.cpp macports_master/tools/clang/lib/Lex/HeaderMap.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 24a14b6cdb..c38986d46c 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- llvm_master/tools/clang/lib/Lex/HeaderMap.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ macports_master/tools/clang/lib/Lex/HeaderMap.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -26,6 +26,20 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <memory>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ using namespace clang;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef __APPLE__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <Availability.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if __MAC_OS_X_VERSION_MIN_REQUIRED < 1070
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static size_t strnlen(const char *s, size_t maxlen) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  size_t l = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  while (l < maxlen && *s) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    l++;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    s++;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return l;
</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;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /// HashHMapKey - This is the 'well known' hash function required by the file
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /// format, used to look up keys in the hash table.  The hash table uses simple
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /// linear probing based on this function.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-- 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+2.11.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/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>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..28a2df9
</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/2001-MacPorts-Only-Don-t-check-for-the-macosx.internal-SD.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,45 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From e3af7250d96fc7fbe2e368db5dcbe26da773a315 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Mon, 30 Nov 2015 00:52:14 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 2001/2002] MacPorts Only: Don't check for the macosx.internal
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ SDK
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://llvm.org/bugs/show_bug.cgi?id=25677
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cmake/Modules/CompilerRTDarwinUtils.cmake | 11 -----------
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1 file changed, 11 deletions(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+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:#e0ffe0;'>+index 28d398672..92a51cfe8 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- llvm_master/projects/compiler-rt/cmake/Modules/CompilerRTDarwinUtils.cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ macports_master/projects/compiler-rt/cmake/Modules/CompilerRTDarwinUtils.cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -5,14 +5,6 @@ include(CMakeParseArguments)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # the current Xcode.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ function(find_darwin_sdk_dir var sdk_name)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   # Let's first try the internal SDK, otherwise use the public SDK.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  execute_process(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    COMMAND xcodebuild -version -sdk ${sdk_name}.internal Path
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    RESULT_VARIABLE result_process
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    OUTPUT_VARIABLE var_internal
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    OUTPUT_STRIP_TRAILING_WHITESPACE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    ERROR_FILE /dev/null
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  if((NOT result_process EQUAL 0) OR "" STREQUAL "${var_internal}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     execute_process(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       COMMAND xcodebuild -version -sdk ${sdk_name} Path
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       RESULT_VARIABLE result_process
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -20,9 +12,6 @@ function(find_darwin_sdk_dir var sdk_name)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       OUTPUT_STRIP_TRAILING_WHITESPACE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       ERROR_FILE /dev/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;'>+-    set(${var}_INTERNAL ${var_internal} PARENT_SCOPE)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if(result_process EQUAL 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     set(${var} ${var_internal} PARENT_SCOPE)
</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;'>+2.11.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/2002-Add-defines-for-cpu-types-and-subtypes-that-might-be.patch b/lang/llvm-4.0/files/2002-Add-defines-for-cpu-types-and-subtypes-that-might-be.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..7e2289c
</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-Add-defines-for-cpu-types-and-subtypes-that-might-be.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,41 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 9675e48e4668f368606c2576bd9fe5a2a702e395 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Tue, 20 Dec 2016 21:05:46 -0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 2002/2002] Add defines for cpu types and subtypes that might
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ be missing from mach/machine.h in older SDKs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lib/sanitizer_common/sanitizer_procmaps_mac.cc | 16 ++++++++++++++++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1 file changed, 16 insertions(+)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git llvm_master/projects/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_mac.cc macports_master/projects/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_mac.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 2b4ad5cbb..b558a3978 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- llvm_master/projects/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_mac.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ macports_master/projects/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_mac.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -19,6 +19,22 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <mach-o/dyld.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <mach-o/loader.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifndef CPU_SUBTYPE_X86_64_H
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define CPU_SUBTYPE_X86_64_H            ((cpu_subtype_t)8)      /* Haswell feature subset */
</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;'>++#ifndef CPU_SUBTYPE_ARM_V7S
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define CPU_SUBTYPE_ARM_V7S             ((cpu_subtype_t) 11) /* Swift */
</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;'>++#ifndef CPU_SUBTYPE_ARM_V7K
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define CPU_SUBTYPE_ARM_V7K               ((cpu_subtype_t) 12)
</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;'>++#ifndef CPU_TYPE_ARM64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define CPU_TYPE_ARM64          (CPU_TYPE_ARM | CPU_ARCH_ABI64)
</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;'>+ namespace __sanitizer {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ MemoryMappingLayout::MemoryMappingLayout(bool cache_enabled) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-- 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+2.11.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/3001-buildit-build-fix-for-Leopard.patch b/lang/llvm-4.0/files/3001-buildit-build-fix-for-Leopard.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..15095ce
</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/3001-buildit-build-fix-for-Leopard.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,35 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From cc6da8932689d4160804777b0fb5277f60089b27 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Fri, 16 Jan 2015 21:10:35 -0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 3001/3005] buildit build fix for Leopard
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lib/buildit | 4 ++--
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1 file changed, 2 insertions(+), 2 deletions(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git llvm_master/projects/libcxx/lib/buildit macports_master/projects/libcxx/lib/buildit
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 6451a9b..237e5a7 100755
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- llvm_master/projects/libcxx/lib/buildit
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ macports_master/projects/libcxx/lib/buildit
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -50,7 +50,7 @@ case $TRIPLE in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       RC_CFLAGS="-arch i386 -arch x86_64"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     SOEXT=dylib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if [ "$MACOSX_DEPLOYMENT_TARGET" = "10.6" ]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if [ "$MACOSX_DEPLOYMENT_TARGET" = "10.5" ] || [ "$MACOSX_DEPLOYMENT_TARGET" = "10.6" ]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         EXTRA_FLAGS="-nostdinc++ -std=c++11 -U__STRICT_ANSI__"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         LDSHARED_FLAGS="-o libc++.1.dylib \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -59,7 +59,7 @@ case $TRIPLE in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             -install_name /usr/lib/libc++.1.dylib \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             -Wl,-reexport_library,/usr/lib/libc++abi.dylib \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             -Wl,-unexported_symbols_list,libc++unexp.exp  \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            /usr/lib/libSystem.B.dylib"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            /usr/lib/libSystem.B.dylib /usr/lib/libgcc_s.1.dylib"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         if [ -n "$SDKROOT" ]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-- 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+2.10.1
</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/3002-buildit-Set-compatibility-version-to-RC_ProjectSourc.patch b/lang/llvm-4.0/files/3002-buildit-Set-compatibility-version-to-RC_ProjectSourc.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..d3c3317
</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/3002-buildit-Set-compatibility-version-to-RC_ProjectSourc.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,28 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 54aa9c8f7cf32337c021ccc5b4c9d96eba02c7cb Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Fri, 16 Jan 2015 21:11:37 -0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 3002/3005] buildit: Set compatibility version to
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ RC_ProjectSourceVersion
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lib/buildit | 3 ++-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1 file changed, 2 insertions(+), 1 deletion(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git llvm_master/projects/libcxx/lib/buildit macports_master/projects/libcxx/lib/buildit
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 237e5a7..d313efe 100755
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- llvm_master/projects/libcxx/lib/buildit
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ macports_master/projects/libcxx/lib/buildit
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -54,7 +54,8 @@ case $TRIPLE in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         EXTRA_FLAGS="-nostdinc++ -std=c++11 -U__STRICT_ANSI__"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         LDSHARED_FLAGS="-o libc++.1.dylib \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            -dynamiclib -nodefaultlibs -current_version 1 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            -dynamiclib -nodefaultlibs \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            -current_version ${RC_ProjectSourceVersion} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             -compatibility_version 1 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             -install_name /usr/lib/libc++.1.dylib \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             -Wl,-reexport_library,/usr/lib/libc++abi.dylib \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-- 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+2.10.1
</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/3003-Fix-local-and-iterator-when-building-with-Lion-and-n.patch b/lang/llvm-4.0/files/3003-Fix-local-and-iterator-when-building-with-Lion-and-n.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..40e0832
</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/3003-Fix-local-and-iterator-when-building-with-Lion-and-n.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,45 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From f22ba463b19326ad65f52253c7fb51f548f77038 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Fri, 16 Jan 2015 21:34:36 -0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 3003/3005] Fix <local> and <iterator> when building with Lion
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ and newer Availability.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ include/iterator | 4 ++--
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ include/locale   | 4 ++--
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 2 files changed, 4 insertions(+), 4 deletions(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git llvm_master/projects/libcxx/include/iterator macports_master/projects/libcxx/include/iterator
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 731791b..3e1cf5e 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- llvm_master/projects/libcxx/include/iterator
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ macports_master/projects/libcxx/include/iterator
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1020,8 +1020,8 @@ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     _LIBCPP_INLINE_VISIBILITY bool failed() const _NOEXCEPT {return __sbuf_ == 0;}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if !defined(__APPLE__) || \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    (defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && __MAC_OS_X_VERSION_MIN_REQUIRED > __MAC_10_8) || \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    (defined(__IPHONE_OS_VERSION_MIN_REQUIRED) && __IPHONE_OS_VERSION_MIN_REQUIRED > __IPHONE_6_0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    (defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && defined(__MAC_10_8) && __MAC_OS_X_VERSION_MIN_REQUIRED > __MAC_10_8) || \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    (defined(__IPHONE_OS_VERSION_MIN_REQUIRED) && defined(__IPHONE_6_0) && __IPHONE_OS_VERSION_MIN_REQUIRED > __IPHONE_6_0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     template <class _Ch, class _Tr>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     friend
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git llvm_master/projects/libcxx/include/locale macports_master/projects/libcxx/include/locale
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index adb03af..027de77 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- llvm_master/projects/libcxx/include/locale
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ macports_master/projects/libcxx/include/locale
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1316,8 +1316,8 @@ __pad_and_output(_OutputIterator __s,
</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__) || \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    (defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && __MAC_OS_X_VERSION_MIN_REQUIRED > __MAC_10_8) || \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    (defined(__IPHONE_OS_VERSION_MIN_REQUIRED) && __IPHONE_OS_VERSION_MIN_REQUIRED > __IPHONE_6_0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    (defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && defined(__MAC_10_8) && __MAC_OS_X_VERSION_MIN_REQUIRED > __MAC_10_8) || \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    (defined(__IPHONE_OS_VERSION_MIN_REQUIRED) && defined(__IPHONE_6_0) && __IPHONE_OS_VERSION_MIN_REQUIRED > __IPHONE_6_0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ template <class _CharT, class _Traits>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ _LIBCPP_HIDDEN
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-- 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+2.10.1
</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/3004-Fix-missing-long-long-math-prototypes-when-using-the.patch b/lang/llvm-4.0/files/3004-Fix-missing-long-long-math-prototypes-when-using-the.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..2f33671
</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/3004-Fix-missing-long-long-math-prototypes-when-using-the.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,51 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 720feba4874d4ca3131753dc31af127e3c509c36 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Sat, 17 Jan 2015 16:26:20 -0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 3004/3005] Fix missing long long math prototypes when using
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ the Snow Leopard SDK
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ include/math.h | 26 ++++++++++++++++++++++++++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1 file changed, 26 insertions(+)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git llvm_master/projects/libcxx/include/math.h macports_master/projects/libcxx/include/math.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index fb0b608..afbe2cf 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- llvm_master/projects/libcxx/include/math.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ macports_master/projects/libcxx/include/math.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -300,6 +300,32 @@ long double    truncl(long double x);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include_next <math.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef __APPLE__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# if __has_include(<Availability.h>)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#  include <Availability.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#  if __MAC_OS_X_VERSION_MAX_ALLOWED < 1070
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#    define __APPLE_BAD_MATH_H 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#  else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#    define __APPLE_BAD_MATH_H 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#  endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#  define __APPLE_BAD_MATH_H 1
</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 __APPLE_BAD_MATH_H
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* These prototypes are incorrectly omitted from <math.h> on Snow Leopard despite being available */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++extern "C" {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    extern long long int llrintl(long double);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    extern long long int llrint(double);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    extern long long int llrintf(float);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    extern long long int llroundl(long double);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    extern long long int llround(double);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    extern long long int llroundf(float);
</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;'>++#endif // __APPLE__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifdef __cplusplus
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // We support including .h headers inside 'extern "C"' contexts, so switch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-- 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+2.10.1
</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/3005-implement-atomic-using-mutex-lock_guard-for-64b-ops-.patch b/lang/llvm-4.0/files/3005-implement-atomic-using-mutex-lock_guard-for-64b-ops-.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..dd25a17
</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/3005-implement-atomic-using-mutex-lock_guard-for-64b-ops-.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,316 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 74fef469992fa91f4552891fa6ae9ff9f966c3aa Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: David Fang <fang@csl.cornell.edu>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Wed, 15 Jan 2014 21:27:34 -0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 3005/3005] implement atomic<> using mutex/lock_guard for 64b
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ops on 32b PPC not pretty, not fast, but passes atomic tests
</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;'>+ include/__atomic_locked | 240 ++++++++++++++++++++++++++++++++++++++++++++++++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ include/atomic          |  46 ++++++++++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 2 files changed, 286 insertions(+)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ create mode 100644 include/__atomic_locked
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git llvm_master/projects/libcxx/include/__atomic_locked macports_master/projects/libcxx/include/__atomic_locked
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+new file mode 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 0000000..f10dd74
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ macports_master/projects/libcxx/include/__atomic_locked
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -0,0 +1,240 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// -*- C++ -*-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++//===--------------------------- __atomic_locked --------------------------===//
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++//
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++//                     The LLVM Compiler Infrastructure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++//
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// This file is distributed under the University of Illinois Open Source
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// License. See LICENSE.TXT for details.
</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;'>++#ifndef _LIBCPP_ATOMIC_LOCKED
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define _LIBCPP_ATOMIC_LOCKED
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <__mutex_base>     // for mutex and lock_guard
</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;'>++  This provides slow-but-usable lock-based atomic access to
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  structures for which atomic lock-free functions are missing.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  This is motivated by the desire for 64b atomic operations
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  on 32b PowerPC architectures.  
</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(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#pragma GCC system_header
</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;'>++_LIBCPP_BEGIN_NAMESPACE_STD
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++template <class _Tp, bool = is_integral<_Tp>::value && !is_same<_Tp, bool>::value>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++struct __atomic_mutex_locked  // false
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    mutable _Atomic(_Tp) __a_;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    mutable mutex __lock_;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    typedef lock_guard<mutex>       lock_type;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _Tp& na(void) const { return reinterpret_cast<_Tp&>(__a_); }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    volatile _Tp& na(void) const volatile { return reinterpret_cast<volatile _Tp&>(__a_); }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _LIBCPP_INLINE_VISIBILITY
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    bool is_lock_free() const volatile _NOEXCEPT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        {return false;}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _LIBCPP_INLINE_VISIBILITY
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    bool is_lock_free() const _NOEXCEPT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        {return false;}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _LIBCPP_INLINE_VISIBILITY
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    void store(_Tp __d, memory_order = memory_order_seq_cst) volatile _NOEXCEPT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        { const lock_type g(const_cast<mutex&>(__lock_)); na() = __d; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _LIBCPP_INLINE_VISIBILITY
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    void store(_Tp __d, memory_order = memory_order_seq_cst) _NOEXCEPT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        { const lock_type g(__lock_); na() = __d; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _LIBCPP_INLINE_VISIBILITY
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _Tp load(memory_order = memory_order_seq_cst) const volatile _NOEXCEPT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        { const lock_type g(const_cast<mutex&>(__lock_)); return na(); }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _LIBCPP_INLINE_VISIBILITY
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _Tp load(memory_order = memory_order_seq_cst) const _NOEXCEPT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        { const lock_type g(__lock_); return na(); }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _LIBCPP_INLINE_VISIBILITY
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    operator _Tp() const volatile _NOEXCEPT {return load();}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _LIBCPP_INLINE_VISIBILITY
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    operator _Tp() const _NOEXCEPT          {return load();}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _LIBCPP_INLINE_VISIBILITY
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _Tp exchange(_Tp __d, memory_order = memory_order_seq_cst) volatile _NOEXCEPT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        { const lock_type g(const_cast<mutex&>(__lock_));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  // or use std::swap
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          const _Tp ret = na(); na() = __d; return ret; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _LIBCPP_INLINE_VISIBILITY
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _Tp exchange(_Tp __d, memory_order = memory_order_seq_cst) _NOEXCEPT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        { const lock_type g(__lock_);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  // or use std::swap
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          const _Tp ret = na(); na() = __d; return ret; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _LIBCPP_INLINE_VISIBILITY
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    bool compare_exchange_weak(_Tp& __e, _Tp __d,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                               memory_order __s, memory_order __f) volatile _NOEXCEPT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        { const lock_type g(const_cast<mutex&>(__lock_));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if (na() == __e) { na() = __d; return true; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    else { __e = na(); return false; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _LIBCPP_INLINE_VISIBILITY
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    bool compare_exchange_weak(_Tp& __e, _Tp __d,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                               memory_order __s, memory_order __f) _NOEXCEPT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        { const lock_type g(__lock_);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if (na() == __e) { na() = __d; return true; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    else { __e = na(); return false; }
</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;'>++    // for now, _weak inditinguishable from _strong
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _LIBCPP_INLINE_VISIBILITY
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    bool compare_exchange_strong(_Tp& __e, _Tp __d,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                 memory_order __s, memory_order __f) volatile _NOEXCEPT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        {return compare_exchange_weak(__e, __d, __s, __f);}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _LIBCPP_INLINE_VISIBILITY
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    bool compare_exchange_strong(_Tp& __e, _Tp __d,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                 memory_order __s, memory_order __f) _NOEXCEPT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        {return compare_exchange_weak(__e, __d, __s, __f);}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _LIBCPP_INLINE_VISIBILITY
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    bool compare_exchange_weak(_Tp& __e, _Tp __d,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                              memory_order __m = memory_order_seq_cst) volatile _NOEXCEPT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        {return compare_exchange_weak(__e, __d, __m, __m);}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _LIBCPP_INLINE_VISIBILITY
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    bool compare_exchange_weak(_Tp& __e, _Tp __d,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                               memory_order __m = memory_order_seq_cst) _NOEXCEPT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        {return compare_exchange_weak(__e, __d, __m, __m);}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _LIBCPP_INLINE_VISIBILITY
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    bool compare_exchange_strong(_Tp& __e, _Tp __d,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                              memory_order __m = memory_order_seq_cst) volatile _NOEXCEPT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        {return compare_exchange_strong(__e, __d, __m, __m);}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _LIBCPP_INLINE_VISIBILITY
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    bool compare_exchange_strong(_Tp& __e, _Tp __d,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                 memory_order __m = memory_order_seq_cst) _NOEXCEPT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        {return compare_exchange_strong(__e, __d, __m, __m);}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _LIBCPP_INLINE_VISIBILITY
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifndef _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    __atomic_mutex_locked() _NOEXCEPT = default;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    __atomic_mutex_locked() _NOEXCEPT : __a_() {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif // _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _LIBCPP_INLINE_VISIBILITY
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _LIBCPP_CONSTEXPR __atomic_mutex_locked(_Tp __d) _NOEXCEPT : __a_(__d) {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifndef _LIBCPP_HAS_NO_DELETED_FUNCTIONS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    __atomic_mutex_locked(const __atomic_mutex_locked&) = delete;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    __atomic_mutex_locked& operator=(const __atomic_mutex_locked&) = delete;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    __atomic_mutex_locked& operator=(const __atomic_mutex_locked&) volatile = delete;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else  // _LIBCPP_HAS_NO_DELETED_FUNCTIONS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++private:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    __atomic_mutex_locked(const __atomic_mutex_locked&);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    __atomic_mutex_locked& operator=(const __atomic_mutex_locked&);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    __atomic_mutex_locked& operator=(const __atomic_mutex_locked&) volatile;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif  // _LIBCPP_HAS_NO_DELETED_FUNCTIONS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++};        // end struct __atomic_mutex_locked
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// atomic<Integral>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++template <class _Tp>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++struct __atomic_mutex_locked<_Tp, true>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    : public __atomic_mutex_locked<_Tp, false>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    typedef __atomic_mutex_locked<_Tp, false> __base;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    typedef       typename __base::lock_type      lock_type;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    using __base::__lock_;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    using __base::na;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _LIBCPP_INLINE_VISIBILITY
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    __atomic_mutex_locked() _NOEXCEPT _LIBCPP_DEFAULT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _LIBCPP_INLINE_VISIBILITY
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _LIBCPP_CONSTEXPR __atomic_mutex_locked(_Tp __d) _NOEXCEPT : __base(__d) {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _LIBCPP_INLINE_VISIBILITY
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _Tp fetch_add(_Tp __op, memory_order __m = memory_order_seq_cst) volatile _NOEXCEPT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        { const lock_type g(const_cast<mutex&>(__lock_));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    const _Tp ret = na(); na() += __op; return ret;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _LIBCPP_INLINE_VISIBILITY
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _Tp fetch_add(_Tp __op, memory_order __m = memory_order_seq_cst) _NOEXCEPT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        { const lock_type g(__lock_);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    const _Tp ret = na(); na() += __op; return ret;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _LIBCPP_INLINE_VISIBILITY
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _Tp fetch_sub(_Tp __op, memory_order __m = memory_order_seq_cst) volatile _NOEXCEPT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        { const lock_type g(const_cast<mutex&>(__lock_));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    const _Tp ret = na(); na() -= __op; return ret;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _LIBCPP_INLINE_VISIBILITY
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _Tp fetch_sub(_Tp __op, memory_order __m = memory_order_seq_cst) _NOEXCEPT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        { const lock_type g(__lock_);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    const _Tp ret = na(); na() -= __op; return ret;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _LIBCPP_INLINE_VISIBILITY
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _Tp fetch_and(_Tp __op, memory_order __m = memory_order_seq_cst) volatile _NOEXCEPT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        { const lock_type g(const_cast<mutex&>(__lock_));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    const _Tp ret = na(); na() &= __op; return ret;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _LIBCPP_INLINE_VISIBILITY
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _Tp fetch_and(_Tp __op, memory_order __m = memory_order_seq_cst) _NOEXCEPT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        { const lock_type g(__lock_);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    const _Tp ret = na(); na() &= __op; return ret;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _LIBCPP_INLINE_VISIBILITY
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _Tp fetch_or(_Tp __op, memory_order __m = memory_order_seq_cst) volatile _NOEXCEPT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        { const lock_type g(const_cast<mutex&>(__lock_));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    const _Tp ret = na(); na() |= __op; return ret;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _LIBCPP_INLINE_VISIBILITY
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _Tp fetch_or(_Tp __op, memory_order __m = memory_order_seq_cst) _NOEXCEPT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        { const lock_type g(__lock_);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    const _Tp ret = na(); na() |= __op; return ret;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _LIBCPP_INLINE_VISIBILITY
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _Tp fetch_xor(_Tp __op, memory_order __m = memory_order_seq_cst) volatile _NOEXCEPT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        { const lock_type g(const_cast<mutex&>(__lock_));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    const _Tp ret = na(); na() ^= __op; return ret;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _LIBCPP_INLINE_VISIBILITY
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _Tp fetch_xor(_Tp __op, memory_order __m = memory_order_seq_cst) _NOEXCEPT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        { const lock_type g(__lock_);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    const _Tp ret = na(); na() ^= __op; return ret;
</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;'>++    _LIBCPP_INLINE_VISIBILITY
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _Tp operator++(int) volatile _NOEXCEPT      {return fetch_add(_Tp(1));}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _LIBCPP_INLINE_VISIBILITY
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _Tp operator++(int) _NOEXCEPT               {return fetch_add(_Tp(1));}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _LIBCPP_INLINE_VISIBILITY
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _Tp operator--(int) volatile _NOEXCEPT      {return fetch_sub(_Tp(1));}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _LIBCPP_INLINE_VISIBILITY
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _Tp operator--(int) _NOEXCEPT               {return fetch_sub(_Tp(1));}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _LIBCPP_INLINE_VISIBILITY
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _Tp operator++() volatile _NOEXCEPT         {return fetch_add(_Tp(1)) + _Tp(1);}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _LIBCPP_INLINE_VISIBILITY
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _Tp operator++() _NOEXCEPT                  {return fetch_add(_Tp(1)) + _Tp(1);}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _LIBCPP_INLINE_VISIBILITY
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _Tp operator--() volatile _NOEXCEPT         {return fetch_sub(_Tp(1)) - _Tp(1);}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _LIBCPP_INLINE_VISIBILITY
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _Tp operator--() _NOEXCEPT                  {return fetch_sub(_Tp(1)) - _Tp(1);}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _LIBCPP_INLINE_VISIBILITY
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _Tp operator+=(_Tp __op) volatile _NOEXCEPT {return fetch_add(__op) + __op;}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _LIBCPP_INLINE_VISIBILITY
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _Tp operator+=(_Tp __op) _NOEXCEPT          {return fetch_add(__op) + __op;}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _LIBCPP_INLINE_VISIBILITY
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _Tp operator-=(_Tp __op) volatile _NOEXCEPT {return fetch_sub(__op) - __op;}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _LIBCPP_INLINE_VISIBILITY
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _Tp operator-=(_Tp __op) _NOEXCEPT          {return fetch_sub(__op) - __op;}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _LIBCPP_INLINE_VISIBILITY
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _Tp operator&=(_Tp __op) volatile _NOEXCEPT {return fetch_and(__op) & __op;}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _LIBCPP_INLINE_VISIBILITY
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _Tp operator&=(_Tp __op) _NOEXCEPT          {return fetch_and(__op) & __op;}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _LIBCPP_INLINE_VISIBILITY
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _Tp operator|=(_Tp __op) volatile _NOEXCEPT {return fetch_or(__op) | __op;}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _LIBCPP_INLINE_VISIBILITY
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _Tp operator|=(_Tp __op) _NOEXCEPT          {return fetch_or(__op) | __op;}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _LIBCPP_INLINE_VISIBILITY
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _Tp operator^=(_Tp __op) volatile _NOEXCEPT {return fetch_xor(__op) ^ __op;}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _LIBCPP_INLINE_VISIBILITY
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _Tp operator^=(_Tp __op) _NOEXCEPT          {return fetch_xor(__op) ^ __op;}
</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;'>++_LIBCPP_END_NAMESPACE_STD
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif  // _LIBCPP_ATOMIC_LOCKED
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git llvm_master/projects/libcxx/include/atomic macports_master/projects/libcxx/include/atomic
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index a25b5bf..91abcc3 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- llvm_master/projects/libcxx/include/atomic
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ macports_master/projects/libcxx/include/atomic
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1840,4 +1840,50 @@ typedef atomic<uintmax_t> atomic_uintmax_t;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ _LIBCPP_END_NAMESPACE_STD
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if       defined(__ppc__) && !defined(__ppc64__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// specialize fallback implementation where 64b atomics are missing
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <__atomic_locked>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++_LIBCPP_BEGIN_NAMESPACE_STD
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++template <>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++struct atomic<long long> : public __atomic_mutex_locked<long long>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    typedef long long             _Tp;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    typedef __atomic_mutex_locked<_Tp> __base;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _LIBCPP_INLINE_VISIBILITY
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    atomic() _NOEXCEPT _LIBCPP_DEFAULT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _LIBCPP_INLINE_VISIBILITY
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _LIBCPP_CONSTEXPR atomic(_Tp __d) _NOEXCEPT : __base(__d) {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _LIBCPP_INLINE_VISIBILITY
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _Tp operator=(_Tp __d) volatile _NOEXCEPT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        {__base::store(__d); return __d;}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _LIBCPP_INLINE_VISIBILITY
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _Tp operator=(_Tp __d) _NOEXCEPT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        {__base::store(__d); return __d;}
</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;'>++template <>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++struct atomic<unsigned long long> :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  public __atomic_mutex_locked<unsigned long long>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    typedef unsigned long long            _Tp;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    typedef __atomic_mutex_locked<_Tp> __base;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _LIBCPP_INLINE_VISIBILITY
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    atomic() _NOEXCEPT _LIBCPP_DEFAULT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _LIBCPP_INLINE_VISIBILITY
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _LIBCPP_CONSTEXPR atomic(_Tp __d) _NOEXCEPT : __base(__d) {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _LIBCPP_INLINE_VISIBILITY
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _Tp operator=(_Tp __d) volatile _NOEXCEPT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        {__base::store(__d); return __d;}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _LIBCPP_INLINE_VISIBILITY
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _Tp operator=(_Tp __d) _NOEXCEPT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        {__base::store(__d); return __d;}
</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;'>++_LIBCPP_END_NAMESPACE_STD
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif    // defined(__ppc__) && !defined(__ppc64__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif  // _LIBCPP_ATOMIC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-- 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+2.10.1
</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/4001-https-llvm.org-bugs-show_bug.cgi-id-31433.patch b/lang/llvm-4.0/files/4001-https-llvm.org-bugs-show_bug.cgi-id-31433.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..6b79178
</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/4001-https-llvm.org-bugs-show_bug.cgi-id-31433.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,30 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From a97ebbe6a71d2b08059b3c14d15c7b5885d2122b Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Tue, 20 Dec 2016 01:08:20 -0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 4001/4002] https://llvm.org/bugs/show_bug.cgi?id=31433
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cmake/modules/AddLLDB.cmake | 6 ++++++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1 file changed, 6 insertions(+)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git llvm_master/tools/lldb/cmake/modules/AddLLDB.cmake macports_master/tools/lldb/cmake/modules/AddLLDB.cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 1ca6f3e66..7eef3aff5 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- llvm_master/tools/lldb/cmake/modules/AddLLDB.cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ macports_master/tools/lldb/cmake/modules/AddLLDB.cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -142,6 +142,12 @@ function(add_lldb_executable name)
</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;'>+     endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  else()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if(ARG_GENERATE_INSTALL)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      install(TARGETS ${name}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            COMPONENT ${name}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            RUNTIME DESTINATION ${install_dir})
</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;'>+   if(ARG_INCLUDE_IN_FRAMEWORK AND LLDB_BUILD_FRAMEWORK)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-- 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+2.11.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/4002-Fix-build-on-Mountain-Lion.patch b/lang/llvm-4.0/files/4002-Fix-build-on-Mountain-Lion.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..883f924
</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/4002-Fix-build-on-Mountain-Lion.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,41 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From e8faf68f804833d1d4620bf67ba8d181ade33ce6 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Tue, 20 Dec 2016 13:55:43 -0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 4002/4002] Fix build on Mountain Lion
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+MachTask.mm:437:18: error: no member named 'external_page_count' in 'vm_statistics64'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          vminfo.external_page_count - vminfo.purgeable_count;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          ~~~~~~ ^
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+1 error generated.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://llvm.org/bugs/show_bug.cgi?id=31438
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ tools/debugserver/source/MacOSX/MachTask.mm | 3 ++-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1 file changed, 2 insertions(+), 1 deletion(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git llvm_master/tools/lldb/tools/debugserver/source/MacOSX/MachTask.mm macports_master/tools/lldb/tools/debugserver/source/MacOSX/MachTask.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 37897a5a6..051d88363 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- llvm_master/tools/lldb/tools/debugserver/source/MacOSX/MachTask.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ macports_master/tools/lldb/tools/debugserver/source/MacOSX/MachTask.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -24,6 +24,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #import <sys/sysctl.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if defined(__APPLE__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <Availability.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <pthread.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <sched.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -429,7 +430,7 @@ profile_data_stream << "wired:" << vminfo.wire_count * pagesize << ';';
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ profile_data_stream << "active:" << vminfo.active_count * pagesize << ';';
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ profile_data_stream << "inactive:" << vminfo.inactive_count * pagesize << ';';
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if defined(HOST_VM_INFO64_COUNT)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined(HOST_VM_INFO64_COUNT) && (!defined(__APPLE__) || __MAC_OS_X_VERSION_MAX_ALLOWED >= 1090)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       // This mimicks Activity Monitor.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       uint64_t total_used_count =
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           (physical_memory / pagesize) -
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-- 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+2.11.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/9001-macports-libstdcxx.diff b/lang/llvm-4.0/files/9001-macports-libstdcxx.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..97b4c38
</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/9001-macports-libstdcxx.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,125 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- orig/tools/clang/include/clang/Lex/HeaderSearchOptions.h       2015-11-17 23:54:13.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ new/tools/clang/include/clang/Lex/HeaderSearchOptions.h        2017-01-04 17:50:27.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -162,6 +162,9 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /// Use libc++ instead of the default libstdc++.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   unsigned UseLibcxx : 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  /// Use MacPorts libstdc++ instead of default system libstdc++.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  unsigned UseMacPortsLibstdcxx : 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /// Whether header search information should be output as for -v.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   unsigned Verbose : 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- orig/tools/clang/lib/Frontend/CompilerInvocation.cpp   2016-07-13 15:32:15.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ new/tools/clang/lib/Frontend/CompilerInvocation.cpp    2017-01-04 17:52:18.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1407,8 +1407,10 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   Opts.UseBuiltinIncludes = !Args.hasArg(OPT_nobuiltininc);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   Opts.UseStandardSystemIncludes = !Args.hasArg(OPT_nostdsysteminc);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   Opts.UseStandardCXXIncludes = !Args.hasArg(OPT_nostdincxx);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  if (const Arg *A = Args.getLastArg(OPT_stdlib_EQ))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (const Arg *A = Args.getLastArg(OPT_stdlib_EQ)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Opts.UseLibcxx = (strcmp(A->getValue(), "libc++") == 0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    Opts.UseMacPortsLibstdcxx = (strcmp(A->getValue(), "macports-libstdc++") == 0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   Opts.ResourceDir = Args.getLastArgValue(OPT_resource_dir);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   Opts.ModuleCachePath = Args.getLastArgValue(OPT_fmodules_cache_path);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   Opts.ModuleUserBuildPath = Args.getLastArgValue(OPT_fmodules_user_build_path);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- orig/tools/clang/lib/Frontend/InitHeaderSearch.cpp     2016-05-16 10:22:25.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ new/tools/clang/lib/Frontend/InitHeaderSearch.cpp      2017-01-04 18:04:43.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -108,7 +108,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if defined(LLVM_ON_WIN32)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return !Path.empty() && llvm::sys::path::is_separator(Path[0]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  return llvm::sys::path::is_absolute(Path);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return llvm::sys::path::is_absolute(Path) && Path.find("@@MACPORTS_GCC_INCLUDE_DIR@@")!=0;
</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;'>+@@ -361,20 +361,31 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     case llvm::Triple::ppc:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     case llvm::Triple::ppc64:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      if (HSOpts.UseMacPortsLibstdcxx) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        AddGnuCPlusPlusIncludePaths("@@MACPORTS_GCC_INCLUDE_DIR@@",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                    "@@MACPORTS_HOST_NAME@@", "", "ppc64",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                    triple);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.2.1",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                   "powerpc-apple-darwin10", "", "ppc64",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                   triple);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.0.0",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                   "powerpc-apple-darwin8", "", "ppc64",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                   triple);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     case llvm::Triple::x86:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     case llvm::Triple::x86_64:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      if (HSOpts.UseMacPortsLibstdcxx) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        AddGnuCPlusPlusIncludePaths("@@MACPORTS_GCC_INCLUDE_DIR@@",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                    "@@MACPORTS_HOST_NAME@@", "i386", "", triple);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.2.1",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                   "i686-apple-darwin10", "", "x86_64", triple);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.0.0",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                   "i686-apple-darwin8", "", "x86_64", triple);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     case llvm::Triple::arm:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- orig/tools/clang/include/clang/Driver/ToolChain.h      2016-06-16 03:36:09.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ new/tools/clang/include/clang/Driver/ToolChain.h       2017-01-04 18:08:42.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -52,7 +52,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   enum CXXStdlibType {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     CST_Libcxx,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    CST_Libstdcxx
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    CST_Libstdcxx,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    CST_MacPortsLibstdcxx
</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;'>+   enum RuntimeLibType {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- orig/tools/clang/lib/Driver/ToolChains.cpp     2016-11-23 14:25:50.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ new/tools/clang/lib/Driver/ToolChains.cpp      2017-01-04 20:52:25.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -786,6 +786,13 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     // Otherwise, let the linker search.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     CmdArgs.push_back("-lstdc++");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  case ToolChain::CST_MacPortsLibstdcxx:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if (getVFS().exists("@@MACPORTS_libstdc++@@")) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      CmdArgs.push_back("@@MACPORTS_libstdc++@@");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      return;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    CmdArgs.push_back("-lstdc++");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    break;
</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;'>+@@ -3296,6 +3303,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     return ToolChain::CST_Libstdcxx;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   StringRef Value = A->getValue();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (Value == "macports-libstdc++" )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      return ToolChain::CST_MacPortsLibstdcxx;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (Value != "libstdc++")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     getDriver().Diag(diag::err_drv_invalid_stdlib_name) << A->getAsString(Args);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- orig/tools/clang/lib/Driver/ToolChain.cpp      2016-07-15 16:13:27.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ new/tools/clang/lib/Driver/ToolChain.cpp       2017-01-05 08:14:23.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -563,6 +563,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     return ToolChain::CST_Libcxx;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   else if (LibName == "libstdc++")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     return ToolChain::CST_Libstdcxx;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  else if (LibName == "macports-libstdc++")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return ToolChain::CST_MacPortsLibstdcxx;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   else if (LibName == "platform")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     return GetDefaultCXXStdlibType();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -636,6 +638,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   case ToolChain::CST_Libstdcxx:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  case ToolChain::CST_MacPortsLibstdcxx:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     CmdArgs.push_back("-lstdc++");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     break;
</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/leopard-no-asan.patch b/lang/llvm-4.0/files/leopard-no-asan.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..0a41a52
</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/leopard-no-asan.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,12 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/projects/compiler-rt/cmake/config-ix.cmake       2015-11-29 22:17:04.000000000 -0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/projects/compiler-rt/cmake/config-ix.cmake       2015-11-29 22:19:16.000000000 -0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -228,9 +228,6 @@ if(APPLE)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       set(SANITIZER_MIN_OSX_VERSION 10.9)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if(SANITIZER_MIN_OSX_VERSION VERSION_LESS "10.7")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      message(FATAL_ERROR "macOS deployment target '${SANITIZER_MIN_OSX_VERSION}' is too old.")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if(SANITIZER_MIN_OSX_VERSION VERSION_GREATER "10.9")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       message(WARNING "macOS deployment target '${SANITIZER_MIN_OSX_VERSION}' is too new, setting to '10.9' instead.")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       set(SANITIZER_MIN_OSX_VERSION 10.9)
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/llvm-4.0/files/leopard-no-blocks.patch b/lang/llvm-4.0/files/leopard-no-blocks.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..f496320
</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/leopard-no-blocks.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,26 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 2500edffc9f1f44983927351eb60d4fe1cee4bcd Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Wed, 7 Jan 2015 03:42:15 -0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH] Leopard: Default to -fno-blocks
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lib/Driver/ToolChains.h | 2 +-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1 file changed, 1 insertion(+), 1 deletion(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/lib/Driver/ToolChains.h b/lib/Driver/ToolChains.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 876bb01..27aa2ee 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/tools/clang/lib/Driver/ToolChains.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/tools/clang/lib/Driver/ToolChains.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -257,7 +257,7 @@ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   bool IsBlocksDefault() const override {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     // Always allow blocks on Apple; users interested in versioning are
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     // expected to use /usr/include/Block.h.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    return true;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   bool IsIntegratedAssemblerDefault() const override {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     // Default integrated assembler to on for Apple's MachO targets.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-- 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+2.2.1
</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/llvm-bin b/lang/llvm-4.0/files/llvm-bin
</span>new file mode 100755
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..b060c1a
</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/llvm-bin
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,2 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#!/bin/sh
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+exec EXEC_PATH "${@}"
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/llvm-4.0/files/mp-clang-4.0 b/lang/llvm-4.0/files/mp-clang-4.0
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..07c507a
</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/mp-clang-4.0
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,34 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/c-index-test-mp-4.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/clang++-mp-4.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/clang-mp-4.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/clang-format-mp-4.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/scan-build-mp-4.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/scan-view-mp-4.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/clang-apply-replacements-mp-4.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/clang-check-mp-4.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/clang-cl-mp-4.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/clang-query-mp-4.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/clang-rename-mp-4.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/clang-tidy-mp-4.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;'>+-
</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;'>+-
</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;'>+-
</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;'>+-
</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;'>+-
</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/mp-llvm-4.0 b/lang/llvm-4.0/files/mp-llvm-4.0
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..d6c1185
</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/mp-llvm-4.0
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,60 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/bugpoint-mp-4.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/llc-mp-4.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/lli-mp-4.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/llvm-ar-mp-4.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/llvm-as-mp-4.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/llvm-bcanalyzer-mp-4.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/llvm-config-mp-4.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/llvm-cov-mp-4.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/llvm-diff-mp-4.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/llvm-dis-mp-4.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/llvm-dwarfdump-mp-4.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/llvm-extract-mp-4.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/llvm-link-mp-4.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/llvm-mc-mp-4.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/llvm-mcmarkup-mp-4.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/llvm-nm-mp-4.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/llvm-objdump-mp-4.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/llvm-ranlib-mp-4.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/llvm-rtdyld-mp-4.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/llvm-size-mp-4.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/llvm-stress-mp-4.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/llvm-symbolizer-mp-4.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/llvm-tblgen-mp-4.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;'>+bin/opt-mp-4.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/llvm-tblgen-mp-4.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/llvm-readobj-mp-4.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/llvm-profdata-mp-4.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/llvm-dsymutil-mp-4.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/llvm-cxxdump-mp-4.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/llvm-pdbdump-mp-4.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/llvm-c-test-mp-4.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/llvm-dwp-mp-4.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/llvm-lib-mp-4.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/llvm-lto-mp-4.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/llvm-split-mp-4.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;'>+-
</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;'>+-
</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;'>+-
</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;'>+-
</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;'>+-
</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/openmp-locations.patch b/lang/llvm-4.0/files/openmp-locations.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..1b0f419
</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/openmp-locations.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,53 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- orig/tools/clang/lib/Driver/Tools.cpp.orig     2016-10-31 22:23:57.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ fixed/tools/clang/lib/Driver/Tools.cpp 2016-10-31 22:31:55.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3154,12 +3154,18 @@ static void addOpenMPRuntime(ArgStringLi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   switch (TC.getDriver().getOpenMPRuntime(Args)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   case Driver::OMPRT_OMP:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    // Automatically find MacPorts' libomp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    CmdArgs.push_back("-L@@PREFIX@@/lib/libomp");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     CmdArgs.push_back("-lomp");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   case Driver::OMPRT_GOMP:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    // Automatically find MacPorts' libomp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    CmdArgs.push_back("-L@@PREFIX@@/lib/libomp");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     CmdArgs.push_back("-lgomp");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   case Driver::OMPRT_IOMP5:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    // Automatically find MacPorts' libomp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    CmdArgs.push_back("-L@@PREFIX@@/lib/libomp");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     CmdArgs.push_back("-liomp5");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   case Driver::OMPRT_Unknown:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -5283,6 +5289,8 @@ void Clang::ConstructJob(Compilation &C,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     case Driver::OMPRT_OMP:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     case Driver::OMPRT_IOMP5:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       // Clang can generate useful OpenMP code for these two runtime libraries.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      // Automatically find MacPorts' omp.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      CmdArgs.push_back("-I@@PREFIX@@/include/libomp");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       CmdArgs.push_back("-fopenmp");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       // If no option regarding the use of TLS in OpenMP codegeneration is
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -10119,9 +10127,13 @@ void gnutools::Linker::ConstructJob(Comp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         // Also link the particular OpenMP runtimes.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         switch (ToolChain.getDriver().getOpenMPRuntime(Args)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         case Driver::OMPRT_OMP:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          // Automatically find MacPorts' libomp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          CmdArgs.push_back("-L@@PREFIX@@/lib/libomp");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           CmdArgs.push_back("-lomp");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         case Driver::OMPRT_GOMP:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          // Automatically find MacPorts' libomp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          CmdArgs.push_back("-L@@PREFIX@@/lib/libomp");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           CmdArgs.push_back("-lgomp");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           // FIXME: Exclude this for platforms with libgomp that don't require
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -10129,6 +10141,8 @@ void gnutools::Linker::ConstructJob(Comp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           CmdArgs.push_back("-lrt");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         case Driver::OMPRT_IOMP5:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          // Automatically find MacPorts' libomp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          CmdArgs.push_back("-L@@PREFIX@@/lib/libomp");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           CmdArgs.push_back("-liomp5");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         case Driver::OMPRT_Unknown:
</span></pre><pre style='margin:0'>

</pre>