This is the mail archive of the libc-hacker@sources.redhat.com mailing list for the glibc project.
Note that libc-hacker is a closed list. You may look at the archives of this list, but subscription and posting are not open.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Hi! I think my yesterday's patch broke alpha, because _dl_rtld_map is not only referenced in R_ALPHA_RELATIVE handling code (the patch just kills both the decl and its use if HAVE_Z_COMBRELOC), but strangely in R_ALPHA_REFQUAD handling code too. To me this looks bogus, because R_ALPHA_REFQUAD handling is protected with ifndef RTLD_BOOTSTRAP, meaning that no REFQUAD relocs are done in ld.so's first reloc pass (in fact, I cannot see any in alpha ld.so and if there were some, other arches would be in big trouble too), so I think there is nothing to undo when nothing was done. I guess this is a leftover from time when R_ALPHA_REFQUAD handling was not protected with ifndef RTLD_BOOTSTRAP. 2001-08-31 Jakub Jelinek <jakub@redhat.com> * sysdeps/alpha/dl-machine.h (elf_machine_rela): Remove unused code. --- libc/sysdeps/alpha/dl-machine.h.jj Fri Aug 31 15:13:05 2001 +++ libc/sysdeps/alpha/dl-machine.h Fri Aug 31 15:14:51 2001 @@ -527,19 +527,6 @@ elf_machine_rela (struct link_map *map, /* 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
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |