Index: lld/ELF/SyntheticSections.cpp
--- lld/ELF/SyntheticSections.cpp.orig
+++ lld/ELF/SyntheticSections.cpp
@@ -2548,6 +2548,10 @@ PltSection::PltSection()
   if ((config->emachine == EM_386 || config->emachine == EM_X86_64) &&
       (config->andFeatures & GNU_PROPERTY_X86_FEATURE_1_IBT))
     name = ".plt.sec";
+#ifdef __OpenBSD__
+  else if (config->emachine == EM_X86_64)
+    name = ".plt.sec";
+#endif
 
   // The PLT needs to be writable on SPARC as the dynamic linker will
   // modify the instructions in the PLT entries.
@@ -4885,6 +4889,12 @@ template <class ELFT> void elf::createSyntheticSection
     in.ibtPlt = std::make_unique<IBTPltSection>();
     add(*in.ibtPlt);
   }
+#ifdef __OpenBSD__
+  else if (config->emachine == EM_X86_64) {
+    in.ibtPlt = std::make_unique<IBTPltSection>();
+    add(*in.ibtPlt);
+  }
+#endif
 
   if (config->emachine == EM_PPC)
     in.plt = std::make_unique<PPC32GlinkSection>();
