diff options
-rw-r--r-- | ldso/ldso/i386/elfinterp.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/ldso/ldso/i386/elfinterp.c b/ldso/ldso/i386/elfinterp.c index 56f69a9f8..12e67f5d2 100644 --- a/ldso/ldso/i386/elfinterp.c +++ b/ldso/ldso/i386/elfinterp.c @@ -148,7 +148,6 @@ _dl_linux_resolver(struct elf_resolve *tpnt, int reloc_entry) /* Get the address of the GOT entry. */ new_addr = _dl_find_hash(symname, tpnt->symbol_scope, ELF_RTYPE_CLASS_PLT); - if (unlikely(!new_addr)) { _dl_dprintf(2, "%s: Can't resolve symbol '%s'\n", _dl_progname, symname); _dl_exit(1); @@ -160,7 +159,7 @@ _dl_linux_resolver(struct elf_resolve *tpnt, int reloc_entry) _dl_dprintf(_dl_debug_file, "\nresolve function: %s", symname); if (_dl_debug_detail) _dl_dprintf(_dl_debug_file, - "\n\tpatched %x ==> %x @ %x\n", + "\n\tpatched: %x ==> %x @ %x", *got_addr, new_addr, got_addr); } } @@ -292,10 +291,12 @@ _dl_do_reloc(struct elf_resolve *tpnt, struct dyn_elf *scope, if (symbol_addr) { #if defined (__SUPPORT_LD_DEBUG__) if (_dl_debug_move) - _dl_dprintf(_dl_debug_file,"\n%s move %x bytes from %x to %x", + _dl_dprintf(_dl_debug_file, + "\n%s move %d bytes from %x to %x", symname, symtab[symtab_index].st_size, symbol_addr, reloc_addr); #endif + _dl_memcpy((char *)reloc_addr, (char *)symbol_addr, symtab[symtab_index].st_size); @@ -307,7 +308,8 @@ _dl_do_reloc(struct elf_resolve *tpnt, struct dyn_elf *scope, #if defined (__SUPPORT_LD_DEBUG__) if (_dl_debug_reloc && _dl_debug_detail) - _dl_dprintf(_dl_debug_file, "\tpatched: %x ==> %x @ %x", old_val, *reloc_addr, reloc_addr); + _dl_dprintf(_dl_debug_file, "\n\tpatched: %x ==> %x @ %x", + old_val, *reloc_addr, reloc_addr); #endif return 0; @@ -346,7 +348,7 @@ _dl_do_lazy_reloc(struct elf_resolve *tpnt, struct dyn_elf *scope, #if defined (__SUPPORT_LD_DEBUG__) if (_dl_debug_reloc && _dl_debug_detail) - _dl_dprintf(_dl_debug_file, "\tpatched: %x ==> %x @ %x", + _dl_dprintf(_dl_debug_file, "\n\tpatched: %x ==> %x @ %x", old_val, *reloc_addr, reloc_addr); #endif @@ -428,4 +430,3 @@ _dl_parse_copy_information(struct dyn_elf *rpnt, /* just disable for now, remove when we know that it works */ /* return _dl_parse(rpnt->dyn, rpnt->next, rel_addr, rel_size, _dl_do_copy_reloc); */ } - |