On Tue, Aug 21, 2012 at 02:48:59PM -0400, Brian Callahan wrote:
> I noticed that devel/llvm now has target support for mips64 and
> mips64el. The following patch is needed for those two archs. LLVM
> builds and seems to work OK from my admittedly basic testing on
> mips64el.
> 
> Clang builds only with a newer version of gas (I used 2.22) but it
> does not compile anything; it crashes when you try to compile even a
> simple Hello World. I've reported it upstream but I'm unable to
> follow any of their suggestions - my yeeloong cannot compile clang
> with -O0 or a debug build because it runs out of memory (ulimit -d
> is maxed at 1G in the kernel).
> 
> Thanks.
> 
> ~Brian

You'll likely want the following as well.  mips binutils is very
fragile, I doubt you want 2.22 and 2.17 in the tree needs more work
for mips64.

Index: Targets.cpp
===================================================================
--- Targets.cpp (revision 162185)
+++ Targets.cpp (working copy)
@@ -3923,8 +3923,10 @@
                                 MacroBuilder &Builder) const {
     DefineStd(Builder, "mips", Opts);
     Builder.defineMacro("_mips");
+    Builder.defineMacro("__mips__");
     DefineStd(Builder, "MIPSEB", Opts);
     Builder.defineMacro("_MIPSEB");
+    Builder.defineMacro("__MIPSEB__");
     Builder.defineMacro("__REGISTER_PREFIX__", "");
     getArchDefines(Opts, Builder);
   }
@@ -3941,8 +3943,10 @@
                                 MacroBuilder &Builder) const {
     DefineStd(Builder, "mips", Opts);
     Builder.defineMacro("_mips");
+    Builder.defineMacro("__mips__");
     DefineStd(Builder, "MIPSEL", Opts);
     Builder.defineMacro("_MIPSEL");
+    Builder.defineMacro("__MIPSEL__");
     Builder.defineMacro("__REGISTER_PREFIX__", "");
     getArchDefines(Opts, Builder);
   }
@@ -4050,8 +4054,11 @@
                                 MacroBuilder &Builder) const {
     DefineStd(Builder, "mips", Opts);
     Builder.defineMacro("_mips");
+    Builder.defineMacro("__mips__");
     DefineStd(Builder, "MIPSEB", Opts);
     Builder.defineMacro("_MIPSEB");
+    Builder.defineMacro("__MIPSEB__");
+    Builder.defineMacro("__mips64__");
     Builder.defineMacro("__REGISTER_PREFIX__", "");
     getArchDefines(Opts, Builder);
   }
@@ -4077,8 +4084,11 @@
                                 MacroBuilder &Builder) const {
     DefineStd(Builder, "mips", Opts);
     Builder.defineMacro("_mips");
+    Builder.defineMacro("__mips__");
     DefineStd(Builder, "MIPSEL", Opts);
     Builder.defineMacro("_MIPSEL");
+    Builder.defineMacro("__MIPSEL__");
+    Builder.defineMacro("__mips64__");
     Builder.defineMacro("__REGISTER_PREFIX__", "");
     getArchDefines(Opts, Builder);
   }

Reply via email to