From c3393906d84d0d9cb7d688e0f2bbf8cde92190a2 Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Sun, 27 Nov 2011 01:58:40 -0500 Subject: 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 Acked-by: Carmelo Amoroso Signed-off-by: Mike Frysinger --- ldso/ldso/sh64/elfinterp.c | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) (limited to 'ldso/ldso/sh64/elfinterp.c') diff --git a/ldso/ldso/sh64/elfinterp.c b/ldso/ldso/sh64/elfinterp.c index 0d16f6b9d..3a59bc4be 100644 --- a/ldso/ldso/sh64/elfinterp.c +++ b/ldso/ldso/sh64/elfinterp.c @@ -49,7 +49,7 @@ unsigned long _dl_linux_resolver(struct elf_resolve *tpnt, int reloc_entry) { ELF_RELOC *this_reloc; char *strtab; - Elf32_Sym *symtab; + ElfW(Sym) *symtab; int symtab_index; char *rel_addr; char *new_addr; @@ -60,9 +60,9 @@ unsigned long _dl_linux_resolver(struct elf_resolve *tpnt, int reloc_entry) rel_addr = (char *)tpnt->dynamic_info[DT_JMPREL]; this_reloc = (ELF_RELOC *)(intptr_t)(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 *)(intptr_t)tpnt->dynamic_info[DT_SYMTAB]; + symtab = (ElfW(Sym) *)(intptr_t)tpnt->dynamic_info[DT_SYMTAB]; strtab = (char *)tpnt->dynamic_info[DT_STRTAB]; symname = strtab + symtab[symtab_index].st_name; @@ -106,12 +106,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, + ELF_RELOC *rpnt, ElfW(Sym) *symtab, char *strtab)) { unsigned int i; char *strtab; - Elf32_Sym *symtab; + ElfW(Sym) *symtab; ELF_RELOC *rpnt; int symtab_index; @@ -119,13 +119,13 @@ static int _dl_parse(struct elf_resolve *tpnt, struct r_scope_elem *scope, rpnt = (ELF_RELOC *)(intptr_t)rel_addr; rel_size = rel_size / sizeof(ELF_RELOC); - symtab = (Elf32_Sym *)(intptr_t)tpnt->dynamic_info[DT_SYMTAB]; + symtab = (ElfW(Sym) *)(intptr_t)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); @@ -140,7 +140,7 @@ static int _dl_parse(struct elf_resolve *tpnt, struct r_scope_elem *scope, strtab + symtab[symtab_index].st_name); if (unlikely(res < 0)) { - int reloc_type = ELF32_R_TYPE(rpnt->r_info); + int reloc_type = ELF_R_TYPE(rpnt->r_info); _dl_dprintf(2, "can't handle reloc type " #ifdef __SUPPORT_LD_DEBUG__ @@ -163,7 +163,7 @@ static int _dl_parse(struct elf_resolve *tpnt, struct r_scope_elem *scope, } 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, lsb; @@ -175,8 +175,8 @@ static int _dl_do_reloc(struct elf_resolve *tpnt,struct r_scope_elem *scope, #endif struct symbol_ref sym_ref; - 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; lsb = !!(symtab[symtab_index].st_other & STO_SH5_ISA32); sym_ref.sym = &symtab[symtab_index]; @@ -196,7 +196,7 @@ static int _dl_do_reloc(struct elf_resolve *tpnt,struct r_scope_elem *scope, * might have been intentional. We should not be linking local * symbols here, so all bases should be covered. */ - stb = ELF32_ST_BIND(symtab[symtab_index].st_info); + stb = ELF_ST_BIND(symtab[symtab_index].st_info); if (stb != STB_WEAK && !symbol_addr) { _dl_dprintf (2, "%s: can't resolve symbol '%s'\n", @@ -295,7 +295,7 @@ static int _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, symtab_index, lsb; unsigned long *reloc_addr; @@ -303,8 +303,8 @@ static int _dl_do_lazy_reloc(struct elf_resolve *tpnt, struct r_scope_elem *scop unsigned long old_val; #endif - 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); lsb = !!(symtab[symtab_index].st_other & STO_SH5_ISA32); reloc_addr = (unsigned long *)(intptr_t) (tpnt->loadaddr + (unsigned long)rpnt->r_offset); -- cgit v1.2.3