* elf32-cris.c (cris_elf_relocate_section) <case R_CRIS_16_DTPREL>

<R_CRIS_32_DTPREL>: Correct relocation value.
This commit is contained in:
Hans-Peter Nilsson 2009-01-27 07:06:36 +00:00
parent 026f603876
commit f551b6f0ce
2 changed files with 10 additions and 2 deletions

View File

@ -1,5 +1,8 @@
2009-01-27 Hans-Peter Nilsson <hp@axis.com>
* elf32-cris.c (cris_elf_relocate_section) <case R_CRIS_16_DTPREL>
<R_CRIS_32_DTPREL>: Correct relocation value.
* elf32-cris.c (cris_elf_relocate_section) <case R_CRIS_8>
<R_CRIS_16, R_CRIS_32>: Don't call BFD_ASSERT for weak undefined
symbols with non-default visibility.

View File

@ -1687,9 +1687,14 @@ cris_elf_relocate_section (output_bfd, info, input_bfd, input_section,
}
/* The thread-based offset to the local symbol is the
relocation. */
relocation.
For the executable, TLS data begins at the thread pointer plus
the negative size of the TLS data. For a DSO, that's part of
the module TLS offset. */
relocation -= elf_hash_table (info)->tls_sec == NULL
? 0 : elf_hash_table (info)->tls_sec->vma;
? 0 : (elf_hash_table (info)->tls_sec->vma
+ (info->shared
? 0 : elf_hash_table (info)->tls_sec->size));
break;
case R_CRIS_32_GD: