From 33dec3bb0148afe0bcff8c8684833f89c7a61bb6 Mon Sep 17 00:00:00 2001 From: Martell Malone 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