From 2488a5d11c8a5ff0c5ab3749dd36ef8ba53bfac1 Mon Sep 17 00:00:00 2001 From: Martell Malone Date: Fri, 5 Aug 2016 21:50:38 -0700 Subject: [PATCH 4/4] 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 1ac3bd3..3c3e319 100644 --- a/lib/Driver/MinGWToolChain.cpp +++ b/lib/Driver/MinGWToolChain.cpp @@ -249,3 +249,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 3be7f25..f62207d 100644 --- a/lib/Driver/ToolChains.h +++ b/lib/Driver/ToolChains.h @@ -705,6 +705,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