Rename elf2 to elf.

llvm-svn: 262159
diff --git a/lld/ELF/CMakeLists.txt b/lld/ELF/CMakeLists.txt
index ade5edc..21292e5 100644
--- a/lld/ELF/CMakeLists.txt
+++ b/lld/ELF/CMakeLists.txt
@@ -2,7 +2,7 @@
 tablegen(LLVM Options.inc -gen-opt-parser-defs)
 add_public_tablegen_target(ELFOptionsTableGen)
 
-add_lld_library(lldELF2
+add_lld_library(lldELF
   Driver.cpp
   DriverUtils.cpp
   Error.cpp
@@ -24,4 +24,4 @@
   Support
   )
 
-add_dependencies(lldELF2 ELFOptionsTableGen)
+add_dependencies(lldELF ELFOptionsTableGen)
diff --git a/lld/ELF/Config.h b/lld/ELF/Config.h
index b601b1e..847fb81 100644
--- a/lld/ELF/Config.h
+++ b/lld/ELF/Config.h
@@ -17,7 +17,7 @@
 #include <vector>
 
 namespace lld {
-namespace elf2 {
+namespace elf {
 
 class InputFile;
 class SymbolBody;
@@ -88,7 +88,7 @@
 // The only instance of Configuration struct.
 extern Configuration *Config;
 
-} // namespace elf2
+} // namespace elf
 } // namespace lld
 
 #endif
diff --git a/lld/ELF/Driver.cpp b/lld/ELF/Driver.cpp
index daef69f..b55f601 100644
--- a/lld/ELF/Driver.cpp
+++ b/lld/ELF/Driver.cpp
@@ -27,12 +27,12 @@
 using namespace llvm::object;
 
 using namespace lld;
-using namespace lld::elf2;
+using namespace lld::elf;
 
-Configuration *elf2::Config;
-LinkerDriver *elf2::Driver;
+Configuration *elf::Config;
+LinkerDriver *elf::Driver;
 
-bool elf2::link(ArrayRef<const char *> Args, raw_ostream &Error) {
+bool elf::link(ArrayRef<const char *> Args, raw_ostream &Error) {
   HasError = false;
   ErrorOS = &Error;
   Configuration C;
diff --git a/lld/ELF/Driver.h b/lld/ELF/Driver.h
index c7b2d9f..52bf22b 100644
--- a/lld/ELF/Driver.h
+++ b/lld/ELF/Driver.h
@@ -17,7 +17,7 @@
 #include "llvm/Support/raw_ostream.h"
 
 namespace lld {
-namespace elf2 {
+namespace elf {
 
 extern class LinkerDriver *Driver;
 
@@ -57,7 +57,7 @@
 std::string searchLibrary(StringRef Path);
 std::string buildSysrootedPath(llvm::StringRef Dir, llvm::StringRef File);
 
-} // namespace elf2
+} // namespace elf
 } // namespace lld
 
 #endif
diff --git a/lld/ELF/DriverUtils.cpp b/lld/ELF/DriverUtils.cpp
index bbe5f9f..336d850 100644
--- a/lld/ELF/DriverUtils.cpp
+++ b/lld/ELF/DriverUtils.cpp
@@ -24,7 +24,7 @@
 using namespace llvm;
 
 using namespace lld;
-using namespace lld::elf2;
+using namespace lld::elf;
 
 // Create OptTable
 
@@ -51,8 +51,8 @@
 };
 
 // Parses a given list of options.
-opt::InputArgList elf2::parseArgs(llvm::BumpPtrAllocator *A,
-                                  ArrayRef<const char *> Argv) {
+opt::InputArgList elf::parseArgs(llvm::BumpPtrAllocator *A,
+                                 ArrayRef<const char *> Argv) {
   // Make InputArgList from string vectors.
   ELFOptTable Table;
   unsigned MissingIndex;
@@ -78,7 +78,7 @@
   return Args;
 }
 
-std::string elf2::findFromSearchPaths(StringRef Path) {
+std::string elf::findFromSearchPaths(StringRef Path) {
   for (StringRef Dir : Config->SearchPaths) {
     std::string FullPath = buildSysrootedPath(Dir, Path);
     if (sys::fs::exists(FullPath))
@@ -89,7 +89,7 @@
 
 // Searches a given library from input search paths, which are filled
 // from -L command line switches. Returns a path to an existent library file.
-std::string elf2::searchLibrary(StringRef Path) {
+std::string elf::searchLibrary(StringRef Path) {
   std::vector<std::string> Names;
   if (Path[0] == ':') {
     Names.push_back(Path.drop_front());
@@ -109,7 +109,7 @@
 // Makes a path by concatenating Dir and File.
 // If Dir starts with '=' the result will be preceded by Sysroot,
 // which can be set with --sysroot command line switch.
-std::string elf2::buildSysrootedPath(StringRef Dir, StringRef File) {
+std::string elf::buildSysrootedPath(StringRef Dir, StringRef File) {
   SmallString<128> Path;
   if (Dir.startswith("="))
     sys::path::append(Path, Config->Sysroot, Dir.substr(1), File);
diff --git a/lld/ELF/Error.cpp b/lld/ELF/Error.cpp
index 2f78108..75b4604 100644
--- a/lld/ELF/Error.cpp
+++ b/lld/ELF/Error.cpp
@@ -14,7 +14,7 @@
 #include "llvm/Support/raw_ostream.h"
 
 namespace lld {
-namespace elf2 {
+namespace elf {
 
 bool HasError;
 llvm::raw_ostream *ErrorOS;
@@ -60,5 +60,5 @@
     fatal(EC.message());
 }
 
-} // namespace elf2
+} // namespace elf
 } // namespace lld
diff --git a/lld/ELF/Error.h b/lld/ELF/Error.h
index 941190e..8ea468d 100644
--- a/lld/ELF/Error.h
+++ b/lld/ELF/Error.h
@@ -17,7 +17,7 @@
 }
 
 namespace lld {
-namespace elf2 {
+namespace elf {
 
 extern bool HasError;
 extern llvm::raw_ostream *ErrorOS;
@@ -47,7 +47,7 @@
 
 template <typename T> void fatal(const ErrorOr<T> &V) { fatal(V.getError()); }
 
-} // namespace elf2
+} // namespace elf
 } // namespace lld
 
 #endif
diff --git a/lld/ELF/ICF.cpp b/lld/ELF/ICF.cpp
index 18d2110..bef5277 100644
--- a/lld/ELF/ICF.cpp
+++ b/lld/ELF/ICF.cpp
@@ -66,13 +66,13 @@
 #include "llvm/Support/raw_ostream.h"
 
 using namespace lld;
-using namespace lld::elf2;
+using namespace lld::elf;
 using namespace llvm;
 using namespace llvm::ELF;
 using namespace llvm::object;
 
 namespace lld {
-namespace elf2 {
+namespace elf {
 template <class ELFT> class ICF {
   typedef typename ELFFile<ELFT>::Elf_Shdr Elf_Shdr;
   typedef typename ELFFile<ELFT>::Elf_Sym Elf_Sym;
@@ -361,11 +361,11 @@
 }
 
 // ICF entry point function.
-template <class ELFT> void elf2::doIcf(SymbolTable<ELFT> *Symtab) {
+template <class ELFT> void elf::doIcf(SymbolTable<ELFT> *Symtab) {
   ICF<ELFT>().run(Symtab);
 }
 
-template void elf2::doIcf(SymbolTable<ELF32LE> *);
-template void elf2::doIcf(SymbolTable<ELF32BE> *);
-template void elf2::doIcf(SymbolTable<ELF64LE> *);
-template void elf2::doIcf(SymbolTable<ELF64BE> *);
+template void elf::doIcf(SymbolTable<ELF32LE> *);
+template void elf::doIcf(SymbolTable<ELF32BE> *);
+template void elf::doIcf(SymbolTable<ELF64LE> *);
+template void elf::doIcf(SymbolTable<ELF64BE> *);
diff --git a/lld/ELF/ICF.h b/lld/ELF/ICF.h
index 034f55c..63ad780 100644
--- a/lld/ELF/ICF.h
+++ b/lld/ELF/ICF.h
@@ -11,7 +11,7 @@
 #define LLD_ELF_ICF_H
 
 namespace lld {
-namespace elf2 {
+namespace elf {
 
 template <class ELFT> class SymbolTable;
 
diff --git a/lld/ELF/InputFiles.cpp b/lld/ELF/InputFiles.cpp
index da2e30c..5f5ac9e 100644
--- a/lld/ELF/InputFiles.cpp
+++ b/lld/ELF/InputFiles.cpp
@@ -22,7 +22,7 @@
 using namespace llvm::sys::fs;
 
 using namespace lld;
-using namespace lld::elf2;
+using namespace lld::elf;
 
 namespace {
 class ECRAII {
@@ -86,24 +86,24 @@
 }
 
 template <class ELFT>
-elf2::ObjectFile<ELFT>::ObjectFile(MemoryBufferRef M)
+elf::ObjectFile<ELFT>::ObjectFile(MemoryBufferRef M)
     : ELFFileBase<ELFT>(Base::ObjectKind, M) {}
 
 template <class ELFT>
-typename elf2::ObjectFile<ELFT>::Elf_Sym_Range
-elf2::ObjectFile<ELFT>::getLocalSymbols() {
+typename elf::ObjectFile<ELFT>::Elf_Sym_Range
+elf::ObjectFile<ELFT>::getLocalSymbols() {
   return this->getSymbolsHelper(true);
 }
 
-template <class ELFT> uint32_t elf2::ObjectFile<ELFT>::getMipsGp0() const {
+template <class ELFT> uint32_t elf::ObjectFile<ELFT>::getMipsGp0() const {
   if (MipsReginfo)
     return MipsReginfo->Reginfo->ri_gp_value;
   return 0;
 }
 
 template <class ELFT>
-const typename elf2::ObjectFile<ELFT>::Elf_Sym *
-elf2::ObjectFile<ELFT>::getLocalSymbol(uintX_t SymIndex) {
+const typename elf::ObjectFile<ELFT>::Elf_Sym *
+elf::ObjectFile<ELFT>::getLocalSymbol(uintX_t SymIndex) {
   uint32_t FirstNonLocal = this->Symtab->sh_info;
   if (SymIndex >= FirstNonLocal)
     return nullptr;
@@ -112,7 +112,7 @@
 }
 
 template <class ELFT>
-void elf2::ObjectFile<ELFT>::parse(DenseSet<StringRef> &ComdatGroups) {
+void elf::ObjectFile<ELFT>::parse(DenseSet<StringRef> &ComdatGroups) {
   // Read section and symbol tables.
   initializeSections(ComdatGroups);
   initializeSymbols();
@@ -122,7 +122,7 @@
 // They are identified and deduplicated by group name. This function
 // returns a group name.
 template <class ELFT>
-StringRef elf2::ObjectFile<ELFT>::getShtGroupSignature(const Elf_Shdr &Sec) {
+StringRef elf::ObjectFile<ELFT>::getShtGroupSignature(const Elf_Shdr &Sec) {
   const ELFFile<ELFT> &Obj = this->ELFObj;
   uint32_t SymtabdSectionIndex = Sec.sh_link;
   ErrorOr<const Elf_Shdr *> SecOrErr = Obj.getSection(SymtabdSectionIndex);
@@ -138,8 +138,8 @@
 }
 
 template <class ELFT>
-ArrayRef<typename elf2::ObjectFile<ELFT>::uint32_X>
-elf2::ObjectFile<ELFT>::getShtGroupEntries(const Elf_Shdr &Sec) {
+ArrayRef<typename elf::ObjectFile<ELFT>::uint32_X>
+elf::ObjectFile<ELFT>::getShtGroupEntries(const Elf_Shdr &Sec) {
   const ELFFile<ELFT> &Obj = this->ELFObj;
   ErrorOr<ArrayRef<uint32_X>> EntriesOrErr =
       Obj.template getSectionContentsAsArray<uint32_X>(&Sec);
@@ -178,7 +178,7 @@
 }
 
 template <class ELFT>
-void elf2::ObjectFile<ELFT>::initializeSections(
+void elf::ObjectFile<ELFT>::initializeSections(
     DenseSet<StringRef> &ComdatGroups) {
   uint64_t Size = this->ELFObj.getNumSections();
   Sections.resize(Size);
@@ -248,7 +248,7 @@
 
 template <class ELFT>
 InputSectionBase<ELFT> *
-elf2::ObjectFile<ELFT>::createInputSection(const Elf_Shdr &Sec) {
+elf::ObjectFile<ELFT>::createInputSection(const Elf_Shdr &Sec) {
   ErrorOr<StringRef> NameOrErr = this->ELFObj.getSectionName(&Sec);
   fatal(NameOrErr);
   StringRef Name = *NameOrErr;
@@ -274,7 +274,7 @@
   return new (Alloc) InputSection<ELFT>(this, &Sec);
 }
 
-template <class ELFT> void elf2::ObjectFile<ELFT>::initializeSymbols() {
+template <class ELFT> void elf::ObjectFile<ELFT>::initializeSymbols() {
   this->initStringTable();
   Elf_Sym_Range Syms = this->getNonLocalSymbols();
   uint32_t NumSymbols = std::distance(Syms.begin(), Syms.end());
@@ -285,7 +285,7 @@
 
 template <class ELFT>
 InputSectionBase<ELFT> *
-elf2::ObjectFile<ELFT>::getSection(const Elf_Sym &Sym) const {
+elf::ObjectFile<ELFT>::getSection(const Elf_Sym &Sym) const {
   uint32_t Index = this->getSectionIndex(Sym);
   if (Index == 0)
     return nullptr;
@@ -298,7 +298,7 @@
 }
 
 template <class ELFT>
-SymbolBody *elf2::ObjectFile<ELFT>::createSymbolBody(const Elf_Sym *Sym) {
+SymbolBody *elf::ObjectFile<ELFT>::createSymbolBody(const Elf_Sym *Sym) {
   ErrorOr<StringRef> NameOrErr = Sym->getName(this->StringTable);
   fatal(NameOrErr);
   StringRef Name = *NameOrErr;
@@ -497,8 +497,8 @@
   fatal("Invalid file class: " + MB.getBufferIdentifier());
 }
 
-std::unique_ptr<InputFile> elf2::createObjectFile(MemoryBufferRef MB,
-                                                  StringRef ArchiveName) {
+std::unique_ptr<InputFile> elf::createObjectFile(MemoryBufferRef MB,
+                                                 StringRef ArchiveName) {
   using namespace sys::fs;
   std::unique_ptr<InputFile> F;
   if (identify_magic(MB.getBuffer()) == file_magic::bitcode)
@@ -509,21 +509,21 @@
   return F;
 }
 
-std::unique_ptr<InputFile> elf2::createSharedFile(MemoryBufferRef MB) {
+std::unique_ptr<InputFile> elf::createSharedFile(MemoryBufferRef MB) {
   return createELFFile<SharedFile>(MB);
 }
 
-template class elf2::ELFFileBase<ELF32LE>;
-template class elf2::ELFFileBase<ELF32BE>;
-template class elf2::ELFFileBase<ELF64LE>;
-template class elf2::ELFFileBase<ELF64BE>;
+template class elf::ELFFileBase<ELF32LE>;
+template class elf::ELFFileBase<ELF32BE>;
+template class elf::ELFFileBase<ELF64LE>;
+template class elf::ELFFileBase<ELF64BE>;
 
-template class elf2::ObjectFile<ELF32LE>;
-template class elf2::ObjectFile<ELF32BE>;
-template class elf2::ObjectFile<ELF64LE>;
-template class elf2::ObjectFile<ELF64BE>;
+template class elf::ObjectFile<ELF32LE>;
+template class elf::ObjectFile<ELF32BE>;
+template class elf::ObjectFile<ELF64LE>;
+template class elf::ObjectFile<ELF64BE>;
 
-template class elf2::SharedFile<ELF32LE>;
-template class elf2::SharedFile<ELF32BE>;
-template class elf2::SharedFile<ELF64LE>;
-template class elf2::SharedFile<ELF64BE>;
+template class elf::SharedFile<ELF32LE>;
+template class elf::SharedFile<ELF32BE>;
+template class elf::SharedFile<ELF64LE>;
+template class elf::SharedFile<ELF64BE>;
diff --git a/lld/ELF/InputFiles.h b/lld/ELF/InputFiles.h
index 49e2e75..18debd4 100644
--- a/lld/ELF/InputFiles.h
+++ b/lld/ELF/InputFiles.h
@@ -23,7 +23,7 @@
 #include "llvm/Support/StringSaver.h"
 
 namespace lld {
-namespace elf2 {
+namespace elf {
 
 using llvm::object::Archive;
 
@@ -231,7 +231,7 @@
                                             StringRef ArchiveName = "");
 std::unique_ptr<InputFile> createSharedFile(MemoryBufferRef MB);
 
-} // namespace elf2
+} // namespace elf
 } // namespace lld
 
 #endif
diff --git a/lld/ELF/InputSection.cpp b/lld/ELF/InputSection.cpp
index 9ac5514..4bdb45e 100644
--- a/lld/ELF/InputSection.cpp
+++ b/lld/ELF/InputSection.cpp
@@ -22,7 +22,7 @@
 using namespace llvm::support::endian;
 
 using namespace lld;
-using namespace lld::elf2;
+using namespace lld::elf;
 
 template <class ELFT>
 InputSectionBase<ELFT>::InputSectionBase(ObjectFile<ELFT> *File,
@@ -459,27 +459,27 @@
   return S->SectionKind == InputSectionBase<ELFT>::MipsReginfo;
 }
 
-template class elf2::InputSectionBase<ELF32LE>;
-template class elf2::InputSectionBase<ELF32BE>;
-template class elf2::InputSectionBase<ELF64LE>;
-template class elf2::InputSectionBase<ELF64BE>;
+template class elf::InputSectionBase<ELF32LE>;
+template class elf::InputSectionBase<ELF32BE>;
+template class elf::InputSectionBase<ELF64LE>;
+template class elf::InputSectionBase<ELF64BE>;
 
-template class elf2::InputSection<ELF32LE>;
-template class elf2::InputSection<ELF32BE>;
-template class elf2::InputSection<ELF64LE>;
-template class elf2::InputSection<ELF64BE>;
+template class elf::InputSection<ELF32LE>;
+template class elf::InputSection<ELF32BE>;
+template class elf::InputSection<ELF64LE>;
+template class elf::InputSection<ELF64BE>;
 
-template class elf2::EHInputSection<ELF32LE>;
-template class elf2::EHInputSection<ELF32BE>;
-template class elf2::EHInputSection<ELF64LE>;
-template class elf2::EHInputSection<ELF64BE>;
+template class elf::EHInputSection<ELF32LE>;
+template class elf::EHInputSection<ELF32BE>;
+template class elf::EHInputSection<ELF64LE>;
+template class elf::EHInputSection<ELF64BE>;
 
-template class elf2::MergeInputSection<ELF32LE>;
-template class elf2::MergeInputSection<ELF32BE>;
-template class elf2::MergeInputSection<ELF64LE>;
-template class elf2::MergeInputSection<ELF64BE>;
+template class elf::MergeInputSection<ELF32LE>;
+template class elf::MergeInputSection<ELF32BE>;
+template class elf::MergeInputSection<ELF64LE>;
+template class elf::MergeInputSection<ELF64BE>;
 
-template class elf2::MipsReginfoInputSection<ELF32LE>;
-template class elf2::MipsReginfoInputSection<ELF32BE>;
-template class elf2::MipsReginfoInputSection<ELF64LE>;
-template class elf2::MipsReginfoInputSection<ELF64BE>;
+template class elf::MipsReginfoInputSection<ELF32LE>;
+template class elf::MipsReginfoInputSection<ELF32BE>;
+template class elf::MipsReginfoInputSection<ELF64LE>;
+template class elf::MipsReginfoInputSection<ELF64BE>;
diff --git a/lld/ELF/InputSection.h b/lld/ELF/InputSection.h
index 9585a56..f7c977b 100644
--- a/lld/ELF/InputSection.h
+++ b/lld/ELF/InputSection.h
@@ -16,7 +16,7 @@
 #include "llvm/Object/ELF.h"
 
 namespace lld {
-namespace elf2 {
+namespace elf {
 
 template <class ELFT> class ICF;
 template <class ELFT> class ObjectFile;
@@ -202,7 +202,7 @@
   const llvm::object::Elf_Mips_RegInfo<ELFT> *Reginfo;
 };
 
-} // namespace elf2
+} // namespace elf
 } // namespace lld
 
 #endif
diff --git a/lld/ELF/LinkerScript.cpp b/lld/ELF/LinkerScript.cpp
index a146be0..c1ca43d 100644
--- a/lld/ELF/LinkerScript.cpp
+++ b/lld/ELF/LinkerScript.cpp
@@ -26,9 +26,9 @@
 using namespace llvm;
 using namespace llvm::object;
 using namespace lld;
-using namespace lld::elf2;
+using namespace lld::elf;
 
-LinkerScript *elf2::Script;
+LinkerScript *elf::Script;
 
 template <class ELFT>
 SectionRule *LinkerScript::find(InputSectionBase<ELFT> *S) {
@@ -103,7 +103,7 @@
   return matchStr(SectionPattern, S->getSectionName());
 }
 
-class elf2::ScriptParser {
+class elf::ScriptParser {
   typedef void (ScriptParser::*Handler)();
 
 public:
@@ -149,7 +149,7 @@
   bool Error = false;
 };
 
-const StringMap<elf2::ScriptParser::Handler> elf2::ScriptParser::Cmd = {
+const StringMap<elf::ScriptParser::Handler> elf::ScriptParser::Cmd = {
     {"ENTRY", &ScriptParser::readEntry},
     {"EXTERN", &ScriptParser::readExtern},
     {"GROUP", &ScriptParser::readGroup},
diff --git a/lld/ELF/LinkerScript.h b/lld/ELF/LinkerScript.h
index c534478..7517838 100644
--- a/lld/ELF/LinkerScript.h
+++ b/lld/ELF/LinkerScript.h
@@ -17,7 +17,7 @@
 #include "llvm/Support/MemoryBuffer.h"
 
 namespace lld {
-namespace elf2 {
+namespace elf {
 
 class ScriptParser;
 template <class ELFT> class InputSectionBase;
@@ -75,7 +75,7 @@
 
 extern LinkerScript *Script;
 
-} // namespace elf2
+} // namespace elf
 } // namespace lld
 
 #endif
diff --git a/lld/ELF/MarkLive.cpp b/lld/ELF/MarkLive.cpp
index 3f8b224..40bcee5 100644
--- a/lld/ELF/MarkLive.cpp
+++ b/lld/ELF/MarkLive.cpp
@@ -36,7 +36,7 @@
 using namespace llvm::object;
 
 using namespace lld;
-using namespace lld::elf2;
+using namespace lld::elf;
 
 // Calls Fn for each section that Sec refers to via relocations.
 template <class ELFT>
@@ -86,7 +86,7 @@
 // This is the main function of the garbage collector.
 // Starting from GC-root sections, this function visits all reachable
 // sections to set their "Live" bits.
-template <class ELFT> void elf2::markLive(SymbolTable<ELFT> *Symtab) {
+template <class ELFT> void elf::markLive(SymbolTable<ELFT> *Symtab) {
   SmallVector<InputSection<ELFT> *, 256> Q;
 
   auto Enqueue = [&](InputSectionBase<ELFT> *Sec) {
@@ -133,7 +133,7 @@
     forEachSuccessor<ELFT>(Q.pop_back_val(), Enqueue);
 }
 
-template void elf2::markLive<ELF32LE>(SymbolTable<ELF32LE> *);
-template void elf2::markLive<ELF32BE>(SymbolTable<ELF32BE> *);
-template void elf2::markLive<ELF64LE>(SymbolTable<ELF64LE> *);
-template void elf2::markLive<ELF64BE>(SymbolTable<ELF64BE> *);
+template void elf::markLive<ELF32LE>(SymbolTable<ELF32LE> *);
+template void elf::markLive<ELF32BE>(SymbolTable<ELF32BE> *);
+template void elf::markLive<ELF64LE>(SymbolTable<ELF64LE> *);
+template void elf::markLive<ELF64BE>(SymbolTable<ELF64BE> *);
diff --git a/lld/ELF/OutputSections.cpp b/lld/ELF/OutputSections.cpp
index 523ddd0..bec005e 100644
--- a/lld/ELF/OutputSections.cpp
+++ b/lld/ELF/OutputSections.cpp
@@ -23,7 +23,7 @@
 using namespace llvm::ELF;
 
 using namespace lld;
-using namespace lld::elf2;
+using namespace lld::elf;
 
 static bool isAlpha(char C) {
   return ('a' <= C && C <= 'z') || ('A' <= C && C <= 'Z') || C == '_';
@@ -32,7 +32,7 @@
 static bool isAlnum(char C) { return isAlpha(C) || ('0' <= C && C <= '9'); }
 
 // Returns true if S is valid as a C language identifier.
-bool elf2::isValidCIdentifier(StringRef S) {
+bool elf::isValidCIdentifier(StringRef S) {
   return !S.empty() && isAlpha(S[0]) &&
          std::all_of(S.begin() + 1, S.end(), isAlnum);
 }
@@ -886,9 +886,9 @@
 // For non-local symbols, use SymbolBody::getVA instead.
 template <class ELFT, bool IsRela>
 typename ELFFile<ELFT>::uintX_t
-elf2::getLocalRelTarget(const ObjectFile<ELFT> &File,
-                        const Elf_Rel_Impl<ELFT, IsRela> &RI,
-                        typename ELFFile<ELFT>::uintX_t Addend) {
+elf::getLocalRelTarget(const ObjectFile<ELFT> &File,
+                       const Elf_Rel_Impl<ELFT, IsRela> &RI,
+                       typename ELFFile<ELFT>::uintX_t Addend) {
   typedef typename ELFFile<ELFT>::Elf_Sym Elf_Sym;
   typedef typename ELFFile<ELFT>::uintX_t uintX_t;
 
@@ -926,7 +926,7 @@
 
 // Returns true if a symbol can be replaced at load-time by a symbol
 // with the same name defined in other ELF executable or DSO.
-bool elf2::canBePreempted(const SymbolBody *Body) {
+bool elf::canBePreempted(const SymbolBody *Body) {
   if (!Body)
     return false;  // Body is a local symbol.
   if (Body->isShared())
@@ -1586,7 +1586,7 @@
 }
 
 namespace lld {
-namespace elf2 {
+namespace elf {
 template class OutputSectionBase<ELF32LE>;
 template class OutputSectionBase<ELF32BE>;
 template class OutputSectionBase<ELF64LE>;
diff --git a/lld/ELF/OutputSections.h b/lld/ELF/OutputSections.h
index 48cb0c1..8ded7d7 100644
--- a/lld/ELF/OutputSections.h
+++ b/lld/ELF/OutputSections.h
@@ -20,7 +20,7 @@
 #include <type_traits>
 
 namespace lld {
-namespace elf2 {
+namespace elf {
 
 class SymbolBody;
 template <class ELFT> class SymbolTable;
@@ -579,7 +579,7 @@
 template <class ELFT> OutputSectionBase<ELFT> *Out<ELFT>::ElfHeader;
 template <class ELFT> OutputSectionBase<ELFT> *Out<ELFT>::ProgramHeaders;
 
-} // namespace elf2
+} // namespace elf
 } // namespace lld
 
 #endif // LLD_ELF_OUTPUT_SECTIONS_H
diff --git a/lld/ELF/README.md b/lld/ELF/README.md
index a718802..686ba57 100644
--- a/lld/ELF/README.md
+++ b/lld/ELF/README.md
@@ -24,7 +24,7 @@
 -----------
 
 You can embed LLD to your program by linking against it and calling the linker's
-entry point function lld::elf2::link.
+entry point function lld::elf::link.
 
 The current policy is that it is your reponsibility to give trustworthy object
 files. The function is guaranteed to return as long as you do not pass corrupted
diff --git a/lld/ELF/SymbolTable.cpp b/lld/ELF/SymbolTable.cpp
index e844f71..8857d65 100644
--- a/lld/ELF/SymbolTable.cpp
+++ b/lld/ELF/SymbolTable.cpp
@@ -30,7 +30,7 @@
 using namespace llvm::ELF;
 
 using namespace lld;
-using namespace lld::elf2;
+using namespace lld::elf;
 
 // All input object files must be for the same architecture
 // (e.g. it does not make sense to link x86 object files with
@@ -356,7 +356,7 @@
           Sym->MustBeInDynSym = true;
 }
 
-template class elf2::SymbolTable<ELF32LE>;
-template class elf2::SymbolTable<ELF32BE>;
-template class elf2::SymbolTable<ELF64LE>;
-template class elf2::SymbolTable<ELF64BE>;
+template class elf::SymbolTable<ELF32LE>;
+template class elf::SymbolTable<ELF32BE>;
+template class elf::SymbolTable<ELF64LE>;
+template class elf::SymbolTable<ELF64BE>;
diff --git a/lld/ELF/SymbolTable.h b/lld/ELF/SymbolTable.h
index 632e71b..1f602e7 100644
--- a/lld/ELF/SymbolTable.h
+++ b/lld/ELF/SymbolTable.h
@@ -18,7 +18,7 @@
 }
 
 namespace lld {
-namespace elf2 {
+namespace elf {
 class Lazy;
 template <class ELFT> class OutputSectionBase;
 struct Symbol;
@@ -103,7 +103,7 @@
   llvm::DenseSet<StringRef> SoNames;
 };
 
-} // namespace elf2
+} // namespace elf
 } // namespace lld
 
 #endif
diff --git a/lld/ELF/Symbols.cpp b/lld/ELF/Symbols.cpp
index 125e6c7..6e094a3 100644
--- a/lld/ELF/Symbols.cpp
+++ b/lld/ELF/Symbols.cpp
@@ -26,7 +26,7 @@
 using namespace llvm::ELF;
 
 using namespace lld;
-using namespace lld::elf2;
+using namespace lld::elf;
 
 template <class ELFT>
 typename ELFFile<ELFT>::uintX_t SymbolBody::getVA() const {
@@ -223,7 +223,7 @@
   ElfSym<ELFT>::Ignored.setVisibility(STV_HIDDEN);
 }
 
-void elf2::initSymbols() {
+void elf::initSymbols() {
   doInitSymbols<ELF32LE>();
   doInitSymbols<ELF32BE>();
   doInitSymbols<ELF64LE>();
@@ -231,7 +231,7 @@
 }
 
 // Returns the demangled C++ symbol name for Name.
-std::string elf2::demangle(StringRef Name) {
+std::string elf::demangle(StringRef Name) {
 #if !defined(HAVE_CXXABI_H)
   return Name;
 #else
@@ -286,12 +286,12 @@
 template int SymbolBody::compare<ELF64LE>(SymbolBody *Other);
 template int SymbolBody::compare<ELF64BE>(SymbolBody *Other);
 
-template class elf2::UndefinedElf<ELF32LE>;
-template class elf2::UndefinedElf<ELF32BE>;
-template class elf2::UndefinedElf<ELF64LE>;
-template class elf2::UndefinedElf<ELF64BE>;
+template class elf::UndefinedElf<ELF32LE>;
+template class elf::UndefinedElf<ELF32BE>;
+template class elf::UndefinedElf<ELF64LE>;
+template class elf::UndefinedElf<ELF64BE>;
 
-template class elf2::DefinedSynthetic<ELF32LE>;
-template class elf2::DefinedSynthetic<ELF32BE>;
-template class elf2::DefinedSynthetic<ELF64LE>;
-template class elf2::DefinedSynthetic<ELF64BE>;
+template class elf::DefinedSynthetic<ELF32LE>;
+template class elf::DefinedSynthetic<ELF32BE>;
+template class elf::DefinedSynthetic<ELF64LE>;
+template class elf::DefinedSynthetic<ELF64BE>;
diff --git a/lld/ELF/Symbols.h b/lld/ELF/Symbols.h
index 0c95475..ea2c2e1 100644
--- a/lld/ELF/Symbols.h
+++ b/lld/ELF/Symbols.h
@@ -30,7 +30,7 @@
 #include "llvm/Object/ELF.h"
 
 namespace lld {
-namespace elf2 {
+namespace elf {
 
 class ArchiveFile;
 class InputFile;
@@ -373,7 +373,7 @@
 typename ElfSym<ELFT>::Elf_Sym ElfSym<ELFT>::RelaIpltStart;
 template <class ELFT> typename ElfSym<ELFT>::Elf_Sym ElfSym<ELFT>::RelaIpltEnd;
 
-} // namespace elf2
+} // namespace elf
 } // namespace lld
 
 #endif
diff --git a/lld/ELF/Target.cpp b/lld/ELF/Target.cpp
index 808bf4e..893bb5e 100644
--- a/lld/ELF/Target.cpp
+++ b/lld/ELF/Target.cpp
@@ -31,7 +31,7 @@
 using namespace llvm::ELF;
 
 namespace lld {
-namespace elf2 {
+namespace elf {
 
 TargetInfo *Target;
 
diff --git a/lld/ELF/Target.h b/lld/ELF/Target.h
index 3e30631..535b2c8 100644
--- a/lld/ELF/Target.h
+++ b/lld/ELF/Target.h
@@ -16,7 +16,7 @@
 #include <memory>
 
 namespace lld {
-namespace elf2 {
+namespace elf {
 class SymbolBody;
 
 class TargetInfo {
diff --git a/lld/ELF/Writer.cpp b/lld/ELF/Writer.cpp
index a903f27..19053e7 100644
--- a/lld/ELF/Writer.cpp
+++ b/lld/ELF/Writer.cpp
@@ -26,7 +26,7 @@
 using namespace llvm::object;
 
 using namespace lld;
-using namespace lld::elf2;
+using namespace lld::elf;
 
 namespace {
 // The writer writes a SymbolTable result to a file.
@@ -123,7 +123,7 @@
 
 template <class ELFT> static bool shouldUseRela() { return ELFT::Is64Bits; }
 
-template <class ELFT> void elf2::writeResult(SymbolTable<ELFT> *Symtab) {
+template <class ELFT> void elf::writeResult(SymbolTable<ELFT> *Symtab) {
   typedef typename ELFFile<ELFT>::uintX_t uintX_t;
 
   // Create singleton output sections.
@@ -1535,7 +1535,7 @@
       Sec->writeTo(Buf + Sec->getFileOff());
 }
 
-template void elf2::writeResult<ELF32LE>(SymbolTable<ELF32LE> *Symtab);
-template void elf2::writeResult<ELF32BE>(SymbolTable<ELF32BE> *Symtab);
-template void elf2::writeResult<ELF64LE>(SymbolTable<ELF64LE> *Symtab);
-template void elf2::writeResult<ELF64BE>(SymbolTable<ELF64BE> *Symtab);
+template void elf::writeResult<ELF32LE>(SymbolTable<ELF32LE> *Symtab);
+template void elf::writeResult<ELF32BE>(SymbolTable<ELF32BE> *Symtab);
+template void elf::writeResult<ELF64LE>(SymbolTable<ELF64LE> *Symtab);
+template void elf::writeResult<ELF64BE>(SymbolTable<ELF64BE> *Symtab);
diff --git a/lld/ELF/Writer.h b/lld/ELF/Writer.h
index 40a1711..fdd4adf 100644
--- a/lld/ELF/Writer.h
+++ b/lld/ELF/Writer.h
@@ -11,7 +11,7 @@
 #define LLD_ELF_WRITER_H
 
 namespace lld {
-namespace elf2 {
+namespace elf {
 
 template <class ELFT> class SymbolTable;
 
diff --git a/lld/include/lld/Driver/Driver.h b/lld/include/lld/Driver/Driver.h
index 37ef494..c08fcce 100644
--- a/lld/include/lld/Driver/Driver.h
+++ b/lld/include/lld/Driver/Driver.h
@@ -87,7 +87,7 @@
 void link(llvm::ArrayRef<const char *> args);
 }
 
-namespace elf2 {
+namespace elf {
 bool link(llvm::ArrayRef<const char *> args, raw_ostream &diag = llvm::errs());
 }
 
diff --git a/lld/lib/Driver/CMakeLists.txt b/lld/lib/Driver/CMakeLists.txt
index 40b1b2b8..7c3a612 100644
--- a/lld/lib/Driver/CMakeLists.txt
+++ b/lld/lib/Driver/CMakeLists.txt
@@ -19,7 +19,7 @@
     lldConfig
     lldMachO
     lldCOFF
-    lldELF2
+    lldELF
     lldCore
     lldReaderWriter
     lldYAML
diff --git a/lld/lib/Driver/UniversalDriver.cpp b/lld/lib/Driver/UniversalDriver.cpp
index c2372cb..14b34ba 100644
--- a/lld/lib/Driver/UniversalDriver.cpp
+++ b/lld/lib/Driver/UniversalDriver.cpp
@@ -201,7 +201,7 @@
   // Switch to appropriate driver.
   switch (flavor) {
   case Flavor::gnu_ld:
-    return elf2::link(args, diagnostics);
+    return elf::link(args, diagnostics);
   case Flavor::darwin_ld:
     return DarwinLdDriver::linkMachO(args, diagnostics);
   case Flavor::win_link: