* elf32-i386.c (elf_i386_relocate_section): Fix
	movl foo@indntpoff, %eax IE->LE transition.
ld/testsuite/
	* ld-i386/i386.exp: Add tlsindntpoff test.
	* ld-i386/tlsindntpoff.s: New test.
	* ld-i386/tlsindntpoff.dd: New test.
This commit is contained in:
Jakub Jelinek 2002-10-01 10:43:37 +00:00
parent abcf1d5247
commit 7c445aa3c8
6 changed files with 49 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2002-10-01 Jakub Jelinek <jakub@redhat.com>
* elf32-i386.c (elf_i386_relocate_section): Fix
movl foo@indntpoff, %eax IE->LE transition.
2002-10-01 Jakub Jelinek <jakub@redhat.com>
* elf64-x86-64.c (elf64_x86_64_relocate_section): Change TLSGD

View File

@ -2625,7 +2625,7 @@ elf_i386_relocate_section (output_bfd, info, input_bfd, input_section,
if (val == 0xa1)
{
/* movl foo, %eax. */
bfd_put_8 (output_bfd, 0xb8, contents + rel->r_offset - 2);
bfd_put_8 (output_bfd, 0xb8, contents + rel->r_offset - 1);
}
else if (type == 0x8b)
{

View File

@ -1,3 +1,9 @@
2002-10-01 Jakub Jelinek <jakub@redhat.com>
* ld-i386/i386.exp: Add tlsindntpoff test.
* ld-i386/tlsindntpoff.s: New test.
* ld-i386/tlsindntpoff.dd: New test.
2002-10-01 Jakub Jelinek <jakub@redhat.com>
* ld-x86-64/tlspic1.s: Change TLSGD sequences.

View File

@ -55,6 +55,8 @@ set i386tests {
{"TLS in debug sections" "-melf_i386"
"--32" {tlsg.s}
{{objdump -sj.debug_foobar tlsg.sd}} "tlsg"}
{"TLS @indntpoff with %eax" "-melf_i386" "--32" {tlsindntpoff.s}
{{objdump -drj.text tlsindntpoff.dd}} "tlsindntpoff"}
{"Reloc section order" "-shared -melf_i386" "--32" {reloc.s}
{{objdump -hw reloc.d}} "reloc.so"}
}

View File

@ -0,0 +1,16 @@
#source: tlsindntpoff.s
#as: --32
#ld: -melf_i386
#objdump: -drj.text
#target: i?86-*-*
.*: +file format elf32-i386
Disassembly of section .text:
[0-9a-f]+000 <_start>:
[0-9a-f]+000: 39 d8[ ]+cmp %ebx,%eax
[0-9a-f]+002: 73 08[ ]+jae [0-9a-f]+00c <_start\+0xc>
[0-9a-f]+004: b8 fc ff ff ff[ ]+mov \$0xfffffffc,%eax
[0-9a-f]+009: 65 8b 00[ ]+mov %gs:\(%eax\),%eax
[0-9a-f]+00c: c3[ ]+ret *

View File

@ -0,0 +1,19 @@
/* Force .got aligned to 4K, so it very likely gets at 0x804a100
(0x60 bytes .tdata and 0xa0 bytes .dynamic) */
.data
.balign 4096
.section ".tdata", "awT", @progbits
.globl foo
foo: .long 27
/* Force .text aligned to 4K, so it very likely gets at 0x8049000. */
.text
.balign 4096
.globl _start
.type _start,@function
_start:
cmp %ebx, %eax
jae 1f
movl foo@indntpoff, %eax
movl %gs:(%eax), %eax
1: ret