diff --git a/lld/ELF/Writer.cpp b/lld/ELF/Writer.cpp
index 5458b87..d5b61a6 100644
--- a/lld/ELF/Writer.cpp
+++ b/lld/ELF/Writer.cpp
@@ -98,8 +98,6 @@
   Out<ELFT>::Bss = &Bss;
   GotSection<ELFT> Got;
   Out<ELFT>::Got = &Got;
-  GotPltSection<ELFT> GotPlt;
-  Out<ELFT>::GotPlt = &GotPlt;
   PltSection<ELFT> Plt;
   Out<ELFT>::Plt = &Plt;
   SymbolTableSection<ELFT> SymTab(*Symtab, *Out<ELFT>::StrTab);
@@ -108,11 +106,8 @@
   Out<ELFT>::DynSymTab = &DynSymTab;
   HashTableSection<ELFT> HashTab;
   Out<ELFT>::HashTab = &HashTab;
-  bool IsRela = Symtab->shouldUseRela();
-  RelocationSection<ELFT> RelaDyn(IsRela ? ".rela.dyn" : ".rel.dyn", IsRela);
+  RelocationSection<ELFT> RelaDyn(Symtab->shouldUseRela());
   Out<ELFT>::RelaDyn = &RelaDyn;
-  RelocationSection<ELFT> RelaPlt(IsRela ? ".rela.plt" : ".rel.plt", IsRela);
-  Out<ELFT>::RelaPlt = &RelaPlt;
   DynamicSection<ELFT> Dynamic(*Symtab);
   Out<ELFT>::Dynamic = &Dynamic;
 
@@ -192,8 +187,8 @@
         if (Body->isInPlt())
           continue;
         Out<ELFT>::Plt->addEntry(Body);
-        Out<ELFT>::GotPlt->addEntry(Body);
-      } else if (Target->relocNeedsGot(Type, *Body)) {
+      }
+      if (Target->relocNeedsGot(Type, *Body)) {
         if (Body->isInGot())
           continue;
         Out<ELFT>::Got->addEntry(Body);
@@ -205,10 +200,7 @@
       continue;
     if (CBP)
       Body->setUsedInDynamicReloc();
-    if (Body && Target->relocNeedsPlt(Type, *Body))
-      Out<ELFT>::RelaPlt->addReloc({ C, RI });
-    else
-      Out<ELFT>::RelaDyn->addReloc({ C, RI });
+    Out<ELFT>::RelaDyn->addReloc({C, RI});
   }
 }
 
@@ -455,13 +447,9 @@
     OutputSections.push_back(Out<ELFT>::DynStrTab);
     if (Out<ELFT>::RelaDyn->hasRelocs())
       OutputSections.push_back(Out<ELFT>::RelaDyn);
-    if (Out<ELFT>::RelaPlt->hasRelocs())
-      OutputSections.push_back(Out<ELFT>::RelaPlt);
   }
   if (!Out<ELFT>::Got->empty())
     OutputSections.push_back(Out<ELFT>::Got);
-  if (!Out<ELFT>::GotPlt->empty())
-    OutputSections.push_back(Out<ELFT>::GotPlt);
   if (!Out<ELFT>::Plt->empty())
     OutputSections.push_back(Out<ELFT>::Plt);
 
