diff options
author | Jakub Jelinek <jakub@redhat.com> | 2002-10-01 09:10:46 +0000 |
---|---|---|
committer | Jakub Jelinek <jakub@redhat.com> | 2002-10-01 09:10:46 +0000 |
commit | a45bb67df201470589b4adc8b50190bdbec903cb (patch) | |
tree | 48ee43725910b197400b5ec6fc0cfd60ae20b95a /bfd | |
parent | 97724570fe57a08d93c7c61269848e2326cf4efc (diff) | |
download | gdb-a45bb67df201470589b4adc8b50190bdbec903cb.zip gdb-a45bb67df201470589b4adc8b50190bdbec903cb.tar.gz gdb-a45bb67df201470589b4adc8b50190bdbec903cb.tar.bz2 |
bfd/
* elf32-i386.c (elf_i386_relocate_section): Resolve R_386_TLS_LDO_32
to st_value + addend in non-code sections.
* elf64-x86-64.c (elf64_x86_64_relocate_section): Resolve
R_X86_64_DTPOFF32 to st_value + addend in non-code sections.
ld/testsuite/
* ld-i386/i386.exp: Add tlsg test.
* ld-i386/tlsg.s: New test.
* ld-i386/tlsg.sd: New test.
* ld-i386/tlsbin.dd: Change LD into LD -> LE in comments.
* ld-i386/tlsbinpic.s: Likewise.
* ld-x86-64/x86-64.exp: Add tlsg test.
* ld-x86-64/tlsg.s: New test.
* ld-x86-64/tlsg.sd: New test.
* ld-x86-64/tlsbin.dd: Change LD into LD -> LE in comments.
* ld-x86-64/tlsbinpic.s: Likewise.
Diffstat (limited to 'bfd')
-rw-r--r-- | bfd/ChangeLog | 7 | ||||
-rw-r--r-- | bfd/elf32-i386.c | 2 | ||||
-rw-r--r-- | bfd/elf64-x86-64.c | 2 |
3 files changed, 9 insertions, 2 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index f4fb4e0..9ce6779 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,10 @@ +2002-10-01 Jakub Jelinek <jakub@redhat.com> + + * elf32-i386.c (elf_i386_relocate_section): Resolve R_386_TLS_LDO_32 + to st_value + addend in non-code sections. + * elf64-x86-64.c (elf64_x86_64_relocate_section): Resolve + R_X86_64_DTPOFF32 to st_value + addend in non-code sections. + 2002-09-30 Gavin Romig-Koch <gavin@redhat.com> Ken Raeburn <raeburn@cygnus.com> Aldy Hernandez <aldyh@redhat.com> diff --git a/bfd/elf32-i386.c b/bfd/elf32-i386.c index b71d78e..6bd277e 100644 --- a/bfd/elf32-i386.c +++ b/bfd/elf32-i386.c @@ -2926,7 +2926,7 @@ elf_i386_relocate_section (output_bfd, info, input_bfd, input_section, break; case R_386_TLS_LDO_32: - if (info->shared) + if (info->shared || (input_section->flags & SEC_CODE) == 0) relocation -= dtpoff_base (info); else /* When converting LDO to LE, we must negate. */ diff --git a/bfd/elf64-x86-64.c b/bfd/elf64-x86-64.c index fa2f2ee..2f92eae 100644 --- a/bfd/elf64-x86-64.c +++ b/bfd/elf64-x86-64.c @@ -2496,7 +2496,7 @@ elf64_x86_64_relocate_section (output_bfd, info, input_bfd, input_section, break; case R_X86_64_DTPOFF32: - if (info->shared) + if (info->shared || (input_section->flags & SEC_CODE) == 0) relocation -= dtpoff_base (info); else relocation = tpoff (info, relocation); |