diff options
author | Roland McGrath <roland@gnu.org> | 2003-04-24 17:11:08 +0000 |
---|---|---|
committer | Roland McGrath <roland@gnu.org> | 2003-04-24 17:11:08 +0000 |
commit | 8e27f45e05625aab0797d8dc1afb5b47204cb20a (patch) | |
tree | a0b9e307741480b544ce47eb7449c33b2f5cf9f1 /sysdeps/s390 | |
parent | 545dbc9345c81963ee3b48b0104807f06fda7b28 (diff) | |
download | glibc-8e27f45e05625aab0797d8dc1afb5b47204cb20a.tar.gz |
* 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.
Diffstat (limited to 'sysdeps/s390')
-rw-r--r-- | sysdeps/s390/s390-32/dl-machine.h | 8 | ||||
-rw-r--r-- | sysdeps/s390/s390-64/dl-machine.h | 8 |
2 files changed, 14 insertions, 2 deletions
diff --git a/sysdeps/s390/s390-32/dl-machine.h b/sysdeps/s390/s390-32/dl-machine.h index 6905814c41..017077ad1d 100644 --- a/sysdeps/s390/s390-32/dl-machine.h +++ b/sysdeps/s390/s390-32/dl-machine.h @@ -424,7 +424,8 @@ elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc, *reloc_addr = value + reloc->r_addend; break; -#if defined USE_TLS && (!defined RTLD_BOOTSTRAP || USE___THREAD) +#if defined USE_TLS && (!defined RTLD_BOOTSTRAP || USE___THREAD) \ + && !defined RESOLVE_CONFLICT_FIND_MAP case R_390_TLS_DTPMOD: # ifdef RTLD_BOOTSTRAP /* During startup the dynamic linker is always the module @@ -466,6 +467,8 @@ elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc, #endif /* use TLS */ #ifndef RTLD_BOOTSTRAP +# ifndef RESOLVE_CONFLICT_FIND_MAP + /* Not needed in dl-conflict.c. */ case R_390_COPY: if (sym == NULL) /* This can happen in trace mode if an object could not be @@ -486,6 +489,7 @@ elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc, memcpy (reloc_addr, (void *) value, MIN (sym->st_size, refsym->st_size)); break; +# endif case R_390_32: *reloc_addr = value + reloc->r_addend; break; @@ -495,6 +499,7 @@ elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc, case R_390_8: *(char *) reloc_addr = value + reloc->r_addend; break; +# ifndef RESOLVE_CONFLICT_FIND_MAP case R_390_PC32: *reloc_addr = value + reloc->r_addend - (Elf32_Addr) reloc_addr; break; @@ -509,6 +514,7 @@ elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc, break; case R_390_NONE: break; +# endif #endif #if !defined(RTLD_BOOTSTRAP) || defined(_NDEBUG) default: diff --git a/sysdeps/s390/s390-64/dl-machine.h b/sysdeps/s390/s390-64/dl-machine.h index e7ae3f77f8..35df12019b 100644 --- a/sysdeps/s390/s390-64/dl-machine.h +++ b/sysdeps/s390/s390-64/dl-machine.h @@ -392,7 +392,8 @@ elf_machine_rela (struct link_map *map, const Elf64_Rela *reloc, *reloc_addr = value + reloc->r_addend; break; -#if defined USE_TLS && (!defined RTLD_BOOTSTRAP || USE___THREAD) +#if defined USE_TLS && (!defined RTLD_BOOTSTRAP || USE___THREAD) \ + && !defined RESOLVE_CONFLICT_FIND_MAP case R_390_TLS_DTPMOD: # ifdef RTLD_BOOTSTRAP /* During startup the dynamic linker is always the module @@ -434,6 +435,8 @@ elf_machine_rela (struct link_map *map, const Elf64_Rela *reloc, #endif /* use TLS */ #ifndef RTLD_BOOTSTRAP +# ifndef RESOLVE_CONFLICT_FIND_MAP + /* Not needed for dl-conflict.c. */ case R_390_COPY: if (sym == NULL) /* This can happen in trace mode if an object could not be @@ -454,6 +457,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 case R_390_64: *reloc_addr = value + reloc->r_addend; break; @@ -466,6 +470,7 @@ elf_machine_rela (struct link_map *map, const Elf64_Rela *reloc, case R_390_8: *(char *) reloc_addr = value + reloc->r_addend; break; +# ifndef RESOLVE_CONFLICT_FIND_MAP case R_390_PC64: *reloc_addr = value +reloc->r_addend - (Elf64_Addr) reloc_addr; break; @@ -489,6 +494,7 @@ elf_machine_rela (struct link_map *map, const Elf64_Rela *reloc, break; case R_390_NONE: break; +# endif #endif #if !defined(RTLD_BOOTSTRAP) || defined(_NDEBUG) default: |