I believe that it defaults to N64 if it detects a mips64* arch, O32
otherwise.
I'll test the patch and report back.
~Brian
On 5/27/2012 8:32 PM, Jonathan Gray wrote:
On Sun, May 27, 2012 at 11:52:47AM -0400, Brian Callahan wrote:
Sorry, I forgot to add a few more caveats to the mips64el build:
You need the patch at the bottom of this email (hopefully
Thunderbird won't mangle it).
Additionally, I ported gas-2.22 to the loongson, which is needed for
the loongson build. I can send that separately, if such a port is
desired.
Thanks.
~Brian
you'll need to modify the driver as well
Here is a diff against clang svn that adds OpenBSD specific
arm/mips64/mips64el/powerpc/sparc targets. If the gcc config has
arch specific OpenBSD settings that differ from the defaults
more will have to be done.
I don't know if this is enough as I've only compile tested
it on i386. In particular I'm not sure which arm/mips64 abi
is being defaulted to.
Index: lib/Basic/Targets.cpp
===================================================================
--- lib/Basic/Targets.cpp (revision 155625)
+++ lib/Basic/Targets.cpp (working copy)
@@ -3924,6 +3924,8 @@
return new FreeBSDTargetInfo<ARMTargetInfo>(T);
case llvm::Triple::NetBSD:
return new NetBSDTargetInfo<ARMTargetInfo>(T);
+ case llvm::Triple::OpenBSD:
+ return new OpenBSDTargetInfo<ARMTargetInfo>(T);
case llvm::Triple::RTEMS:
return new RTEMSTargetInfo<ARMTargetInfo>(T);
default:
@@ -3971,6 +3973,8 @@
return new FreeBSDTargetInfo<Mips64EBTargetInfo>(T);
case llvm::Triple::NetBSD:
return new NetBSDTargetInfo<Mips64EBTargetInfo>(T);
+ case llvm::Triple::OpenBSD:
+ return new OpenBSDTargetInfo<Mips64EBTargetInfo>(T);
default:
return new Mips64EBTargetInfo(T);
}
@@ -3985,6 +3989,8 @@
return new FreeBSDTargetInfo<Mips64ELTargetInfo>(T);
case llvm::Triple::NetBSD:
return new NetBSDTargetInfo<Mips64ELTargetInfo>(T);
+ case llvm::Triple::OpenBSD:
+ return new OpenBSDTargetInfo<Mips64ELTargetInfo>(T);
default:
return new Mips64ELTargetInfo(T);
}
@@ -4007,6 +4013,8 @@
return new FreeBSDTargetInfo<PPC32TargetInfo>(T);
case llvm::Triple::NetBSD:
return new NetBSDTargetInfo<PPC32TargetInfo>(T);
+ case llvm::Triple::OpenBSD:
+ return new OpenBSDTargetInfo<PPC32TargetInfo>(T);
case llvm::Triple::RTEMS:
return new RTEMSTargetInfo<PPC32TargetInfo>(T);
default:
@@ -4047,6 +4055,8 @@
return new SolarisSparcV8TargetInfo(T);
case llvm::Triple::NetBSD:
return new NetBSDTargetInfo<SparcV8TargetInfo>(T);
+ case llvm::Triple::OpenBSD:
+ return new OpenBSDTargetInfo<SparcV8TargetInfo>(T);
case llvm::Triple::RTEMS:
return new RTEMSTargetInfo<SparcV8TargetInfo>(T);
default: