Taken from ports LLVM. Index: driver/targetmachine.cpp --- driver/targetmachine.cpp.orig +++ driver/targetmachine.cpp @@ -444,6 +444,8 @@ createTargetMachine(const std::string targetTriple, co // these OSes. // On Android, PIC is default as well. relocModel = llvm::Reloc::PIC_; + } else if (triple.isOSOpenBSD()) { + relocModel = llvm::Reloc::PIC_; } else { // ARM for other than Darwin or Android defaults to static switch (triple.getArch()) {