Start adding support for shared libraries.

This just adds the types and enough support to detect incompatibilities among
shared libraries and object files.

llvm-svn: 246797
diff --git a/lld/ELF/Writer.cpp b/lld/ELF/Writer.cpp
index f498742..48abf2d 100644
--- a/lld/ELF/Writer.cpp
+++ b/lld/ELF/Writer.cpp
@@ -543,8 +543,8 @@
 
   EHdr->e_type = ET_EXEC;
   const SymbolTable &Symtab = SymTable.getSymTable();
-  auto &FirstObj = cast<ObjectFile<ELFT>>(*Symtab.getFirstObject());
-  EHdr->e_machine = FirstObj.getObj()->getHeader()->e_machine;
+  auto &FirstObj = cast<ObjectFile<ELFT>>(*Symtab.getFirstELF());
+  EHdr->e_machine = FirstObj.getEMachine();
   EHdr->e_version = EV_CURRENT;
   EHdr->e_entry = 0x401000;
   EHdr->e_phoff = sizeof(Elf_Ehdr_Impl<ELFT>);