diff options
author | Hans-Peter Nilsson <hp@axis.com> | 2009-10-19 16:33:49 +0000 |
---|---|---|
committer | Hans-Peter Nilsson <hp@axis.com> | 2009-10-19 16:33:49 +0000 |
commit | ebf275e360c4abc6a2137f2b25b29fcd7ed551be (patch) | |
tree | 1cc56978658f9796274f6b89758d4ae4453da603 /bfd | |
parent | d71f39f5cf8851a549c9a9765f863dce86c79fc7 (diff) | |
download | gdb-ebf275e360c4abc6a2137f2b25b29fcd7ed551be.zip gdb-ebf275e360c4abc6a2137f2b25b29fcd7ed551be.tar.gz gdb-ebf275e360c4abc6a2137f2b25b29fcd7ed551be.tar.bz2 |
* elf32-cris.c (cris_elf_relocate_section) <case R_CRIS_32_DTPREL>:
Don't subtract the size of the TLS block for non-shared objects
from the relocation.
Diffstat (limited to 'bfd')
-rw-r--r-- | bfd/ChangeLog | 6 | ||||
-rw-r--r-- | bfd/elf32-cris.c | 11 |
2 files changed, 9 insertions, 8 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index f6b03d9..bc8fc7c 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,9 @@ +2009-10-19 Hans-Peter Nilsson <hp@axis.com> + + * elf32-cris.c (cris_elf_relocate_section) <case R_CRIS_32_DTPREL>: + Don't subtract the size of the TLS block for non-shared objects + from the relocation. + 2009-10-17 Arnold Metselaar <arnold.metselaar@planet.nl> * coff-z80.c (z80coff_vec): Allow sections to be of type diff --git a/bfd/elf32-cris.c b/bfd/elf32-cris.c index 2037b10..ceea1b9 100644 --- a/bfd/elf32-cris.c +++ b/bfd/elf32-cris.c @@ -1690,15 +1690,10 @@ cris_elf_relocate_section (output_bfd, info, input_bfd, input_section, = -elf_cris_hash_table (info)->dtpmod_refcount; } - /* The thread-based offset to the local symbol is the - 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. */ + /* The relocation is the offset from the start of the module + TLS block to the (local) symbol. */ relocation -= elf_hash_table (info)->tls_sec == NULL - ? 0 : (elf_hash_table (info)->tls_sec->vma - + (info->shared - ? 0 : elf_hash_table (info)->tls_size)); + ? 0 : elf_hash_table (info)->tls_sec->vma; break; case R_CRIS_32_GD: |