mirror of
https://sourceware.org/git/glibc.git
synced 2024-12-22 19:00:07 +00:00
* sysdeps/i386/dl-machine.h (elf_machine_rel): Add to, don't clobber,
unrelocated initial value for DTPOFF32 and TPOFF32 relocs. Reported by Jakub Jelinek <jakub@redhat.com>.
This commit is contained in:
parent
0be405c239
commit
534feaab4b
@ -1,3 +1,9 @@
|
||||
2002-08-07 Roland McGrath <roland@redhat.com>
|
||||
|
||||
* sysdeps/i386/dl-machine.h (elf_machine_rel): Add to, don't clobber,
|
||||
unrelocated initial value for DTPOFF32 and TPOFF32 relocs.
|
||||
Reported by Jakub Jelinek <jakub@redhat.com>.
|
||||
|
||||
2002-08-07 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* malloc/malloc.c (public_cALLOc): Check ELEM_SIZE != 0 before
|
||||
|
@ -393,20 +393,20 @@ elf_machine_rel (struct link_map *map, const Elf32_Rel *reloc,
|
||||
/* During relocation all TLS symbols are defined and used.
|
||||
Therefore the offset is already correct. */
|
||||
if (sym != NULL)
|
||||
*reloc_addr = sym->st_value;
|
||||
*reloc_addr += sym->st_value;
|
||||
# endif
|
||||
break;
|
||||
case R_386_TLS_TPOFF32:
|
||||
/* The offset is positive, backward from the thread pointer. */
|
||||
# ifdef RTLD_BOOTSTRAP
|
||||
*reloc_addr = map->l_tls_offset - sym->st_value;
|
||||
*reloc_addr += map->l_tls_offset - sym->st_value;
|
||||
# else
|
||||
/* We know the offset of object the symbol is contained in.
|
||||
It is a positive value which will be subtracted from the
|
||||
thread pointer. To get the variable position in the TLS
|
||||
block we subtract the offset from that of the TLS block. */
|
||||
if (sym_map != NULL && sym != NULL)
|
||||
*reloc_addr = sym_map->l_tls_offset - sym->st_value;
|
||||
*reloc_addr += sym_map->l_tls_offset - sym->st_value;
|
||||
# endif
|
||||
break;
|
||||
#endif /* use TLS */
|
||||
|
Loading…
Reference in New Issue
Block a user