Author: martell
Date: Sat Nov 21 23:40:06 2015
New Revision: 253813
URL: http://llvm.org/viewvc/llvm-project?rev=253813&view=rev
Log:
Driver: Specifically tell the linker the target for mingw-w64
Cross compiling from linux and OSX results in Error: Exec format.
This is because the linker is expecting ELF formated objects.
By passing the target we can explicitly tell the linker that
it should be linking COFF objects regardless of the host.
Modified:
cfe/trunk/lib/Driver/Tools.cpp
Modified: cfe/trunk/lib/Driver/Tools.cpp
URL:
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/Tools.cpp?rev=253813&r1=253812&r2=253813&view=diff
==============================================================================
--- cfe/trunk/lib/Driver/Tools.cpp (original)
+++ cfe/trunk/lib/Driver/Tools.cpp Sat Nov 21 23:40:06 2015
@@ -9478,7 +9478,14 @@ void MinGW::Linker::ConstructJob(Compila
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;
}
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits