The driver runs "ld" with incorrect emulation mode on a mips platform. That 
leads to the following error:
[[
/usr/bin/ld: unrecognised emulation mode: elf_x86_64
Supported emulations: elf32ltsmip elf32btsmip elf32ltsmipn32 elf64ltsmip 
elf32btsmipn32 elf64btsmip
clang: error: linker command failed with exit code 1 (use -v to see invocation)
]]

Here is a patch that fixes this issue. The patch does not support "n32" abi 
(i.e. does not handle elf32ltsmipn32 / elf32btsmipn32 emulation modes). I plan 
to fix it later.

--
Simon Atanasyan
Index: lib/Driver/Tools.cpp
===================================================================
--- lib/Driver/Tools.cpp	(revision 143914)
+++ lib/Driver/Tools.cpp	(working copy)
@@ -4354,6 +4354,14 @@
     CmdArgs.push_back("elf32ppclinux");
   else if (ToolChain.getArch() == llvm::Triple::ppc64)
     CmdArgs.push_back("elf64ppc");
+  else if (ToolChain.getArch() == llvm::Triple::mips)
+    CmdArgs.push_back("elf32btsmip");
+  else if (ToolChain.getArch() == llvm::Triple::mipsel)
+    CmdArgs.push_back("elf32ltsmip");
+  else if (ToolChain.getArch() == llvm::Triple::mips64)
+    CmdArgs.push_back("elf64btsmip");
+  else if (ToolChain.getArch() == llvm::Triple::mips64el)
+    CmdArgs.push_back("elf64ltsmip");
   else
     CmdArgs.push_back("elf_x86_64");
 
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to