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/frv | |
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/frv')
-rw-r--r-- | ldso/ldso/frv/dl-startup.h | 2 | ||||
-rw-r--r-- | ldso/ldso/frv/elfinterp.c | 32 |
2 files changed, 17 insertions, 17 deletions
diff --git a/ldso/ldso/frv/dl-startup.h b/ldso/ldso/frv/dl-startup.h index fd5edddb9..2aa7baa56 100644 --- a/ldso/ldso/frv/dl-startup.h +++ b/ldso/ldso/frv/dl-startup.h @@ -87,7 +87,7 @@ _dl_boot (void *dl_boot_got_pointer, \ * load address. */ #define PERFORM_BOOTSTRAP_RELOC(RELP,REL,SYMBOL,LOAD,SYMTAB) \ - switch(ELF32_R_TYPE((RELP)->r_info)){ \ + switch(ELF_R_TYPE((RELP)->r_info)){ \ case R_FRV_32: \ *(REL) += (SYMBOL); \ break; \ diff --git a/ldso/ldso/frv/elfinterp.c b/ldso/ldso/frv/elfinterp.c index 726b58b09..6cb09f81f 100644 --- a/ldso/ldso/frv/elfinterp.c +++ b/ldso/ldso/frv/elfinterp.c @@ -28,7 +28,7 @@ _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; struct elf_resolve *new_tpnt; @@ -41,9 +41,9 @@ _dl_linux_resolver (struct elf_resolve *tpnt, int reloc_entry) tpnt->loadaddr); 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) + symtab = (ElfW(Sym) *)(intptr_t) DL_RELOC_ADDR (tpnt->dynamic_info[DT_SYMTAB], tpnt->loadaddr); strtab = DL_RELOC_ADDR (tpnt->dynamic_info[DT_STRTAB], tpnt->loadaddr); @@ -94,11 +94,11 @@ 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)) { unsigned int i; char *strtab; - Elf32_Sym *symtab; + ElfW(Sym) *symtab; ELF_RELOC *rpnt; int symtab_index; @@ -106,14 +106,14 @@ _dl_parse(struct elf_resolve *tpnt, struct r_scope_elem *scope, rpnt = (ELF_RELOC *)(intptr_t) DL_RELOC_ADDR (rel_addr, tpnt->loadaddr); rel_size = rel_size / sizeof(ELF_RELOC); - symtab = (Elf32_Sym *)(intptr_t) + symtab = (ElfW(Sym) *)(intptr_t) DL_RELOC_ADDR (tpnt->dynamic_info[DT_SYMTAB], tpnt->loadaddr); strtab = DL_RELOC_ADDR (tpnt->dynamic_info[DT_STRTAB], tpnt->loadaddr); 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); @@ -128,7 +128,7 @@ _dl_parse(struct elf_resolve *tpnt, struct r_scope_elem *scope, if (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 @@ -147,7 +147,7 @@ _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; @@ -165,12 +165,12 @@ _dl_do_reloc (struct elf_resolve *tpnt,struct r_scope_elem *scope, reloc_addr = (unsigned long *)(intptr_t) DL_RELOC_ADDR (rpnt->r_offset, tpnt->loadaddr); __asm__ ("" : "=r" (reloc_addr_packed) : "0" (reloc_addr)); - 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; symname = strtab + symtab[symtab_index].st_name; - if (ELF32_ST_BIND (symtab[symtab_index].st_info) == STB_LOCAL) { + if (ELF_ST_BIND (symtab[symtab_index].st_info) == STB_LOCAL) { symbol_addr = (unsigned long) DL_RELOC_ADDR (symtab[symtab_index].st_value, tpnt->loadaddr); @@ -186,7 +186,7 @@ _dl_do_reloc (struct elf_resolve *tpnt,struct r_scope_elem *scope, * here, so all bases should be covered. */ - if (!symbol_addr && ELF32_ST_BIND(symtab[symtab_index].st_info) != STB_WEAK) { + if (!symbol_addr && ELF_ST_BIND(symtab[symtab_index].st_info) != STB_WEAK) { _dl_dprintf (2, "%s: can't resolve symbol '%s'\n", _dl_progname, strtab + symtab[symtab_index].st_name); _dl_exit (1); @@ -220,7 +220,7 @@ _dl_do_reloc (struct elf_resolve *tpnt,struct r_scope_elem *scope, symbols must be ignored, because it may hold the address of a lazy PLT entry. */ - if (ELF32_ST_BIND + if (ELF_ST_BIND (symtab[symtab_index].st_info) == STB_LOCAL) funcval.entry_point += *reloc_addr; @@ -277,7 +277,7 @@ _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 __attribute_used__, - ELF_RELOC *rpnt, Elf32_Sym *symtab __attribute_used__, + ELF_RELOC *rpnt, ElfW(Sym) *symtab __attribute_used__, char *strtab __attribute_used__) { int reloc_type; @@ -289,7 +289,7 @@ _dl_do_lazy_reloc (struct elf_resolve *tpnt, reloc_addr = (struct funcdesc_value *)(intptr_t) DL_RELOC_ADDR (rpnt->r_offset, tpnt->loadaddr); - reloc_type = ELF32_R_TYPE(rpnt->r_info); + reloc_type = ELF_R_TYPE(rpnt->r_info); #if defined (__SUPPORT_LD_DEBUG__) old_val = (unsigned long)reloc_addr->entry_point; |