ELF2: Support --entry=<addr>.

If an argument for --entry is a number, that's not a symbol name but
an absolute address. If that's the case, the address is directly set
to ELF header's e_entry.

llvm-svn: 250334
diff --git a/lld/ELF/Writer.cpp b/lld/ELF/Writer.cpp
index 4307b48..4861dc1 100644
--- a/lld/ELF/Writer.cpp
+++ b/lld/ELF/Writer.cpp
@@ -648,9 +648,12 @@
   EHdr->e_type = Config->Shared ? ET_DYN : ET_EXEC;
   EHdr->e_machine = FirstObj.getEMachine();
   EHdr->e_version = EV_CURRENT;
-  if (Config->EntrySym)
+  if (Config->EntrySym) {
     if (auto *E = dyn_cast<ELFSymbolBody<ELFT>>(Config->EntrySym->repl()))
       EHdr->e_entry = getSymVA<ELFT>(*E);
+  } else if (Config->EntryAddr != uint64_t(-1)) {
+    EHdr->e_entry = Config->EntryAddr;
+  }
   EHdr->e_phoff = sizeof(Elf_Ehdr);
   EHdr->e_shoff = SectionHeaderOff;
   EHdr->e_ehsize = sizeof(Elf_Ehdr);