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>
|
From: Martell Malone <martellmalone@gmail.com>
|
||||||
Date: Wed, 16 Dec 2015 02:07:06 -0800
|
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 +-
|
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
|
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
|
--- a/lib/Driver/ToolChains.h
|
||||||
+++ b/lib/Driver/ToolChains.h
|
+++ b/lib/Driver/ToolChains.h
|
||||||
@@ -680,6 +680,10 @@ public:
|
@@ -680,6 +680,15 @@ public:
|
||||||
const llvm::opt::ArgList &DriverArgs,
|
const llvm::opt::ArgList &DriverArgs,
|
||||||
llvm::opt::ArgStringList &CC1Args) const override;
|
llvm::opt::ArgStringList &CC1Args) const override;
|
||||||
|
|
||||||
+ RuntimeLibType GetDefaultRuntimeLibType() const override {
|
+ RuntimeLibType GetDefaultRuntimeLibType() const override {
|
||||||
+ return RuntimeLibType::RLT_CompilerRT;
|
+ return RuntimeLibType::RLT_CompilerRT;
|
||||||
+ }
|
+ }
|
||||||
|
+
|
||||||
|
+ CXXStdlibType
|
||||||
|
+ GetCXXStdlibType(const llvm::opt::ArgList &Args) const override {
|
||||||
|
+ return ToolChain::CST_Libcxx;
|
||||||
|
+ }
|
||||||
+
|
+
|
||||||
protected:
|
protected:
|
||||||
Tool *getTool(Action::ActionClass AC) const override;
|
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