- Don't create IBT .plt if there are no PLT entries.  Cherry picked from
  upstream.

Index: lld/ELF/SyntheticSections.cpp
--- lld/ELF/SyntheticSections.cpp.orig
+++ lld/ELF/SyntheticSections.cpp
@@ -2567,6 +2567,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.
@@ -2728,6 +2732,8 @@ size_t IBTPltSection::getSize() const {
   // 16 is the header size of .plt.
   return 16 + in.plt->getNumEntries() * target->pltEntrySize;
 }
+
+bool IBTPltSection::isNeeded() const { return in.plt->getNumEntries() > 0; }
 
 // The string hash function for .gdb_index.
 static uint32_t computeGdbHash(StringRef s) {
