diff options
author | Andrey Turetskiy <andrey.turetskiy@gmail.com> | 2016-03-14 11:19:43 +0000 |
---|---|---|
committer | Andrey Turetskiy <andrey.turetskiy@gmail.com> | 2016-03-14 11:19:43 +0000 |
commit | a486857cd4e9171c0b4597bbd1d757783186c6c3 (patch) | |
tree | bec55a320f957ea67c118d734e24bf7fdbc7c8f9 /clang/lib/Driver/Tools.cpp | |
parent | 392408cfc82ff0681c82377902b873e0ab688378 (diff) | |
download | bcm5719-llvm-a486857cd4e9171c0b4597bbd1d757783186c6c3.tar.gz bcm5719-llvm-a486857cd4e9171c0b4597bbd1d757783186c6c3.zip |
[Driver] Enable --rtlib option for MSVC target
This enables "--rtlib compiler-rt" option under MSVC environment.
Patch by Roman Shirokiy.
Differential Revision: http://reviews.llvm.org/D17453
llvm-svn: 263422
Diffstat (limited to 'clang/lib/Driver/Tools.cpp')
-rw-r--r-- | clang/lib/Driver/Tools.cpp | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/clang/lib/Driver/Tools.cpp b/clang/lib/Driver/Tools.cpp index f51e1f67788..1e46434ef9a 100644 --- a/clang/lib/Driver/Tools.cpp +++ b/clang/lib/Driver/Tools.cpp @@ -8948,7 +8948,16 @@ static void AddRunTimeLibs(const ToolChain &TC, const Driver &D, } break; case ToolChain::RLT_Libgcc: - AddLibgcc(TC.getTriple(), D, CmdArgs, Args); + // Make sure libgcc is not used under MSVC environment by default + if (TC.getTriple().isKnownWindowsMSVCEnvironment()) { + // Issue error diagnostic if libgcc is explicitly specified + // through command line as --rtlib option argument. + if (Args.hasArg(options::OPT_rtlib_EQ)) { + TC.getDriver().Diag(diag::err_drv_unsupported_rtlib_for_platform) + << Args.getLastArg(options::OPT_rtlib_EQ)->getValue() << "MSVC"; + } + } else + AddLibgcc(TC.getTriple(), D, CmdArgs, Args); break; } } @@ -9754,6 +9763,12 @@ void visualstudio::Linker::ConstructJob(Compilation &C, const JobAction &JA, } } + // Add compiler-rt lib in case if it was explicitly + // specified as an argument for --rtlib option. + if (!Args.hasArg(options::OPT_nostdlib)) { + AddRunTimeLibs(TC, TC.getDriver(), CmdArgs, Args); + } + // Add filenames, libraries, and other linker inputs. for (const auto &Input : Inputs) { if (Input.isFilename()) { |