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: