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;