diff options
author | Ulrich Drepper <drepper@gmail.com> | 2011-09-10 16:50:28 -0400 |
---|---|---|
committer | Ulrich Drepper <drepper@gmail.com> | 2011-09-10 16:50:28 -0400 |
commit | d063d164335938d557460bebaa7cfe388157b627 (patch) | |
tree | 92ef3f54771c0a28190b76ee45f90d16fd39714f /sysdeps/sh/dl-machine.h | |
parent | 3ce1f2959437e952b9db4eaeed2407424f11a4d1 (diff) | |
download | glibc-d063d164335938d557460bebaa7cfe388157b627.tar.gz glibc-d063d164335938d557460bebaa7cfe388157b627.tar.xz glibc-d063d164335938d557460bebaa7cfe388157b627.zip |
Remove support for !USE___THREAD
Diffstat (limited to 'sysdeps/sh/dl-machine.h')
-rw-r--r-- | sysdeps/sh/dl-machine.h | 28 |
1 files changed, 10 insertions, 18 deletions
diff --git a/sysdeps/sh/dl-machine.h b/sysdeps/sh/dl-machine.h index 78f70e3880..4e09ea4eb5 100644 --- a/sysdeps/sh/dl-machine.h +++ b/sysdeps/sh/dl-machine.h @@ -1,5 +1,5 @@ /* Machine-dependent ELF dynamic relocation inline functions. SH version. - Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 + Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2011 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -208,17 +208,11 @@ __fpscr_values:\n\ define the value. ELF_RTYPE_CLASS_NOCOPY iff TYPE should not be allowed to resolve to one of the main executable's symbols, as for a COPY reloc. */ -#if !defined RTLD_BOOTSTRAP || USE___THREAD -# define elf_machine_type_class(type) \ +#define elf_machine_type_class(type) \ ((((type) == R_SH_JMP_SLOT || (type) == R_SH_TLS_DTPMOD32 \ || (type) == R_SH_TLS_DTPOFF32 || (type) == R_SH_TLS_TPOFF32) \ * ELF_RTYPE_CLASS_PLT) \ | (((type) == R_SH_COPY) * ELF_RTYPE_CLASS_COPY)) -#else -#define elf_machine_type_class(type) \ - ((((type) == R_SH_JMP_SLOT) * ELF_RTYPE_CLASS_PLT) \ - | (((type) == R_SH_COPY) * ELF_RTYPE_CLASS_COPY)) -#endif /* A reloc type used for ld.so cmdline arg lookups to reject PLT entries. */ #define ELF_MACHINE_JMP_SLOT R_SH_JMP_SLOT @@ -354,35 +348,34 @@ elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc, /* These addresses are always aligned. */ *reloc_addr = value; break; -#if !defined RTLD_BOOTSTRAP || USE___THREAD /* XXX Remove TLS relocations which are not needed. */ case R_SH_TLS_DTPMOD32: -# ifdef RTLD_BOOTSTRAP +#ifdef RTLD_BOOTSTRAP /* During startup the dynamic linker is always the module with index 1. XXX If this relocation is necessary move before RESOLVE call. */ *reloc_addr = 1; -# else +#else /* Get the information from the link map returned by the resolv function. */ if (sym_map != NULL) *reloc_addr = sym_map->l_tls_modid; -# endif +#endif break; case R_SH_TLS_DTPOFF32: -# ifndef RTLD_BOOTSTRAP +#ifndef RTLD_BOOTSTRAP /* During relocation all TLS symbols are defined and used. Therefore the offset is already correct. */ if (sym != NULL) *reloc_addr = sym->st_value; -# endif +#endif break; case R_SH_TLS_TPOFF32: /* The offset is positive, afterward from the thread pointer. */ -# ifdef RTLD_BOOTSTRAP +#ifdef RTLD_BOOTSTRAP *reloc_addr = map->l_tls_offset + sym->st_value + reloc->r_addend; -# else +#else /* We know the offset of object the symbol is contained in. It is a positive value which will be added to the thread pointer. To get the variable position in the TLS block @@ -393,9 +386,8 @@ elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc, *reloc_addr = sym_map->l_tls_offset + sym->st_value + reloc->r_addend; } -# endif +#endif break; -#endif /* use TLS */ case R_SH_DIR32: { #ifndef RTLD_BOOTSTRAP |