Update clang patches for mingw target defaults
This commit is contained in:
1 parent
ffff621129
commit
b3fdc5c4e9
2 files changed
+67
-6
No files matched your search
@@ -1,24 +1,32 @@
|
||||
From 6e83e00fb6c9b858b9ccb1cbeb30198ec85d190d Mon Sep 17 00:00:00 2001
|
||||
From 5d2a7cb021208fd23b8b57034d11fef3900397c4 Mon Sep 17 00:00:00 2001
|
||||
From: Martell Malone <martellmalone@gmail.com>
|
||||
Date: Wed, 16 Dec 2015 02:07:06 -0800
|
||||
Subject: [PATCH 1/4] use lld and compiler-rt by default
|
||||
Subject: [PATCH 1/6] mingw-w64: setup new defaults for target
|
||||
|
||||
runtime: compiler-rt
|
||||
c++ lib: libc++
|
||||
linker: lld
|
||||
---
|
||||
lib/Driver/ToolChains.h | 4 ++++
|
||||
lib/Driver/ToolChains.h | 9 +++++++++
|
||||
lib/Driver/Tools.cpp | 2 +-
|
||||
2 files changed, 5 insertions(+), 1 deletion(-)
|
||||
2 files changed, 10 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/lib/Driver/ToolChains.h b/lib/Driver/ToolChains.h
|
||||
index 4e5c3f7..c06f695 100644
|
||||
index 4e5c3f7..4de35d6 100644
|
||||
--- a/lib/Driver/ToolChains.h
|
||||
+++ b/lib/Driver/ToolChains.h
|
||||
@@ -680,6 +680,10 @@ public:
|
||||
@@ -680,6 +680,15 @@ public:
|
||||
const llvm::opt::ArgList &DriverArgs,
|
||||
llvm::opt::ArgStringList &CC1Args) const override;
|
||||
|
||||
+ RuntimeLibType GetDefaultRuntimeLibType() const override {
|
||||
+ return RuntimeLibType::RLT_CompilerRT;
|
||||
+ }
|
||||
+
|
||||
+ CXXStdlibType
|
||||
+ GetCXXStdlibType(const llvm::opt::ArgList &Args) const override {
|
||||
+ return ToolChain::CST_Libcxx;
|
||||
+ }
|
||||
+
|
||||
protected:
|
||||
Tool *getTool(Action::ActionClass AC) const override;
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
From 33dec3bb0148afe0bcff8c8684833f89c7a61bb6 Mon Sep 17 00:00:00 2001
|
||||
From: Martell Malone <martellmalone@gmail.com>
|
||||
Date: Fri, 5 Aug 2016 21:50:38 -0700
|
||||
Subject: [PATCH 6/6] mingw-w64: support static builds of libc++
|
||||
|
||||
Static builds require libc++abi to be linked
|
||||
Will add support for both modes in future
|
||||
---
|
||||
lib/Driver/MinGWToolChain.cpp | 15 +++++++++++++++
|
||||
lib/Driver/ToolChains.h | 4 ++++
|
||||
2 files changed, 19 insertions(+)
|
||||
|
||||
diff --git a/lib/Driver/MinGWToolChain.cpp b/lib/Driver/MinGWToolChain.cpp
|
||||
index a1dc25b..816e11d 100644
|
||||
--- a/lib/Driver/MinGWToolChain.cpp
|
||||
+++ b/lib/Driver/MinGWToolChain.cpp
|
||||
@@ -242,3 +242,18 @@ void MinGW::AddClangCXXStdlibIncludeArgs(const ArgList &DriverArgs,
|
||||
break;
|
||||
}
|
||||
}
|
||||
+
|
||||
+void MinGW::AddCXXStdlibLibArgs(const ArgList &Args,
|
||||
+ ArgStringList &CmdArgs) const {
|
||||
+ switch (GetCXXStdlibType(Args)) {
|
||||
+ case ToolChain::CST_Libcxx:
|
||||
+ CmdArgs.push_back("-lc++");
|
||||
+ // Support only static libc++ for now
|
||||
+ CmdArgs.push_back("-lc++abi");
|
||||
+ break;
|
||||
+
|
||||
+ case ToolChain::CST_Libstdcxx:
|
||||
+ CmdArgs.push_back("-lstdc++");
|
||||
+ break;
|
||||
+ }
|
||||
+}
|
||||
diff --git a/lib/Driver/ToolChains.h b/lib/Driver/ToolChains.h
|
||||
index 4de35d6..bfc9b80 100644
|
||||
--- a/lib/Driver/ToolChains.h
|
||||
+++ b/lib/Driver/ToolChains.h
|
||||
@@ -676,6 +676,10 @@ public:
|
||||
void
|
||||
AddClangSystemIncludeArgs(const llvm::opt::ArgList &DriverArgs,
|
||||
llvm::opt::ArgStringList &CC1Args) const override;
|
||||
+
|
||||
+ void AddCXXStdlibLibArgs(const llvm::opt::ArgList &Args,
|
||||
+ llvm::opt::ArgStringList &CmdArgs) const override;
|
||||
+
|
||||
void AddClangCXXStdlibIncludeArgs(
|
||||
const llvm::opt::ArgList &DriverArgs,
|
||||
llvm::opt::ArgStringList &CC1Args) const override;
|
||||
--
|
||||
2.7.4
|
||||
|
||||
Reference in new issue
Block a user