From 8e27f45e05625aab0797d8dc1afb5b47204cb20a Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Thu, 24 Apr 2003 17:11:08 +0000 Subject: * elf/dl-reloc.c (allocate_static_tls): Rename to... (_dl_allocate_static_tls): ... this function. No longer static. (CHECK_STATIC_TLS): Adjust. * sysdeps/generic/ldsodefs.h (_dl_allocate_static_tls): New prototype. * sysdeps/powerpc/powerpc32/dl-machine.h (__process_machine_rela): Add SYM_MAP argument. (elf_machine_rela): Adjust caller. Declare SYM_MAP unconditionally. Check if SYM_MAP != NULL for R_PPC_DTPREL32. Only handle 32-bit TLS relocs here. #ifdef out relocs which never appear in .gnu.conflict section from dl-conflict.c processing. * sysdeps/powerpc/powerpc32/dl-machine.c (__process_machine_rela): Add SYM_MAP argument. Handle 16-bit TLS relocs here. * sysdeps/s390/s390-32/dl-machine.h (elf_machine_rela): #ifdef out relocs which never appear in .gnu.conflict section from dl-conflict.c processing. * sysdeps/s390/s390-64/dl-machine.h (elf_machine_rela): Likewise. * sysdeps/x86_64/dl-machine.h (elf_machine_rela): Likewise. * sysdeps/i386/dl-machine.h (elf_machine_rela): Likewise. Use r_type in RESOLVE macro. --- sysdeps/x86_64/dl-machine.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'sysdeps/x86_64') diff --git a/sysdeps/x86_64/dl-machine.h b/sysdeps/x86_64/dl-machine.h index 94eb028c81..c2eff579eb 100644 --- a/sysdeps/x86_64/dl-machine.h +++ b/sysdeps/x86_64/dl-machine.h @@ -400,7 +400,7 @@ elf_machine_rela (struct link_map *map, const Elf64_Rela *reloc, *reloc_addr = value + reloc->r_addend; break; -#ifdef USE_TLS +#if defined USE_TLS && !defined RESOLVE_CONFLICT_FIND_MAP case R_X86_64_DTPMOD64: # ifdef RTLD_BOOTSTRAP /* During startup the dynamic linker is always the module @@ -459,6 +459,8 @@ elf_machine_rela (struct link_map *map, const Elf64_Rela *reloc, strtab + refsym->st_name); } break; +# ifndef RESOLVE_CONFLICT_FIND_MAP + /* Not needed for dl-conflict.c. */ case R_X86_64_PC32: *(unsigned int *) reloc_addr = value + reloc->r_addend - (Elf64_Addr) reloc_addr; @@ -495,6 +497,7 @@ elf_machine_rela (struct link_map *map, const Elf64_Rela *reloc, memcpy (reloc_addr, (void *) value, MIN (sym->st_size, refsym->st_size)); break; +# endif default: _dl_reloc_bad_type (map, r_type, 0); break; -- cgit 1.4.1