summaryrefslogtreecommitdiffstats
path: root/clang/lib/Driver/Tools.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang/lib/Driver/Tools.cpp')
-rw-r--r--clang/lib/Driver/Tools.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/clang/lib/Driver/Tools.cpp b/clang/lib/Driver/Tools.cpp
index 9efaaad5558..acf2cbcf1c2 100644
--- a/clang/lib/Driver/Tools.cpp
+++ b/clang/lib/Driver/Tools.cpp
@@ -9478,7 +9478,14 @@ void MinGW::Linker::ConstructJob(Compilation &C, const JobAction &JA,
StringRef LinkerName = Args.getLastArgValue(options::OPT_fuse_ld_EQ, "ld");
if (LinkerName.equals_lower("lld")) {
CmdArgs.push_back("-flavor");
- CmdArgs.push_back("old-gnu");
+ CmdArgs.push_back("gnu");
+ CmdArgs.push_back("-target");
+ if (TC.getArch() == llvm::Triple::x86)
+ CmdArgs.push_back("i686--windows-gnu");
+ if (TC.getArch() == llvm::Triple::x86_64)
+ CmdArgs.push_back("x86_64--windows-gnu");
+ if (TC.getArch() == llvm::Triple::arm)
+ CmdArgs.push_back("armv7--windows-gnu");
} else if (!LinkerName.equals_lower("ld")) {
D.Diag(diag::err_drv_unsupported_linker) << LinkerName;
}
OpenPOWER on IntegriCloud