aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/i386/dl-runtime.c
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/i386/dl-runtime.c')
-rw-r--r--sysdeps/i386/dl-runtime.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/sysdeps/i386/dl-runtime.c b/sysdeps/i386/dl-runtime.c
index 897524f..1bc5697 100644
--- a/sysdeps/i386/dl-runtime.c
+++ b/sysdeps/i386/dl-runtime.c
@@ -17,8 +17,6 @@ License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
-register void *sp asm ("%esp");
-
#include <link.h>
#include "dynamic-link.h"
@@ -30,7 +28,7 @@ register void *sp asm ("%esp");
0(%esp) identifier for this shared object (struct link_map *)
The user expects the real function the PLT refers to to be entered
- 8(%esp) as the top of stack. */
+ with 8(%esp) as the top of stack. */
void
_dl_runtime_resolve (Elf32_Word reloc_offset)
@@ -63,14 +61,15 @@ _dl_runtime_resolve (Elf32_Word reloc_offset)
scope = _dl_loaded;
definer = &symtab[ELF32_R_SYM (reloc->r_info)];
- loadbase = _dl_lookup_symbol (strtab + definer->st_name, &definer, scope);
+ loadbase = _dl_lookup_symbol (strtab + definer->st_name, &definer,
+ scope, l->l_name);
/* Restore list frobnication done above for DT_SYMBOLIC. */
l->l_next = real_next;
l->l_prev->l_next = l;
/* Apply the relocation with that value. */
- elf_machine_rel (l->l_addr, l->l_info, reloc, loadbase, definer);
+ elf_machine_rel (l, reloc, loadbase, definer);
/* The top of the stack is the word we set L from; but this location
holds the address we will return to. Store there the address of a