<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/53ae45624663d6746db6ced7f7710fdcc49b87bb">https://github.com/macports/macports-ports/commit/53ae45624663d6746db6ced7f7710fdcc49b87bb</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'> new 53ae456 llvm-7.0: New port
</span>53ae456 is described below
<span style='display:block; white-space:pre;color:#808000;'>commit 53ae45624663d6746db6ced7f7710fdcc49b87bb
</span>Author: Jeremy Huddleston Sequoia <jeremyhu@macports.org>
AuthorDate: Mon Sep 3 17:04:34 2018 -0700
<span style='display:block; white-space:pre;color:#404040;'> llvm-7.0: New port
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> Based on 7.0rc2
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@macports.org>
</span>---
lang/llvm-7.0/Portfile | 657 +++++++++++++++++++++
...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 | 33 ++
...ssues-pre-Lion-due-to-missing-a-strnlen-d.patch | 70 +++
...nly-call-pthread_setname_np-on-SnowLeopar.patch | 36 ++
...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 ++
...oat.h-to-work-on-Snow-Leopard-and-earlier.patch | 34 ++
...-O_CLOEXEC-for-older-SDKs-that-don-t-have.patch | 49 ++
...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 ++++++++++
lang/llvm-7.0/files/9001-macports-libstdcxx.diff | 135 +++++
lang/llvm-7.0/files/leopard-no-asan.patch | 12 +
lang/llvm-7.0/files/leopard-no-blocks.patch | 26 +
lang/llvm-7.0/files/llvm-bin | 7 +
lang/llvm-7.0/files/llvm-bin-compat | 2 +
lang/llvm-7.0/files/mp-clang-7.0 | 34 ++
lang/llvm-7.0/files/mp-llvm-7.0 | 60 ++
lang/llvm-7.0/files/openmp-locations.patch | 39 ++
lang/llvm-7.0/files/yosemite-no-clangd.patch | 10 +
27 files changed, 1989 insertions(+)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/llvm-7.0/Portfile b/lang/llvm-7.0/Portfile
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..b58943b
</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-7.0/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,657 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# TODO:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# * Update clang and lldb subports to build against installed libLLVM/libclang
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortSystem 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup select 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup compiler_blacklist_versions 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup active_variants 1.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup cmake 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set llvm_version 7.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set llvm_version_no_dot 70
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set clang_executable_version 7
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set lldb_executable_version 7.0.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+name llvm-${llvm_version}
</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><span style='display:block; white-space:pre;background:#e0ffe0;'>+set suffix mp-${llvm_version}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set sub_prefix ${prefix}/libexec/llvm-${llvm_version}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+dist_subdir llvm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+categories lang
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+platforms darwin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+license NCSA
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+maintainers {jeremyhu @jeremyhu} {larryv @larryv}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {${subport} eq "llvm-${llvm_version}"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ homepage http://llvm.org/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ description llvm is a next generation compiler infrastructure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ long_description The LLVM Core libraries provide a modern source- and \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ target-independent optimizer, along with code \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ generation support for many popular CPUs (as well as \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ some less common ones!) These libraries are built \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ around a well specified code representation known as \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ the LLVM intermediate representation ("LLVM IR").
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_lib port:libedit port:libffi port:ncurses path:lib/libxar.dylib:xar port:zlib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_run bin:perl:perl5 port:llvm_select
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+} elseif {${subport} eq "clang-${llvm_version}"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ homepage http://clang.llvm.org/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ description C, C++, Objective C and Objective C++ compiler
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ long_description Clang is an "LLVM native" C/C++/Objective-C compiler, \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ which aims to deliver amazingly fast compiles (e.g. \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ about 3x faster than GCC when compiling Objective-C \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ code in a debug configuration), extremely useful error \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ and warning messages and to provide a platform for \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ building great source level tools. The included Clang \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Static Analyzer is a tool that automatically finds bugs in \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ your code, and is a great example of the sort of tool \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ that can be built using the Clang frontend as a \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ library to parse C/C++ code.
</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;'>+ depends_run port:clang_select port:ld64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_skip_archcheck-append ld64 subversion
</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:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Older Xcode's lipo doesn't support x86_64h slices
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # https://trac.macports.org/ticket/53159#ticket
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {[vercmp $xcodeversion "6.0.0"] < 0} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_build-append port:cctools
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_skip_archcheck-append cctools
</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 +analyzer
</span><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:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</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 341342
</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:#e0ffe0;'>+
</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><span style='display:block; white-space:pre;background:#e0ffe0;'>+#worksrcdir release_${llvm_version_no_dot}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#svn.url https://llvm.org/svn/llvm-project/llvm/branches/release_${llvm_version_no_dot}
</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:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+version ${llvm_version}.0rc2
</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;'>+master_sites http://prereleases.llvm.org/${llvm_version}.0/rc2
</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><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {${distfiles} ne ""} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {${subport} eq "llvm-${llvm_version}"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {[variant_isset polly]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ distfiles-append polly-${version}.src${extract.suffix}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ } elseif {${subport} eq "clang-${llvm_version}"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 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><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:#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;'>+checksums llvm-7.0.0rc2.src.tar.xz \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ rmd160 ac4f5120964332acec8557b81be0a8565b860d08 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sha256 f6af877a59d708ea1011af2f1b17c68589d4b81eb70872fab6e0608e4950e8f4 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size 28320756 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cfe-7.0.0rc2.src.tar.xz \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ rmd160 544009a784c8043564b8de4f8c7c777ecd9dd0b7 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sha256 43d881a04844dc59d7bd9ef07e0317fe74c6e22e0c9f184121c6e98ad2b4584b \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size 12539260 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ compiler-rt-7.0.0rc2.src.tar.xz \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ rmd160 a40ed32d4080278ded7e21b30594ae427fb00738 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sha256 d2da501ba8fec4fd197a2626080925b54b77923bd37214ccf0775f78d3cddc29 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size 1817604 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libcxx-7.0.0rc2.src.tar.xz \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ rmd160 d4100565772faa9a2737c088ccfc3a14576e93f0 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sha256 fc142ad7aadb7c64b89a1a93700da196c1c1c295a482ca881d537e16aadeb56f \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size 1654748 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ clang-tools-extra-7.0.0rc2.src.tar.xz \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ rmd160 3cf964dd26c95c66fa5b9d37b8c26c5cd64f44a2 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sha256 70bb5893272a9824552d4d000f3e86dd43285ea5c5601e5d38eb4bdd24d9e49e \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size 903424 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lldb-7.0.0rc2.src.tar.xz \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ rmd160 0fe949b958abc917fd421384671cf2cd64e6dd0b \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sha256 f783e221b3f567e530c6d33f5495f9240f1d2902b9652de184f29a9a45f2dcf5 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size 19403564 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ polly-7.0.0rc2.src.tar.xz \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ rmd160 26e01c1a0ec6d8824794031747e8823ba4c56bbb \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sha256 a7888707c80a74156ee9074f188de19a00bd9bd482fd46948e4dc743f1a9e067 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size 8749092
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patch.pre_args -p1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 0001-Set-the-Mach-O-CPU-Subtype-to-ppc7400-when-targeting.patch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 0002-Define-EXC_MASK_CRASH-and-MACH_EXCEPTION_CODES-if-th.patch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 0003-MacPorts-Only-Don-t-embed-the-deployment-target-in-t.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><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 0005-Threading-Only-call-pthread_setname_np-on-SnowLeopar.patch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {${subport} eq "clang-${llvm_version}"} {
</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;'>+ 2001-xray-Define-O_CLOEXEC-for-older-SDKs-that-don-t-have.patch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 3001-Fix-local-and-iterator-when-building-with-Lion-and-n.patch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 3002-Fix-missing-long-long-math-prototypes-when-using-the.patch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 3003-implement-atomic-using-mutex-lock_guard-for-64b-ops-.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;'>+ 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;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.post_args ../${worksrcdir}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default configure.dir {${workpath}/build}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default build.dir {${workpath}/build}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+cmake.install_prefix ${sub_prefix}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Adjust this once cmake-1.0.tcl is fixed:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# https://github.com/macports/macports-ports/pull/103
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Also see:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# https://llvm.org/bugs/show_bug.cgi?id=31425
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# https://trac.macports.org/ticket/53299
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.args-delete \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -DCMAKE_INSTALL_NAME_DIR=${prefix}/lib \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -DCMAKE_INSTALL_RPATH=${prefix}/lib \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -DCMAKE_SYSTEM_PREFIX_PATH="${prefix}\;/usr"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.args-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -DCMAKE_SYSTEM_PREFIX_PATH="${cmake.install_prefix}\;${prefix}\;/usr"
</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;'>+ -DLLVM_LINK_LLVM_DYLIB=ON \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -DLLVM_ENABLE_ASSERTIONS=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -DLLVM_ENABLE_RTTI=ON \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -DLLVM_INCLUDE_TESTS=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -DLLVM_INCLUDE_EXAMPLES=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -DLLVM_ENABLE_FFI=ON \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -DLLVM_BINDINGS_LIST=none \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -DFFI_INCLUDE_DIR=`pkg-config --cflags-only-I libffi | sed 's/-I//'` \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -DFFI_LIBRARY_DIR=${prefix}/lib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {${subport} eq "llvm-${llvm_version}"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ select.group llvm
</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;'>+} elseif {${subport} eq "clang-${llvm_version}"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ select.group clang
</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;'>+ # CMAKE_LINKER is used to determine the value for HOST_LINK_VERSION
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.args-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -DCMAKE_LINKER=${prefix}/bin/ld \
</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;'>+ -DDARWIN_PREFER_PUBLIC_SDK=ON \
</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;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # TODO: libc++ shouldn't be built at all.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # https://llvm.org/bugs/show_bug.cgi?id=25666
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {${os.major} <= 13} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # We unfortunately don't have an option to just turn off tsan
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # https://llvm.org/bugs/show_bug.cgi?id=27715
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.args-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -DCOMPILER_RT_BUILD_SANITIZERS=OFF
</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 {${os.major} <= 11} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # libfuzzer uses TLS, so disable it on Snow Leopard and earlier
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.args-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -DCOMPILER_RT_BUILD_LIBFUZZER=OFF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><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><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;'>+# llvm-3.5 and later requires a C++11 runtime
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# XCode 4.3's clang (318.x) fails per https://trac.macports.org/ticket/44161
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# XCode 4.5's clang (421.11.66) fails due to http://llvm.org/bugs/show_bug.cgi?id=20184
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Xcode 4.6.3's clang (425.0.28) fails due to http://trac.macports.org/ticket/46897
</span><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><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Xcode 5.1's clang (clang-503.0.40) has codegen issues (resulting compiler crashes)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Xcode 6.2's clang (600.0.57) fails due to https://llvm.org/bugs/show_bug.cgi?id=25753
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+compiler.blacklist *gcc* {clang < 602}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {${subport} eq "clang-${llvm_version}"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # clang older than 3.5 fail due to https://llvm.org/bugs/show_bug.cgi?id=25753
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ compiler.blacklist-append macports-clang-3.3 macports-clang-3.4
</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;'>+ # Xcode 6.4's clang (602.0.53) fails to build lldb with 'thread-local storage is not supported for the current target'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ compiler.blacklist-append {clang < 700}
</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;'>+# blacklist current and future versions if they're not available in order to
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# help break potential dependency cycles.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+foreach ver {devel} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {![file exists ${prefix}/bin/clang-mp-${ver}]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ compiler.blacklist-append macports-clang-${ver}
</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;'>+# I'm not sure the exact version of Xcode that has a good enough libtool, but 3.2.6 seems to get past this when 3.1.4 doesn't:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# /Developer/usr/bin/libtool: for architecture x86_64 object: CMakeFiles/LLVMSupport.dir/PluginLoader.cpp.o malformed object (unknown load command 1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# /Developer/usr/bin/libtool: for architecture: (null) file: CMakeFiles/LLVMSupport.dir/PluginLoader.cpp.o is not an object file (not allowed in a library)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# /Developer/usr/bin/libtool: for architecture i386 object: CMakeFiles/LLVMSupport.dir/PluginLoader.cpp.o malformed object (unknown load command 1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {[string match macports-clang-* ${configure.compiler}]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_build-append port:cctools
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_skip_archcheck-append cctools
</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;'>+# Set CMAKE_LIBTOOL if we're using MacPorts-provided cctools
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {[lsearch -exact $PortInfo(depends_build) port:cctools] != -1} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.args-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -DCMAKE_LIBTOOL=${prefix}/bin/libtool
</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;'>+platform darwin {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Note that we are forcing this choice. This means that anything linking
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # against llvm-3.5 needs to also be using libc++. This is possibly
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # problematic, but luckily there is just a limited set of such dependents.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.cxx_stdlib libc++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_lib-append port:libcxx
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ supported_archs i386 x86_64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pre-fetch {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {![file exists /usr/lib/libc++.dylib]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ui_error "$name requires a C++11 runtime, which your configuration does not allow"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ error "unsupported configuration"
</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;'>+variant universal {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ post-extract {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # workaround a bug in Apple's shipped gcc driver-driver, patched in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # ours with driverdriver-num_infiles.patch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {${configure.compiler} eq "gcc-4.0" ||
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ${configure.compiler} eq "gcc-4.2" ||
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ${configure.compiler} eq "llvm-gcc-4.2"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ system "echo \"static int ___ignoreme;\" > ${worksrcpath}/tools/llvm-shlib/ignore.c"
</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;'>+variant assertions description "Enable assertions for error detection (has performance impacts, especially on JIT)" {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.args-delete -DLLVM_ENABLE_ASSERTIONS=OFF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.args-append -DLLVM_ENABLE_ASSERTIONS=ON
</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;'>+platform darwin {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {[string match "*ppc*" [get_canonical_archs]]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # http://trac.macports.org/ticket/33987
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.optflags -Os
</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 "clang-${llvm_version}" && [vercmp $xcodeversion 5.0] < 0} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # https://llvm.org/bugs/show_bug.cgi?id=13671
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ patchfiles-append leopard-no-asan.patch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.args-append -DCOMPILER_RT_BUILD_SANITIZERS=OFF
</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 "clang-${llvm_version}" && ${os.major} <= 9} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ patchfiles-append leopard-no-blocks.patch
</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 "clang-${llvm_version}" && ${os.major} <= 14} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ patchfiles-append yosemite-no-clangd.patch
</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 {${os.major} < 11} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Proxy for eliminating the dependency on native TLS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # http://trac.macports.org/ticket/46887
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.args-append -DLLVM_ENABLE_BACKTRACES=OFF
</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=25680
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.cxxflags-append -U__STRICT_ANSI__
</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;'>+ # https://llvm.org/bugs/show_bug.cgi?id=25674
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.cxxflags-append -std=c++11
</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;'>+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><span style='display:block; white-space:pre;background:#e0ffe0;'>+post-extract {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Get HTTP proxy arguments if required, assuming we can use the same proxy for all repositories
</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><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {${subport} eq "llvm-${llvm_version}"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {[variant_isset polly]} {
</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/polly/trunk polly"
</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/polly/branches/release_${llvm_version_no_dot} polly"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ file rename ${workpath}/polly-${version}.src ${worksrcpath}/tools/polly
</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;'>+ } elseif {${subport} eq "clang-${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}/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><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}/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><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}/compiler-rt-${version}.src ${worksrcpath}/projects/compiler-rt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ file rename ${workpath}/libcxx-${version}.src ${worksrcpath}/projects/libcxx
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ file rename ${workpath}/clang-tools-extra-${version}.src ${worksrcpath}/tools/clang/tools/extra
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><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:#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 "clang-${llvm_version}"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ destroot {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ system "cd ${destroot.dir}/tools/clang && ${destroot.cmd} ${destroot.pre_args} ${destroot.target} ${destroot.post_args}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ system "cd ${destroot.dir}/projects/compiler-rt && ${destroot.cmd} ${destroot.pre_args} ${destroot.target} ${destroot.post_args}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ system "cd ${destroot.dir}/projects/libcxx && ${destroot.cmd} ${destroot.pre_args} ${destroot.target} ${destroot.post_args}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ delete ${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;'>+ reinplace "s|/bin/clang-${clang_executable_version}|/bin/clang|g" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ "${destroot}${sub_prefix}/lib/cmake/clang/ClangTargets-release.cmake"
</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/ToolChains/Clang.cpp \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ${worksrcpath}/tools/clang/lib/Driver/ToolChains/CommonArgs.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;'>+ 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}/share/doc/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:#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;'>+post-destroot {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ foreach bin [glob ${destroot}${sub_prefix}/bin/*] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set bin_filename [string map "${sub_prefix} ${prefix}" ${bin}]-${suffix}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set exec_path [string map "${destroot}${sub_prefix} ${sub_prefix}" ${bin}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # see https://trac.macports.org/ticket/54985
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {${os.platform} eq "darwin" && [vercmp ${xcodeversion} 4.6] < 0} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ xinstall -m 755 "${filespath}/llvm-bin-compat" "${bin_filename}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ xinstall -m 755 "${filespath}/llvm-bin" "${bin_filename}"
</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;'>+ reinplace "s:EXEC_PATH:${exec_path}:" "${bin_filename}"
</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 "llvm-${llvm_version}"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # r156389 (a5d2435409858728970202226d0bbbee508fe408) temporarilary removed llvm man pages
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #foreach man [glob ${destroot}${sub_prefix}/share/man/man1/*.1] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # set basename [string map "${destroot}${sub_prefix}/share/man/man1/ {}" ${man}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # file rename ${man} ${destroot}${prefix}/share/man/man1/[string map ".1 -${suffix}.1" ${basename}]
</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;'>+ # https://llvm.org/bugs/show_bug.cgi?id=19465
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {[variant_isset polly]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ln -s LLVMPolly.so ${destroot}${sub_prefix}/lib/LLVMPolly.dylib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ } elseif {${subport} eq "clang-${llvm_version}"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ system "ditto ${worksrcpath}/projects/libcxx/include ${destroot}${sub_prefix}/lib/c++/v1"
</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/33207
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ln -s ${prefix}/libexec/ld64/ld ${destroot}${sub_prefix}/bin/ld
</span><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:#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 "llvm-${llvm_version}"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ variant polly description {Provide the polly polyhedral optimizer} {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Unless upstream reverts to their old OCaml detection mechanism,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # this variant will be broken until #46161 is resolved.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ variant ocaml description {Enable generation of OCaml binding} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_lib-append port:ocaml
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.args-delete -DLLVM_BINDINGS_LIST=none
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.args-append -DLLVM_BINDINGS_LIST=ocaml
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ destroot.args-append OVERRIDE_libdir=${sub_prefix}/lib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+} elseif {${subport} eq "clang-${llvm_version}"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {[variant_isset assertions]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Need to match llvm +-assertions
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ require_active_variants port:llvm-${llvm_version} assertions
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Need to match llvm +-assertions
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ require_active_variants port:llvm-${llvm_version} {} assertions
</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;'>+ variant analyzer description {Install clang static analyzer} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.args-delete \
</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;'>+ configure.args-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -DCLANG_ENABLE_STATIC_ANALYZER=ON
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_run-append port:perl5
</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|/usr/bin/env perl|${prefix}/bin/perl5|g" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ${worksrcpath}/tools/clang/tools/scan-build/libexec/ccc-analyzer \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ${worksrcpath}/tools/clang/tools/scan-build/libexec/c++-analyzer \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ${worksrcpath}/tools/clang/tools/scan-build/bin/scan-build
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ reinplace "s|/usr/bin/env python|${prefix}/bin/python2.7|g" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ${worksrcpath}/tools/clang/tools/scan-build/bin/set-xcode-analyzer \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ${worksrcpath}/tools/clang/tools/scan-view/bin/scan-view
</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;'>+ variant libstdcxx description {-stdlib=macports-libstdc++ searches for MacPorts libstdc++} {
</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/gcc/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/Darwin.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # GCC was built for ${build_arch}-apple-darwin${os.major}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # if GCC was also built universal, it has an extra include directory
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # if ${build_arch} is 32-bit, there is an extra 64-bit subdirectory
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # if ${build_arch} is 64-bit, there is an extra 32-bit subdirectory
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # MacPorts GCC can not compile across platforms
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ switch ${build_arch} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ x86_64 {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set gcc_subdirectory_ppc ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set gcc_subdirectory_ppc64 "ppc64"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set gcc_subdirectory_i386 "i386"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set gcc_subdirectory_x86_64 ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ i386 {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set gcc_subdirectory_ppc ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set gcc_subdirectory_ppc64 "ppc64"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set gcc_subdirectory_i386 ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set gcc_subdirectory_x86_64 "x86_64"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ppc64 {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set gcc_subdirectory_ppc "ppc"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set gcc_subdirectory_ppc64 ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set gcc_subdirectory_i386 ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set gcc_subdirectory_x86_64 "x86_64"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ppc {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set gcc_subdirectory_ppc ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set gcc_subdirectory_ppc64 "ppc64"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set gcc_subdirectory_i386 ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set gcc_subdirectory_x86_64 "x86_64"
</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;'>+ reinplace "s|@@MACPORTS_GCC_SUBDIRECTORY_x86_64@@|${gcc_subdirectory_x86_64}|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_GCC_SUBDIRECTORY_i386@@|${gcc_subdirectory_i386}|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_GCC_SUBDIRECTORY_ppc64@@|${gcc_subdirectory_ppc64}|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_GCC_SUBDIRECTORY_ppc@@|${gcc_subdirectory_ppc}|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;'>+ }
</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><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/ToolChains/Clang.cpp \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ${worksrcpath}/tools/clang/lib/Driver/ToolChains/CommonArgs.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;'>+ post-destroot {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ file mkdir ${destroot}${sub_prefix}/libexec
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ file copy ${worksrcpath}/tools/clang/tools/clang-format ${destroot}${sub_prefix}/libexec/clang-format
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ file delete -force ${destroot}${sub_prefix}/libexec/clang-format/.svn
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ file delete -force ${destroot}${sub_prefix}/libexec/clang-format/Makefile
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ file delete -force ${destroot}${sub_prefix}/libexec/clang-format/Release+Debug+Asserts
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ file delete -force ${destroot}${sub_prefix}/libexec/clang-format/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ file delete -force ${destroot}${sub_prefix}/libexec/clang-format/ClangFormat.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;'>+livecheck.type none
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/llvm-7.0/files/0001-Set-the-Mach-O-CPU-Subtype-to-ppc7400-when-targeting.patch b/lang/llvm-7.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..691042a
</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-7.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 3b3932ac16c4ce7d21e0801efef9e1c73d4e0c20 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 a405dd70c30..b1b62146d3b 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, support::big) { }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ DarwinPPCAsmBackend(const Target &T, const Triple &TT) : PPCAsmBackend(T, support::big), TheTriple(TT) { }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ std::unique_ptr<MCObjectTargetWriter>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ createObjectTargetWriter() 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;'>+ /*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;'>+@@ -236,7 +243,7 @@ MCAsmBackend *llvm::createPPCAsmBackend(const Target &T,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ const MCTargetOptions &Options) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ const Triple &TT = STI.getTargetTriple();
</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.17.1 (Apple Git-112)
</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-7.0/files/0002-Define-EXC_MASK_CRASH-and-MACH_EXCEPTION_CODES-if-th.patch b/lang/llvm-7.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..46e723d
</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-7.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 5cdaf22bd9051d4e199d642bf0b2ae194318229d 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 de26695d64e..2ac29c12c8d 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;'>+@@ -564,6 +564,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.17.1 (Apple Git-112)
</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-7.0/files/0003-MacPorts-Only-Don-t-embed-the-deployment-target-in-t.patch b/lang/llvm-7.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..0f24fc1
</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-7.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,33 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 78a4f3c47e4a14c28a402828a127b6a9e070115b 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 | 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/lib/CodeGen/AsmPrinter/AsmPrinter.cpp macports_master/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 1b429331a35..6b6aa3c65d3 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;'>+@@ -258,8 +258,10 @@ bool AsmPrinter::doInitialization(Module &M) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // alternative is duplicated code in each of the target asm printers that
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // use the directive, where it would need the same conditionalization
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // anyway.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- const Triple &Target = TM.getTargetTriple();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- OutStreamer->EmitVersionForTarget(Target);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (MAI->useIntegratedAssembler()) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ const Triple &Target = TM.getTargetTriple();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ OutStreamer->EmitVersionForTarget(Target);
</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;'>+ // Allow the target to emit any magic that it wants at the start of the file.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ EmitStartOfAsmFile(M);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+2.17.1 (Apple Git-112)
</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-7.0/files/0004-Fix-build-issues-pre-Lion-due-to-missing-a-strnlen-d.patch b/lang/llvm-7.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..cd932e0
</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-7.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,70 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 129be7902cc13ee305724cd4e115b3a21d376fce 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 | 14 ++++++++++++++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ tools/obj2yaml/macho2yaml.cpp | 16 +++++++++++++++-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 2 files changed, 29 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 e00a4ea9307..0daba44573c 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;'>+@@ -22,6 +22,20 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <cstdint>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <cstring>
</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() = default;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git llvm_master/tools/obj2yaml/macho2yaml.cpp macports_master/tools/obj2yaml/macho2yaml.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index fa81ce974ec..1e86f820437 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- llvm_master/tools/obj2yaml/macho2yaml.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ macports_master/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.17.1 (Apple Git-112)
</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-7.0/files/0005-Threading-Only-call-pthread_setname_np-on-SnowLeopar.patch b/lang/llvm-7.0/files/0005-Threading-Only-call-pthread_setname_np-on-SnowLeopar.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..da1f466
</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-7.0/files/0005-Threading-Only-call-pthread_setname_np-on-SnowLeopar.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 1bbe86f7fae2f5222ee6d88d7e3c8d2dae3145c6 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, 27 Dec 2017 23:05:43 -0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 5/5] Threading: Only call pthread_setname_np() on SnowLeopard+
</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/Threading.inc | 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/lib/Support/Unix/Threading.inc macports_master/lib/Support/Unix/Threading.inc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 267af388ecd..1c8c1b026e3 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- llvm_master/lib/Support/Unix/Threading.inc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ macports_master/lib/Support/Unix/Threading.inc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -15,6 +15,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "llvm/ADT/Twine.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 <mach/mach_init.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <mach/mach_port.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -153,8 +154,10 @@ void llvm::set_thread_name(const Twine &Name) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ::pthread_setname_np(::pthread_self(), "%s",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ const_cast<char *>(NameStr.data()));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #elif defined(__APPLE__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if __MAC_OS_X_VERSION_MAX_ALLOWED >= 1060
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ::pthread_setname_np(NameStr.data());
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void llvm::get_thread_name(SmallVectorImpl<char> &Name) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+2.15.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-7.0/files/1001-MacPorts-Only-Prepare-clang-format-for-replacement-w.patch b/lang/llvm-7.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..d8e8ef6
</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-7.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 1073c30cbf57a41a7b5ca43c585eb203d3d96627 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/1008] 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 4f11daf15f..439beddd45 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 5fe592a920..20b1752477 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.17.1 (Apple Git-112)
</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-7.0/files/1002-MacPorts-Only-Fix-name-of-scan-view-executable-insid.patch b/lang/llvm-7.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..280fdd5
</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-7.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 f688609c4ef2bddecc851efae71dc3dd3154ff97 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/1008] 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 c50f900cc4..17c0e6821b 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;'>+@@ -1871,6 +1871,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.17.1 (Apple Git-112)
</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-7.0/files/1003-Default-to-ppc7400-for-OSX-10.5.patch b/lang/llvm-7.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..74adb6a
</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-7.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 3fb5a64c13f2e22aac27b00137924a9d70ba194c 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/1008] 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/ToolChains/CommonArgs.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/ToolChains/CommonArgs.cpp macports_master/tools/clang/lib/Driver/ToolChains/CommonArgs.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 1e093b25b9..729369180e 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- llvm_master/tools/clang/lib/Driver/ToolChains/CommonArgs.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ macports_master/tools/clang/lib/Driver/ToolChains/CommonArgs.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -318,6 +318,9 @@ std::string tools::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.17.1 (Apple Git-112)
</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-7.0/files/1004-Only-call-setpriority-PRIO_DARWIN_THREAD-0-PRIO_DARW.patch b/lang/llvm-7.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..61bd36f
</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-7.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 9f9ae872db92fced923774e7ed8fdbbfa9db8dba 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/1008] 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 499d9abf9a..97a47396ee 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;'>+@@ -8504,7 +8504,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.17.1 (Apple Git-112)
</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-7.0/files/1005-Default-to-fragile-ObjC-runtime-when-targeting-darwi.patch b/lang/llvm-7.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..e669a8b
</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-7.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 8a7a39dcafffba16b02da61c985103e377e81293 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/1008] 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/Darwin.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/Darwin.h macports_master/tools/clang/lib/Driver/ToolChains/Darwin.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index eee6e96671..95ba35162b 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- llvm_master/tools/clang/lib/Driver/ToolChains/Darwin.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ macports_master/tools/clang/lib/Driver/ToolChains/Darwin.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -230,8 +230,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.17.1 (Apple Git-112)
</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-7.0/files/1006-Fixup-libstdc-header-search-paths-for-older-versions.patch b/lang/llvm-7.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..9a304c3
</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-7.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 834f4290d396ffd5cb3d589476f75dd4baa7b6c2 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/1008] 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 8a70404629..db49a73533 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;'>+@@ -375,7 +375,7 @@ void InitHeaderSearch::AddDefaultCPlusPlusIncludePaths(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ "powerpc-apple-darwin10", "",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ "ppc64", triple);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ IsBaseFound |= AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.0.0",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- "powerpc-apple-darwin10", "",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ "powerpc-apple-darwin8", "",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ "ppc64", 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;'>+@@ -385,7 +385,7 @@ void InitHeaderSearch::AddDefaultCPlusPlusIncludePaths(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ "i686-apple-darwin10", "",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ "x86_64", triple);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ IsBaseFound |= AddGnuCPlusPlusIncludePaths(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- "/usr/include/c++/4.0.0", "i686-apple-darwin8", "", "", triple);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ "/usr/include/c++/4.0.0", "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.17.1 (Apple Git-112)
</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-7.0/files/1007-Fix-build-issues-pre-Lion-due-to-missing-a-strnlen-d.patch b/lang/llvm-7.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..281b990
</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-7.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 d82effb962fa2a1d2d4263357783fd29880a3d8b 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/1008] 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.17.1 (Apple Git-112)
</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-7.0/files/1008-Fix-float.h-to-work-on-Snow-Leopard-and-earlier.patch b/lang/llvm-7.0/files/1008-Fix-float.h-to-work-on-Snow-Leopard-and-earlier.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..3b038d9
</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-7.0/files/1008-Fix-float.h-to-work-on-Snow-Leopard-and-earlier.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,34 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From c1498fed17881cb1a533791368d9f983dd6ea5c0 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: Thu, 20 Jul 2017 17:15:35 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 1008/1008] Fix float.h to work on Snow Leopard and earlier
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://bugs.llvm.org/show_bug.cgi?id=31504
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://trac.macports.org/ticket/54135
</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/Headers/float.h | 7 ++++++-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1 file changed, 6 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/clang/lib/Headers/float.h macports_master/tools/clang/lib/Headers/float.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 44d4d05494..4970a722ed 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- llvm_master/tools/clang/lib/Headers/float.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ macports_master/tools/clang/lib/Headers/float.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -31,7 +31,12 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * Also fall back on Darwin to allow additional definitions and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * implementation-defined values.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if (defined(__APPLE__) || (defined(__MINGW32__) || defined(_MSC_VER))) && \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined(__APPLE__) && __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;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if ((defined(__APPLE__) && __has_include(<Availability.h>) && (!defined(__MAC_OS_X_VERSION_MAX_ALLOWED) || __MAC_OS_X_VERSION_MAX_ALLOWED >= 101300)) || (defined(__MINGW32__) || defined(_MSC_VER))) && \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ __STDC_HOSTED__ && __has_include_next(<float.h>)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Prior to Apple's 10.7 SDK, float.h SDK header used to apply an extra level
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+2.17.1 (Apple Git-112)
</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-7.0/files/2001-xray-Define-O_CLOEXEC-for-older-SDKs-that-don-t-have.patch b/lang/llvm-7.0/files/2001-xray-Define-O_CLOEXEC-for-older-SDKs-that-don-t-have.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..9330bbb
</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-7.0/files/2001-xray-Define-O_CLOEXEC-for-older-SDKs-that-don-t-have.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,49 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 585a864b88b65cfbe57765d769b92b771bfaf762 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, 27 Dec 2017 23:21:37 -0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 2001/2001] xray: Define O_CLOEXEC for older SDKs that don't
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ have it
</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/xray/xray_utils.cc | 6 ++++++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lib/xray/xray_x86_64.cc | 6 ++++++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 2 files changed, 12 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/xray/xray_utils.cc macports_master/projects/compiler-rt/lib/xray/xray_utils.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index b9a38d1b9..b26a76893 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- llvm_master/projects/compiler-rt/lib/xray/xray_utils.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ macports_master/projects/compiler-rt/lib/xray/xray_utils.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -25,6 +25,12 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <unistd.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <utility>
</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;'>++#ifndef O_CLOEXEC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define O_CLOEXEC 0x1000000
</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 __xray {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void printToStdErr(const char *Buffer) XRAY_NEVER_INSTRUMENT {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git llvm_master/projects/compiler-rt/lib/xray/xray_x86_64.cc macports_master/projects/compiler-rt/lib/xray/xray_x86_64.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index e34806fa1..74ac35e47 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- llvm_master/projects/compiler-rt/lib/xray/xray_x86_64.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ macports_master/projects/compiler-rt/lib/xray/xray_x86_64.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -12,6 +12,12 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <tuple>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <unistd.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;'>++#ifndef O_CLOEXEC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define O_CLOEXEC 0x1000000
</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 __xray {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static std::pair<ssize_t, bool>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+2.15.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-7.0/files/3001-Fix-local-and-iterator-when-building-with-Lion-and-n.patch b/lang/llvm-7.0/files/3001-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..b518631
</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-7.0/files/3001-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 9e5d2dc8be577c1971723412a84c16026f0aca75 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 3001/3003] 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 d163ab1b0..a44890712 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;'>+@@ -1044,8 +1044,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 d30d950c7..cd2869561 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;'>+@@ -1372,8 +1372,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.13.2
</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-7.0/files/3002-Fix-missing-long-long-math-prototypes-when-using-the.patch b/lang/llvm-7.0/files/3002-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..4a9dbf0
</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-7.0/files/3002-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 272f8f07e4ab1935fa6ce73fdd5373742e8e4c3d 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 3002/3003] 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 8c30ba85d..023943ca2 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.13.2
</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-7.0/files/3003-implement-atomic-using-mutex-lock_guard-for-64b-ops-.patch b/lang/llvm-7.0/files/3003-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..df32aa7
</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-7.0/files/3003-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 6edfb88a439f007e5b22f06389ff65fb20a8900a 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 3003/3003] 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 000000000..f10dd747e
</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 f55e28ff5..9ccf1ca75 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;'>+@@ -1885,4 +1885,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.13.2
</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-7.0/files/9001-macports-libstdcxx.diff b/lang/llvm-7.0/files/9001-macports-libstdcxx.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..c73a7b2
</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-7.0/files/9001-macports-libstdcxx.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,135 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- orig/tools/clang/include/clang/Lex/HeaderSearchOptions.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ new/tools/clang/include/clang/Lex/HeaderSearchOptions.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -185,6 +185,9 @@ public:
</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
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ new/tools/clang/lib/Frontend/CompilerInvocation.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1721,8 +1721,10 @@ static void ParseHeaderSearchArgs(HeaderSearchOptions &Opts, ArgList &Args,
</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;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // Canonicalize -fmodules-cache-path before storing it.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- orig/tools/clang/lib/Frontend/InitHeaderSearch.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ new/tools/clang/lib/Frontend/InitHeaderSearch.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -111,7 +111,7 @@ static bool CanPrefixSysroot(StringRef Path) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if defined(_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;'>+@@ -371,9 +371,17 @@ void InitHeaderSearch::AddDefaultCPlusPlusIncludePaths(
</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;'>+- IsBaseFound = AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.2.1",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- "powerpc-apple-darwin10", "",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- "ppc64", triple);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ IsBaseFound = false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (HSOpts.UseMacPortsLibstdcxx) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ IsBaseFound = AddGnuCPlusPlusIncludePaths("@@MACPORTS_GCC_INCLUDE_DIR@@",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ "@@MACPORTS_HOST_NAME@@", "@@MACPORTS_GCC_SUBDIRECTORY_ppc@@", "@@MACPORTS_GCC_SUBDIRECTORY_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;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ IsBaseFound |= AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.2.1",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ "powerpc-apple-darwin10", "",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ "ppc64", triple);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ IsBaseFound |= AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.0.0",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ "powerpc-apple-darwin8", "",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ "ppc64", triple);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -381,9 +389,16 @@ void InitHeaderSearch::AddDefaultCPlusPlusIncludePaths(
</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;'>+- IsBaseFound = AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.2.1",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- "i686-apple-darwin10", "",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- "x86_64", triple);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ IsBaseFound = false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (HSOpts.UseMacPortsLibstdcxx) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ IsBaseFound = AddGnuCPlusPlusIncludePaths("@@MACPORTS_GCC_INCLUDE_DIR@@",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ "@@MACPORTS_HOST_NAME@@", "@@MACPORTS_GCC_SUBDIRECTORY_i386@@", "@@MACPORTS_GCC_SUBDIRECTORY_x86_64@@", triple);
</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;'>++ IsBaseFound |= AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.2.1",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ "i686-apple-darwin10", "",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ "x86_64", triple);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ IsBaseFound |= AddGnuCPlusPlusIncludePaths(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ "/usr/include/c++/4.0.0", "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;'>+--- orig/tools/clang/include/clang/Driver/ToolChain.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ new/tools/clang/include/clang/Driver/ToolChain.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -91,7 +91,8 @@ public:
</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/Darwin.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ new/tools/clang/lib/Driver/ToolChains/Darwin.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1729,6 +1729,12 @@ void DarwinClang::AddCXXStdlibLibArgs(const ArgList &Args,
</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;'>++ if (Type==ToolChain::CST_MacPortsLibstdcxx && 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;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // Unfortunately, -lstdc++ doesn't always exist in the standard search path;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // it was previously found in the gcc lib dir. However, for all the Darwin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // platforms we care about it was -lstdc++.6, so we search for that
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- orig/tools/clang/lib/Driver/ToolChains/Hexagon.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ new/tools/clang/lib/Driver/ToolChains/Hexagon.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -557,6 +557,8 @@ HexagonToolChain::GetCXXStdlibType(const ArgList &Args) const {
</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
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ new/tools/clang/lib/Driver/ToolChain.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -674,6 +674,8 @@ ToolChain::CXXStdlibType ToolChain::GetCXXStdlibType(const ArgList &Args) const{
</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;'>+@@ -755,6 +757,7 @@ void ToolChain::AddCXXStdlibLibArgs(const ArgList &Args,
</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-7.0/files/leopard-no-asan.patch b/lang/llvm-7.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-7.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-7.0/files/leopard-no-blocks.patch b/lang/llvm-7.0/files/leopard-no-blocks.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..06d40c4
</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-7.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/Darwin.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/tools/clang/lib/Driver/ToolChains/Darwin.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-7.0/files/llvm-bin b/lang/llvm-7.0/files/llvm-bin
</span>new file mode 100755
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..30a8269
</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-7.0/files/llvm-bin
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,7 @@
</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;'>+if [ -x /usr/bin/xcrun ] ; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ exec /usr/bin/xcrun EXEC_PATH "${@}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ exec EXEC_PATH "${@}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+fi
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/llvm-7.0/files/llvm-bin-compat b/lang/llvm-7.0/files/llvm-bin-compat
</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-7.0/files/llvm-bin-compat
</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-7.0/files/mp-clang-7.0 b/lang/llvm-7.0/files/mp-clang-7.0
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..fe2769a
</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-7.0/files/mp-clang-7.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-7.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/clang++-mp-7.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/clang-mp-7.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/clang-format-mp-7.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-7.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/scan-view-mp-7.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/clang-apply-replacements-mp-7.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/clang-check-mp-7.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/clang-cl-mp-7.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-7.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/clang-rename-mp-7.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/clang-tidy-mp-7.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-7.0/files/mp-llvm-7.0 b/lang/llvm-7.0/files/mp-llvm-7.0
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..5b4ad82
</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-7.0/files/mp-llvm-7.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-7.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/llc-mp-7.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/lli-mp-7.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/llvm-ar-mp-7.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/llvm-as-mp-7.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/llvm-bcanalyzer-mp-7.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/llvm-config-mp-7.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/llvm-cov-mp-7.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/llvm-diff-mp-7.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/llvm-dis-mp-7.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/llvm-dwarfdump-mp-7.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/llvm-extract-mp-7.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-7.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/llvm-mc-mp-7.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/llvm-mcmarkup-mp-7.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/llvm-nm-mp-7.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/llvm-objdump-mp-7.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-7.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/llvm-rtdyld-mp-7.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/llvm-size-mp-7.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-7.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/llvm-symbolizer-mp-7.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/llvm-tblgen-mp-7.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-7.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/llvm-tblgen-mp-7.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/llvm-readobj-mp-7.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/llvm-profdata-mp-7.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/dsymutil-mp-7.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/llvm-cxxdump-mp-7.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/llvm-c-test-mp-7.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/llvm-dwp-mp-7.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/llvm-lib-mp-7.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/llvm-lto-mp-7.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bin/llvm-split-mp-7.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-7.0/files/openmp-locations.patch b/lang/llvm-7.0/files/openmp-locations.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..53419a2
</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-7.0/files/openmp-locations.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,39 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/lib/Driver/ToolChains/Clang.cpp b/lib/Driver/ToolChains/Clang.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 292cf72b56..d8c6327080 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/tools/clang/lib/Driver/ToolChains/Clang.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/tools/clang/lib/Driver/ToolChains/Clang.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3229,6 +3229,8 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
</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;'>+diff --git a/lib/Driver/ToolChains/CommonArgs.cpp b/lib/Driver/ToolChains/CommonArgs.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 8a597b5b3a..9441bb8a56 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/tools/clang/lib/Driver/ToolChains/CommonArgs.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/tools/clang/lib/Driver/ToolChains/CommonArgs.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -444,15 +444,21 @@ bool tools::addOpenMPRuntime(ArgStringList &CmdArgs, const ToolChain &TC,
</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;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (GompNeedsRT)
</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><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/llvm-7.0/files/yosemite-no-clangd.patch b/lang/llvm-7.0/files/yosemite-no-clangd.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..0d34135
</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-7.0/files/yosemite-no-clangd.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,10 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/tools/clang/tools/extra/CMakeLists.txt 2018-04-03 01:26:00.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/tools/clang/tools/extra/CMakeLists.txt 2018-04-03 14:05:29.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -10,7 +10,6 @@ add_subdirectory(change-namespace)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ add_subdirectory(clang-doc)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ add_subdirectory(clang-query)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ add_subdirectory(clang-move)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-add_subdirectory(clangd)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ add_subdirectory(include-fixer)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ add_subdirectory(pp-trace)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ add_subdirectory(tool-template)
</span></pre><pre style='margin:0'>
</pre>