<pre style='margin:0'>
Ken (kencu) pushed a commit to branch master
in repository macports-ports.
</pre>
<p><a href="https://github.com/macports/macports-ports/commit/384d42c57c6434ad11a208ddd8529326ab1ffc20">https://github.com/macports/macports-ports/commit/384d42c57c6434ad11a208ddd8529326ab1ffc20</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 384d42c57c6434ad11a208ddd8529326ab1ffc20
</span>Author: kencu <ken.cunningham.webuse@gmail.com>
AuthorDate: Thu Dec 13 10:13:16 2018 -0800
<span style='display:block; white-space:pre;color:#404040;'> clang-5.0: default to stdlib=libc++ if using LibcxxOnOlderSystems
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> if the user's system in macports.conf is configured to use
</span><span style='display:block; white-space:pre;color:#404040;'> cxx_stdlib libc++
</span><span style='display:block; white-space:pre;color:#404040;'> then default clang to use -stdlib=libc++
</span><span style='display:block; white-space:pre;color:#404040;'> if not otherwise specified on the build line
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> this exactly matches the behaviour of newer systems
</span><span style='display:block; white-space:pre;color:#404040;'> building against libstd++ or macports-libstdc++ is still possible
</span><span style='display:block; white-space:pre;color:#404040;'> if specified on the build line
</span>---
lang/llvm-5.0/Portfile | 12 ++++++++++++
...ang-5.0-Toolchains-default-to-libcxx-on-all-systems.diff | 13 +++++++++++++
2 files changed, 25 insertions(+)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/llvm-5.0/Portfile b/lang/llvm-5.0/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 1aa039b..c35e70a 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/llvm-5.0/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/llvm-5.0/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -609,6 +609,18 @@ if {${subport} eq "llvm-${llvm_version}"} {
</span> default_variants-append +emulated_tls
}
<span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ variant defaultlibcxx description {default to -stdlib=libc++ on all systems} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #patch clang to always default to -stdlib=libc++ if not otherwise specified
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ patchfiles-append 9003-patch-clang-5.0-Toolchains-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;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # if macports.conf is configured to stdlib=libc++ then make that the default if not otherwise specified
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # exactly matches the behaviour of newer systems
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if { ${cxx_stdlib} eq "libc++" } {
</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;color:#808080;'>diff --git a/lang/llvm-5.0/files/9003-patch-clang-5.0-Toolchains-default-to-libcxx-on-all-systems.diff b/lang/llvm-5.0/files/9003-patch-clang-5.0-Toolchains-default-to-libcxx-on-all-systems.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..347115a
</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-5.0/files/9003-patch-clang-5.0-Toolchains-default-to-libcxx-on-all-systems.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;'>+--- a/tools/clang/lib/Driver/ToolChains/Darwin.cpp.orig 2018-01-22 19:03:16.000000000 -0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/tools/clang/lib/Driver/ToolChains/Darwin.cpp 2018-01-22 19:05:24.000000000 -0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -680,8 +680,8 @@
</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>