Remove 32-bit assumptions from the ELF code.
Change-Id: I2c1f3d34c33685799aade8866eec44479ff9f963
diff --git a/linker/linker.h b/linker/linker.h
index 200a682..ac7b9fe 100644
--- a/linker/linker.h
+++ b/linker/linker.h
@@ -100,24 +100,28 @@
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 @@
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 @@
// 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 @@
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;