[PATCH] alpha dl-machine.h fix (take 2)
Jakub Jelinek
jakub@redhat.com
Fri Aug 31 09:38:00 GMT 2001
Hi!
Second attempt.
2001-08-31 Jakub Jelinek <jakub@redhat.com>
* sysdeps/alpha/dl-machine.h (elf_machine_rela): Remove unused code.
Don't add old memory content for R_ALPHA_REFQUAD.
--- libc/sysdeps/alpha/dl-machine.h.jj Fri Aug 31 15:13:05 2001
+++ libc/sysdeps/alpha/dl-machine.h Fri Aug 31 18:37:57 2001
@@ -522,24 +522,7 @@ elf_machine_rela (struct link_map *map,
else if (r_type == R_ALPHA_REFQUAD)
{
void *reloc_addr_1 = reloc_addr;
- Elf64_Addr reloc_addr_val;
- /* Load value without causing unaligned trap. */
- memcpy (&reloc_addr_val, reloc_addr_1, 8);
- sym_value += reloc_addr_val;
- if (map == &_dl_rtld_map)
- {
- /* Undo the relocation done here during bootstrapping.
- Now we will relocate anew, possibly using a binding
- found in the user program or a loaded library rather
- than the dynamic linker's built-in definitions used
- while loading those libraries. */
- const Elf64_Sym *const dlsymtab
- = (void *) D_PTR (map, l_info[DT_SYMTAB]);
- sym_value -= map->l_addr;
- sym_value -= dlsymtab[ELF64_R_SYM(reloc->r_info)].st_value;
- sym_value -= reloc->r_addend;
- }
/* Store value without causing unaligned trap. */
memcpy (reloc_addr_1, &sym_value, 8);
}
Jakub
More information about the Libc-hacker
mailing list