OSDN Git Service

err, x86_64 is RELA, not REL
authorMike Frysinger <vapier@gentoo.org>
Fri, 8 Jul 2005 05:18:41 +0000 (05:18 -0000)
committerMike Frysinger <vapier@gentoo.org>
Fri, 8 Jul 2005 05:18:41 +0000 (05:18 -0000)
ldso/ldso/x86_64/dl-sysdep.h

index e834645..a156e7b 100644 (file)
@@ -102,14 +102,14 @@ elf_machine_load_address (void)
 }
 
 static __always_inline void
-elf_machine_relative (Elf64_Addr load_off, const Elf64_Addr rel_addr,
-                      Elf64_Word relative_count)
+elf_machine_relative(Elf64_Addr load_off, const Elf64_Addr rel_addr,
+                     Elf64_Word relative_count)
 {
-       Elf64_Rel * rpnt = (void *) rel_addr;
+       Elf64_Rela *rpnt = (void *)rel_addr;
        --rpnt;
        do {
                Elf64_Addr *const reloc_addr = (void *) (load_off + (++rpnt)->r_offset);
 
-               *reloc_addr += load_off;
+               *reloc_addr = load_off + rpnt->r_addend;
        } while (--relative_count);
 }