diff options
author | Mike Frysinger <vapier@gentoo.org> | 2011-11-27 01:58:40 -0500 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2012-03-25 01:55:43 -0400 |
commit | c3393906d84d0d9cb7d688e0f2bbf8cde92190a2 (patch) | |
tree | 9ea8993348b94ba8d527eb7d49e6988055739708 /ldso/ldso/arm | |
parent | 867bac0c750401d2f429ad6bb066498c3b8b35c1 (diff) |
ldso: use ELF_xxx()/ElfW() helpers
They expand into the same code, but using the ELF_xxx()/ElfW() macros
makes it much easier to spot similarities between code bases.
Acked-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Acked-by: Carmelo Amoroso <carmelo.amoroso@st.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Diffstat (limited to 'ldso/ldso/arm')
-rw-r--r-- | ldso/ldso/arm/dl-startup.h | 2 | ||||
-rw-r--r-- | ldso/ldso/arm/elfinterp.c | 28 |
2 files changed, 15 insertions, 15 deletions
diff --git a/ldso/ldso/arm/dl-startup.h b/ldso/ldso/arm/dl-startup.h index 2dfdaffda..f7d605267 100644 --- a/ldso/ldso/arm/dl-startup.h +++ b/ldso/ldso/arm/dl-startup.h @@ -141,7 +141,7 @@ static __always_inline void PERFORM_BOOTSTRAP_RELOC(ELF_RELOC *rpnt, unsigned long *reloc_addr, unsigned long symbol_addr, unsigned long load_addr, Elf32_Sym *symtab) { - switch (ELF32_R_TYPE(rpnt->r_info)) { + switch (ELF_R_TYPE(rpnt->r_info)) { case R_ARM_NONE: break; case R_ARM_ABS32: diff --git a/ldso/ldso/arm/elfinterp.c b/ldso/ldso/arm/elfinterp.c index cde055d59..b6dfae26b 100644 --- a/ldso/ldso/arm/elfinterp.c +++ b/ldso/ldso/arm/elfinterp.c @@ -47,7 +47,7 @@ unsigned long _dl_linux_resolver(struct elf_resolve *tpnt, int reloc_entry) ELF_RELOC *this_reloc; char *strtab; char *symname; - Elf32_Sym *symtab; + ElfW(Sym) *symtab; ELF_RELOC *rel_addr; int symtab_index; unsigned long new_addr; @@ -57,9 +57,9 @@ unsigned long _dl_linux_resolver(struct elf_resolve *tpnt, int reloc_entry) rel_addr = (ELF_RELOC *) tpnt->dynamic_info[DT_JMPREL]; this_reloc = rel_addr + reloc_entry; - symtab_index = ELF32_R_SYM(this_reloc->r_info); + symtab_index = ELF_R_SYM(this_reloc->r_info); - symtab = (Elf32_Sym *) tpnt->dynamic_info[DT_SYMTAB]; + symtab = (ElfW(Sym) *) tpnt->dynamic_info[DT_SYMTAB]; strtab = (char *) tpnt->dynamic_info[DT_STRTAB]; symname = strtab + symtab[symtab_index].st_name; @@ -102,12 +102,12 @@ static int _dl_parse(struct elf_resolve *tpnt, struct r_scope_elem *scope, unsigned long rel_addr, unsigned long rel_size, int (*reloc_fnc) (struct elf_resolve *tpnt, struct r_scope_elem *scope, - ELF_RELOC *rpnt, Elf32_Sym *symtab, char *strtab)) + ELF_RELOC *rpnt, ElfW(Sym) *symtab, char *strtab)) { int i; char *strtab; int goof = 0; - Elf32_Sym *symtab; + ElfW(Sym) *symtab; ELF_RELOC *rpnt; int symtab_index; @@ -115,13 +115,13 @@ _dl_parse(struct elf_resolve *tpnt, struct r_scope_elem *scope, rpnt = (ELF_RELOC *) rel_addr; rel_size = rel_size / sizeof(ELF_RELOC); - symtab = (Elf32_Sym *) tpnt->dynamic_info[DT_SYMTAB]; + symtab = (ElfW(Sym) *) tpnt->dynamic_info[DT_SYMTAB]; strtab = (char *) tpnt->dynamic_info[DT_STRTAB]; for (i = 0; i < rel_size; i++, rpnt++) { int res; - symtab_index = ELF32_R_SYM(rpnt->r_info); + symtab_index = ELF_R_SYM(rpnt->r_info); debug_sym(symtab,strtab,symtab_index); debug_reloc(symtab,strtab,rpnt); @@ -137,7 +137,7 @@ _dl_parse(struct elf_resolve *tpnt, struct r_scope_elem *scope, if (unlikely(res <0)) { - int reloc_type = ELF32_R_TYPE(rpnt->r_info); + int reloc_type = ELF_R_TYPE(rpnt->r_info); #if defined (__SUPPORT_LD_DEBUG__) _dl_dprintf(2, "can't handle reloc type %s\n ", _dl_reltypes(reloc_type)); #else @@ -182,7 +182,7 @@ fix_bad_pc24 (unsigned long *const reloc_addr, unsigned long value) static int _dl_do_reloc (struct elf_resolve *tpnt,struct r_scope_elem *scope, - ELF_RELOC *rpnt, Elf32_Sym *symtab, char *strtab) + ELF_RELOC *rpnt, ElfW(Sym) *symtab, char *strtab) { int reloc_type; int symtab_index; @@ -195,8 +195,8 @@ _dl_do_reloc (struct elf_resolve *tpnt,struct r_scope_elem *scope, reloc_addr = (unsigned long *) (tpnt->loadaddr + (unsigned long) rpnt->r_offset); - reloc_type = ELF32_R_TYPE(rpnt->r_info); - symtab_index = ELF32_R_SYM(rpnt->r_info); + reloc_type = ELF_R_TYPE(rpnt->r_info); + symtab_index = ELF_R_SYM(rpnt->r_info); symbol_addr = 0; sym_ref.sym = &symtab[symtab_index]; sym_ref.tpnt = NULL; @@ -212,7 +212,7 @@ _dl_do_reloc (struct elf_resolve *tpnt,struct r_scope_elem *scope, * here, so all bases should be covered. */ if (!symbol_addr && (ELF_ST_TYPE(symtab[symtab_index].st_info) != STT_TLS) - && (ELF32_ST_BIND(symtab[symtab_index].st_info) != STB_WEAK)) { + && (ELF_ST_BIND(symtab[symtab_index].st_info) != STB_WEAK)) { /* This may be non-fatal if called from dlopen. */ return 1; @@ -314,13 +314,13 @@ _dl_do_reloc (struct elf_resolve *tpnt,struct r_scope_elem *scope, static int _dl_do_lazy_reloc (struct elf_resolve *tpnt, struct r_scope_elem *scope, - ELF_RELOC *rpnt, Elf32_Sym *symtab, char *strtab) + ELF_RELOC *rpnt, ElfW(Sym) *symtab, char *strtab) { int reloc_type; unsigned long *reloc_addr; reloc_addr = (unsigned long *) (tpnt->loadaddr + (unsigned long) rpnt->r_offset); - reloc_type = ELF32_R_TYPE(rpnt->r_info); + reloc_type = ELF_R_TYPE(rpnt->r_info); #if defined (__SUPPORT_LD_DEBUG__) { |