<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/e21b377b0187a598122a60fd556f719afdcd9753">https://github.com/macports/macports-ports/commit/e21b377b0187a598122a60fd556f719afdcd9753</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit e21b377b0187a598122a60fd556f719afdcd9753
</span>Author: Jeremy Huddleston Sequoia <jeremyhu@macports.org>
AuthorDate: Thu Mar 28 21:58:51 2019 -0700
<span style='display:block; white-space:pre;color:#404040;'> llvm-devel: Add updates that went into the llvm-7.0 port recently
</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-devel/Portfile | 43 +++++++++++++++++++---
...-O_CLOEXEC-for-older-SDKs-that-don-t-have.patch | 26 ++++++-------
.../9000-patch-clang-7.0-support-emulated-tls.diff | 26 +++++++++++++
.../9000-patch-llvm-7.0-support-emulated-tls.diff | 13 +++++++
...clang-7.0-default-to-libcxx-on-all-systems.diff | 15 ++++++++
5 files changed, 104 insertions(+), 19 deletions(-)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/llvm-devel/Portfile b/lang/llvm-devel/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index b411fe7..cb75373 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/llvm-devel/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/llvm-devel/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -12,7 +12,8 @@ set llvm_version_no_dot devel
</span> set clang_executable_version 8
set lldb_executable_version 8.0.0
name llvm-${llvm_version}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-subport clang-${llvm_version} { revision 1 }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision 2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+subport clang-${llvm_version} {}
</span> subport lldb-${llvm_version} {}
set suffix mp-${llvm_version}
set sub_prefix ${prefix}/libexec/llvm-${llvm_version}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -137,6 +138,7 @@ if {${subport} eq "clang-${llvm_version}"} {
</span> 1006-Fixup-libstdc-header-search-paths-for-older-versions.patch \
1007-Fix-build-issues-pre-Lion-due-to-missing-a-strnlen-d.patch \
2001-xray-Define-O_CLOEXEC-for-older-SDKs-that-don-t-have.patch \
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ 2002-Work-around-no-libdispatch-on-10.6.patch \
</span> 3001-Fix-local-and-iterator-when-building-with-Lion-and-n.patch \
3002-Fix-missing-long-long-math-prototypes-when-using-the.patch \
3003-implement-atomic-using-mutex-lock_guard-for-64b-ops-.patch \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -278,10 +280,12 @@ if {${subport} eq "llvm-${llvm_version}"} {
</span> # Xcode 6.2's clang (600.0.57) fails due to https://llvm.org/bugs/show_bug.cgi?id=25753
compiler.blacklist *gcc* {clang < 602}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-if {${subport} eq "clang-${llvm_version}"} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # 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:#ffe0e0;'>- compiler.blacklist-append macports-clang-3.3 macports-clang-3.4
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</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;'>+# llvm-7.0 builds with clang-3.4 but has codegen issues (resulting compiler crashes) (kencu)
</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;'>+compiler.fallback-append macports-clang-3.7 macports-clang-3.9
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span>
if {${subport} eq "lldb-${llvm_version}"} {
# Xcode 6.4's clang (602.0.53) fails to build lldb with 'thread-local storage is not supported for the current target'
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -516,6 +520,24 @@ post-destroot {
</span> }
}
<span style='display:block; white-space:pre;background:#e0ffe0;'>+if {${os.major} < 11} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ variant emulated_tls description { enable c11/c++11 thread support on older systems using emulated-tls } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # use emulated-tls to support thread_local on systems prior to 10.7
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # requires linking against macports-libstdc++ or libc++ / libc++abi with cxa_thread_atexit
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # the test for default emulated-tls has been moved into the backend
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # this patch is needed for llvm and clang builds
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ patchfiles-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 9000-patch-llvm-7.0-support-emulated-tls.diff
</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;'>+ 9000-patch-clang-7.0-support-emulated-tls.diff
</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-append +emulated_tls
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> if {${subport} eq "llvm-${llvm_version}"} {
variant polly description {Provide the polly polyhedral optimizer} {}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -557,6 +579,15 @@ if {${subport} eq "llvm-${llvm_version}"} {
</span> }
}
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ if { ${cxx_stdlib} eq "libc++" && ${os.major} < 13 } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ variant defaultlibcxx description {default to -stdlib=libc++ if not otherwise specified} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # on systems older than darwin 13, if macports.conf is configured to stdlib=libc++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # then make that the default if not otherwise specified. This matches the behaviour of newer systems.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ patchfiles-append 9003-patch-clang-7.0-default-to-libcxx-on-all-systems.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ default_variants-append +defaultlibcxx
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> variant libstdcxx description {-stdlib=macports-libstdc++ searches for MacPorts libstdc++} {
patchfiles-append 9001-macports-libstdcxx.diff
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -611,7 +642,7 @@ if {${subport} eq "llvm-${llvm_version}"} {
</span> ${worksrcpath}/tools/clang/lib/Frontend/InitHeaderSearch.cpp
}
}
<span style='display:block; white-space:pre;background:#ffe0e0;'>- default_variants +libstdcxx
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ default_variants-append +libstdcxx
</span>
post-patch {
reinplace "s|@@PREFIX@@|${prefix}|" \
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/llvm-devel/files/2001-xray-Define-O_CLOEXEC-for-older-SDKs-that-don-t-have.patch b/lang/llvm-devel/files/2001-xray-Define-O_CLOEXEC-for-older-SDKs-that-don-t-have.patch
</span><span style='display:block; white-space:pre;color:#808080;'>index 9330bbb..9c00481 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/llvm-devel/files/2001-xray-Define-O_CLOEXEC-for-older-SDKs-that-don-t-have.patch
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/llvm-devel/files/2001-xray-Define-O_CLOEXEC-for-older-SDKs-that-don-t-have.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,7 +1,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From 585a864b88b65cfbe57765d769b92b771bfaf762 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 7c0ed4903bda85727781bf383ec3b31e86a1b562 Mon Sep 17 00:00:00 2001
</span> From: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
Date: Wed, 27 Dec 2017 23:21:37 -0800
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Subject: [PATCH 2001/2001] xray: Define O_CLOEXEC for older SDKs that don't
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 2001/2002] xray: Define O_CLOEXEC for older SDKs that don't
</span> have it
Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -10,10 +10,10 @@ Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
</span> lib/xray/xray_x86_64.cc | 6 ++++++
2 files changed, 12 insertions(+)
<span style='display:block; white-space:pre;background:#ffe0e0;'>-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:#ffe0e0;'>-index b9a38d1b9..b26a76893 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- llvm_master/projects/compiler-rt/lib/xray/xray_utils.cc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ macports_master/projects/compiler-rt/lib/xray/xray_utils.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git llvm_release_70/projects/compiler-rt/lib/xray/xray_utils.cc macports_release_70/projects/compiler-rt/lib/xray/xray_utils.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 68f4e8c10..cbf27dc96 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- llvm_release_70/projects/compiler-rt/lib/xray/xray_utils.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ macports_release_70/projects/compiler-rt/lib/xray/xray_utils.cc
</span> @@ -25,6 +25,12 @@
#include <unistd.h>
#include <utility>
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -27,11 +27,11 @@ index b9a38d1b9..b26a76893 100644
</span> namespace __xray {
void printToStdErr(const char *Buffer) XRAY_NEVER_INSTRUMENT {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-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:#ffe0e0;'>-index e34806fa1..74ac35e47 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- llvm_master/projects/compiler-rt/lib/xray/xray_x86_64.cc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ macports_master/projects/compiler-rt/lib/xray/xray_x86_64.cc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -12,6 +12,12 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git llvm_release_70/projects/compiler-rt/lib/xray/xray_x86_64.cc macports_release_70/projects/compiler-rt/lib/xray/xray_x86_64.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 51dc4ce43..ea5a70d9f 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- llvm_release_70/projects/compiler-rt/lib/xray/xray_x86_64.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ macports_release_70/projects/compiler-rt/lib/xray/xray_x86_64.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -21,6 +21,12 @@
</span> #include <tuple>
#include <unistd.h>
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -43,7 +43,7 @@ index e34806fa1..74ac35e47 100644
</span> +
namespace __xray {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- static std::pair<ssize_t, bool>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if SANITIZER_LINUX
</span> --
<span style='display:block; white-space:pre;background:#ffe0e0;'>-2.15.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+2.20.1 (Apple Git-116)
</span>
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/llvm-devel/files/9000-patch-clang-7.0-support-emulated-tls.diff b/lang/llvm-devel/files/9000-patch-clang-7.0-support-emulated-tls.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..0459630
</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-devel/files/9000-patch-clang-7.0-support-emulated-tls.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,26 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/tools/clang/lib/Basic/Targets/OSTargets.h b/tools/clang/lib/Basic/Targets/OSTargets.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index d0354784..102605fe 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/tools/clang/lib/Basic/Targets/OSTargets.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/tools/clang/lib/Basic/Targets/OSTargets.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -93,7 +93,7 @@ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ this->TLSSupported = false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (Triple.isMacOSX())
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- this->TLSSupported = !Triple.isMacOSXVersionLT(10, 7);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ this->TLSSupported = !Triple.isMacOSXVersionLT(10, 4);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else if (Triple.isiOS()) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // 64-bit iOS supported it from 8 onwards, 32-bit device from 9 onwards,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // 32-bit simulator from 10 onwards.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/tools/clang/lib/CodeGen/ItaniumCXXABI.cpp b/tools/clang/lib/CodeGen/ItaniumCXXABI.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 00fff144..052924ab 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/tools/clang/lib/CodeGen/ItaniumCXXABI.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/tools/clang/lib/CodeGen/ItaniumCXXABI.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2255,7 +2255,7 @@ static void emitGlobalDtorWithCXAAtExit(CodeGenFunction &CGF,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ const char *Name = "__cxa_atexit";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (TLS) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ const llvm::Triple &T = CGF.getTarget().getTriple();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- Name = T.isOSDarwin() ? "_tlv_atexit" : "__cxa_thread_atexit";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Name = (T.isOSDarwin() && !T.isMacOSXVersionLT(10, 7)) ? "_tlv_atexit" : "__cxa_thread_atexit";
</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;'>+ // We're assuming that the destructor function is something we can
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/llvm-devel/files/9000-patch-llvm-7.0-support-emulated-tls.diff b/lang/llvm-devel/files/9000-patch-llvm-7.0-support-emulated-tls.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..b96a36e
</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-devel/files/9000-patch-llvm-7.0-support-emulated-tls.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,13 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/include/llvm/ADT/Triple.h b/include/llvm/ADT/Triple.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index c95b16dd..ecc0f148 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/include/llvm/ADT/Triple.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/include/llvm/ADT/Triple.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -682,7 +682,7 @@ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /// Tests whether the target uses emulated TLS as default.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ bool hasDefaultEmulatedTLS() const {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- return isAndroid() || isOSOpenBSD() || isWindowsCygwinEnvironment();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return isAndroid() || isOSOpenBSD() || isWindowsCygwinEnvironment() || isMacOSXVersionLT(10, 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;'>+ /// @}
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/llvm-devel/files/9003-patch-clang-7.0-default-to-libcxx-on-all-systems.diff b/lang/llvm-devel/files/9003-patch-clang-7.0-default-to-libcxx-on-all-systems.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..0b08962
</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-devel/files/9003-patch-clang-7.0-default-to-libcxx-on-all-systems.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,15 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git llvm-7.0.1.src/tools/clang/lib/Driver/ToolChains/Darwin.cpp llvm-7.0.1.src/tools/clang/lib/Driver/ToolChains/Darwin.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index dc540688..64adab5c 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- llvm-7.0.1.src/tools/clang/lib/Driver/ToolChains/Darwin.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ llvm-7.0.1.src/tools/clang/lib/Driver/ToolChains/Darwin.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -700,8 +700,8 @@ types::ID MachO::LookupTypeForExtension(StringRef Ext) const {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ bool MachO::HasNativeLLVMSupport() const { return true; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ToolChain::CXXStdlibType Darwin::GetDefaultCXXStdlibType() const {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- // Default to use libc++ on OS X 10.9+ and iOS 7+.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if ((isTargetMacOS() && !isMacosxVersionLT(10, 9)) ||
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ // Default to use libc++ on OS X 10.4+ and iOS 7+.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if ((isTargetMacOS() && !isMacosxVersionLT(10, 4)) ||
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (isTargetIOSBased() && !isIPhoneOSVersionLT(7, 0)) ||
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ isTargetWatchOSBased())
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return ToolChain::CST_Libcxx;
</span></pre><pre style='margin:0'>
</pre>