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:

Reply via email to