linker: remove soinfo::entry

This field is used only once and only for main executable;
no need to carry it around in soinfo structure.

Change-Id: I7f80c64e0939e28966b6fed858891f9ce2a9e26b
diff --git a/linker/linker.cpp b/linker/linker.cpp
index a032068..16bb47c 100644
--- a/linker/linker.cpp
+++ b/linker/linker.cpp
@@ -4017,7 +4017,6 @@
   // Extract information passed from the kernel.
   si->phdr = reinterpret_cast<ElfW(Phdr)*>(args.getauxval(AT_PHDR));
   si->phnum = args.getauxval(AT_PHNUM);
-  si->entry = args.getauxval(AT_ENTRY);
 
   /* Compute the value of si->base. We can't rely on the fact that
    * the first entry is the PHDR because this will not be true
@@ -4146,8 +4145,9 @@
   fflush(stdout);
 #endif
 
-  TRACE("[ Ready to execute '%s' @ %p ]", si->get_realpath(), reinterpret_cast<void*>(si->entry));
-  return si->entry;
+  ElfW(Addr) entry = args.getauxval(AT_ENTRY);
+  TRACE("[ Ready to execute '%s' @ %p ]", si->get_realpath(), reinterpret_cast<void*>(entry));
+  return entry;
 }
 
 /* Compute the load-bias of an existing executable. This shall only
diff --git a/linker/linker.h b/linker/linker.h
index 389c5b3..c669c46 100644
--- a/linker/linker.h
+++ b/linker/linker.h
@@ -173,7 +173,9 @@
  public:
   const ElfW(Phdr)* phdr;
   size_t phnum;
-  ElfW(Addr) entry;
+#if defined(__work_around_b_24465209__)
+  ElfW(Addr) unused0; // DO NOT USE, maintained for compatibility.
+#endif
   ElfW(Addr) base;
   size_t size;