bfd/
* 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:
parent
abcf1d5247
commit
7c445aa3c8
|
@ -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>
|
2002-10-01 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
* elf64-x86-64.c (elf64_x86_64_relocate_section): Change TLSGD
|
* elf64-x86-64.c (elf64_x86_64_relocate_section): Change TLSGD
|
||||||
|
|
|
@ -2625,7 +2625,7 @@ elf_i386_relocate_section (output_bfd, info, input_bfd, input_section,
|
||||||
if (val == 0xa1)
|
if (val == 0xa1)
|
||||||
{
|
{
|
||||||
/* movl foo, %eax. */
|
/* 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)
|
else if (type == 0x8b)
|
||||||
{
|
{
|
||||||
|
|
|
@ -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>
|
2002-10-01 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
* ld-x86-64/tlspic1.s: Change TLSGD sequences.
|
* ld-x86-64/tlspic1.s: Change TLSGD sequences.
|
||||||
|
|
|
@ -55,6 +55,8 @@ set i386tests {
|
||||||
{"TLS in debug sections" "-melf_i386"
|
{"TLS in debug sections" "-melf_i386"
|
||||||
"--32" {tlsg.s}
|
"--32" {tlsg.s}
|
||||||
{{objdump -sj.debug_foobar tlsg.sd}} "tlsg"}
|
{{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}
|
{"Reloc section order" "-shared -melf_i386" "--32" {reloc.s}
|
||||||
{{objdump -hw reloc.d}} "reloc.so"}
|
{{objdump -hw reloc.d}} "reloc.so"}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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 *
|
|
@ -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
|
Loading…
Reference in New Issue