diff options
| author | matt <matt@NetBSD.org> | 2001-07-16 05:40:53 +0000 |
|---|---|---|
| committer | matt <matt@NetBSD.org> | 2001-07-16 05:40:53 +0000 |
| commit | ee534ba09d2179067f157773196bdfe134a75a08 (patch) | |
| tree | 4b3f3a3dc46aa201ab3cfd2df153614e0c5dedcb /libexec | |
| parent | bd538b438b18289ff04f81878f8d5b11a592e349 (diff) | |
Fix ABS32 ARM reloc case. ELF shared libs on ARM now work!
Diffstat (limited to 'libexec')
| -rw-r--r-- | libexec/ld.elf_so/reloc.c | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/libexec/ld.elf_so/reloc.c b/libexec/ld.elf_so/reloc.c index db43af67ca9..e025f73a746 100644 --- a/libexec/ld.elf_so/reloc.c +++ b/libexec/ld.elf_so/reloc.c @@ -1,4 +1,4 @@ -/* $NetBSD: reloc.c,v 1.39 2001/07/15 17:31:02 matt Exp $ */ +/* $NetBSD: reloc.c,v 1.40 2001/07/16 05:40:53 matt Exp $ */ /* * Copyright 1996 John D. Polstra. @@ -424,9 +424,9 @@ _rtld_relocate_nonplt_object(obj, rela, dodebug) if (def == NULL) return -1; *where = (Elf_Addr)(defobj->relocbase + def->st_value); - rdbg(dodebug, ("GLOB_DAT %s in %s --> %p in %s", + rdbg(dodebug, ("GLOB_DAT %s in %s --> %p @ %p in %s", defobj->strtab + def->st_name, obj->path, - (void *)*where, defobj->path)); + (void *)*where, where, defobj->path)); break; case R_TYPE(COPY): @@ -442,16 +442,16 @@ _rtld_relocate_nonplt_object(obj, rela, dodebug) &defobj, false); if (def == NULL) return -1; - *where += (Elf_Addr)obj->relocbase + def->st_value; - rdbg(dodebug, ("ABS32 %s in %s --> %p in %s", + *where += (Elf_Addr)defobj->relocbase + def->st_value; + rdbg(dodebug, ("ABS32 %s in %s --> %p @ %p in %s", defobj->strtab + def->st_name, obj->path, - (void *)*where, defobj->path)); + (void *)*where, where, defobj->path)); break; case R_TYPE(RELATIVE): /* word32 B + A */ *where += (Elf_Addr)obj->relocbase; - rdbg(dodebug, ("RELATIVE in %s --> %p", obj->path, - (void *)*where)); + rdbg(dodebug, ("RELATIVE in %s --> %p @ %p", obj->path, + (void *)*where, where)); break; case R_TYPE(PC24): { /* word32 S - P + A */ @@ -480,9 +480,9 @@ _rtld_relocate_nonplt_object(obj, rela, dodebug) } tmp >>= 2; *where = (*where & 0xff000000) | (tmp & 0x00ffffff); - rdbg(dodebug, ("PC24 %s in %s --> %p in %s", + rdbg(dodebug, ("PC24 %s in %s --> %p @ %p in %s", defobj->strtab + def->st_name, obj->path, - (void *)*where, defobj->path)); + (void *)*where, where, defobj->path)); break; } #endif |
