Taken from ports LLVM.

Index: driver/targetmachine.cpp
--- driver/targetmachine.cpp.orig
+++ driver/targetmachine.cpp
@@ -540,6 +540,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()) {
