summaryrefslogtreecommitdiff
path: root/ldso/ldso/arm
diff options
context:
space:
mode:
authorEric Andersen <andersen@codepoet.org>2002-05-02 13:36:53 +0000
committerEric Andersen <andersen@codepoet.org>2002-05-02 13:36:53 +0000
commit4a5a81ac165c040935a8807a580db49d381dc443 (patch)
tree7fcd5458f95399731b537e1cfd22538ee2d03c19 /ldso/ldso/arm
parent776eae615326f6439734b05fa39c335bf2dc681b (diff)
Patch from Steven J. Hill <sjhill@realitydiluted.com>:
I am very pleased to announce that the MIPS dynamic linker/loader for uClibc is now working. It works on big and little endian platforms. A few minor changes were needed to avoid breaking ldd, and since this makes some non-trivial changes, I have tested on x86, arm, and powerpc to be sure thoese arches didn't get broken. Excellent work Steven!
Diffstat (limited to 'ldso/ldso/arm')
-rw-r--r--ldso/ldso/arm/elfinterp.c6
-rw-r--r--ldso/ldso/arm/resolve.S2
2 files changed, 3 insertions, 5 deletions
diff --git a/ldso/ldso/arm/elfinterp.c b/ldso/ldso/arm/elfinterp.c
index bd08944d7..7ca0b80cb 100644
--- a/ldso/ldso/arm/elfinterp.c
+++ b/ldso/ldso/arm/elfinterp.c
@@ -89,7 +89,7 @@ unsigned long _dl_linux_resolver(struct elf_resolve *tpnt, int reloc_entry)
/* Get the address of the GOT entry */
new_addr = _dl_find_hash(strtab + symtab[symtab_index].st_name,
- tpnt->symbol_scope, (unsigned long) got_addr, tpnt, 0);
+ tpnt->symbol_scope, tpnt, 0);
if (!new_addr) {
_dl_dprintf(2, "%s: can't resolve symbol '%s'\n",
_dl_progname, strtab + symtab[symtab_index].st_name);
@@ -221,7 +221,7 @@ int _dl_parse_relocation_information(struct elf_resolve *tpnt,
continue;
symbol_addr = (unsigned long) _dl_find_hash(strtab + symtab[symtab_index].st_name,
- tpnt->symbol_scope, (unsigned long) reloc_addr,
+ tpnt->symbol_scope,
(reloc_type == R_ARM_JUMP_SLOT ? tpnt : NULL), 0);
/*
@@ -350,7 +350,7 @@ int _dl_parse_copy_information(struct dyn_elf *xpnt, unsigned long rel_addr,
symbol_addr = (unsigned long) _dl_find_hash(strtab +
symtab[symtab_index].st_name, xpnt->next,
- (unsigned long) reloc_addr, NULL, 1);
+ NULL, 1);
if (!symbol_addr) {
_dl_dprintf(2, "%s: can't resolve symbol '%s'\n",
_dl_progname, strtab + symtab[symtab_index].st_name);
diff --git a/ldso/ldso/arm/resolve.S b/ldso/ldso/arm/resolve.S
index 514ecb64e..96c84fc3a 100644
--- a/ldso/ldso/arm/resolve.S
+++ b/ldso/ldso/arm/resolve.S
@@ -13,8 +13,6 @@
* where the jump symbol is _really_ supposed to have jumped to and returns
* that to us. Once we have that, we overwrite tpnt with this fixed up
* address. We then clean up after ourselves, put all the registers back how we
- * found them, then we jump to where the fixed up address, which is where the
- * jump symbol that got us here really wanted to jump to in the first place.
* found them, then we jump to the fixed up address, which is where the jump
* symbol that got us here really wanted to jump to in the first place.
* -Erik Andersen