Remove 32-bit assumptions from the ELF code.

Change-Id: I2c1f3d34c33685799aade8866eec44479ff9f963
This commit is contained in:
Elliott Hughes
2013-09-30 18:43:46 -07:00
parent 6dee3b9aee
commit c620059479
13 changed files with 212 additions and 261 deletions

View File

@@ -100,24 +100,28 @@ typedef void (*linker_function_t)();
struct soinfo {
public:
char name[SOINFO_NAME_LEN];
const Elf32_Phdr* phdr;
const Elf_Phdr* phdr;
size_t phnum;
Elf32_Addr entry;
Elf32_Addr base;
Elf_Addr entry;
Elf_Addr base;
unsigned size;
#ifndef __LP64__
uint32_t unused1; // DO NOT USE, maintained for compatibility.
#endif
Elf32_Dyn* dynamic;
Elf_Dyn* dynamic;
#ifndef __LP64__
uint32_t unused2; // DO NOT USE, maintained for compatibility
uint32_t unused3; // DO NOT USE, maintained for compatibility
#endif
soinfo* next;
unsigned flags;
const char* strtab;
Elf32_Sym* symtab;
Elf_Sym* symtab;
size_t nbucket;
size_t nchain;
@@ -126,10 +130,10 @@ struct soinfo {
unsigned* plt_got;
Elf32_Rel* plt_rel;
Elf_Rel* plt_rel;
size_t plt_rel_count;
Elf32_Rel* rel;
Elf_Rel* rel;
size_t rel_count;
linker_function_t* preinit_array;
@@ -160,7 +164,7 @@ struct soinfo {
// When you read a virtual address from the ELF file, add this
// value to get the corresponding address in the process' address space.
Elf32_Addr load_bias;
Elf_Addr load_bias;
bool has_text_relocations;
bool has_DT_SYMBOLIC;
@@ -188,11 +192,11 @@ void do_android_update_LD_LIBRARY_PATH(const char* ld_library_path);
soinfo* do_dlopen(const char* name, int flags);
int do_dlclose(soinfo* si);
Elf32_Sym* dlsym_linear_lookup(const char* name, soinfo** found, soinfo* start);
Elf_Sym* dlsym_linear_lookup(const char* name, soinfo** found, soinfo* start);
soinfo* find_containing_library(const void* addr);
Elf32_Sym* dladdr_find_symbol(soinfo* si, const void* addr);
Elf32_Sym* dlsym_handle_lookup(soinfo* si, const char* name);
Elf_Sym* dladdr_find_symbol(soinfo* si, const void* addr);
Elf_Sym* dlsym_handle_lookup(soinfo* si, const char* name);
void debuggerd_init();
extern "C" abort_msg_t* gAbortMessage;