bfd/
authorH.J. Lu <hjl.tools@gmail.com>
Wed, 3 Aug 2005 16:30:34 +0000 (16:30 +0000)
committerH.J. Lu <hjl.tools@gmail.com>
Wed, 3 Aug 2005 16:30:34 +0000 (16:30 +0000)
2005-08-03  H.J. Lu  <hongjiu.lu@intel.com>

* elf32-i386.c (elf_howto_table): Undo the overflow change for
R_386_PC16 made on 2005-07-18.

* elf64-x86-64.c (x86_64_elf_howto_table): Undo the overflow
change for R_X86_64_PC16 made on 2005-07-18.

ld/testsuite/

2005-08-03  H.J. Lu  <hongjiu.lu@intel.com>

* ld-i386/pcrel16.d: Updated.
* ld-i386/pcrel16.s: Likewise.
* ld-x86-64/pcrel16.d: Likewise.

bfd/ChangeLog
bfd/elf32-i386.c
bfd/elf64-x86-64.c
ld/testsuite/ChangeLog
ld/testsuite/ld-i386/pcrel16.d
ld/testsuite/ld-i386/pcrel16.s
ld/testsuite/ld-x86-64/pcrel16.d

index 9a5747007b04756b8378926775c4df216f1daca9..f413454ae307ec41d869782b6e5c42e61dbd8bf7 100644 (file)
@@ -1,3 +1,11 @@
+2005-08-03  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * elf32-i386.c (elf_howto_table): Undo the overflow change for
+       R_386_PC16 made on 2005-07-18.
+
+       * elf64-x86-64.c (x86_64_elf_howto_table): Undo the overflow
+       change for R_X86_64_PC16 made on 2005-07-18.
+
 2005-08-03  Alan Modra  <amodra@bigpond.net.au>
 
        * elf32-ppc.c (struct ppc_elf_link_hash_table): Remove hgot.  Use
index a9dff218cab13c3267b941173291721059c355d6..48e76e916e80375cff3cdaddb743e7ae7ee4d077 100644 (file)
@@ -95,7 +95,7 @@ static reloc_howto_type elf_howto_table[]=
   HOWTO(R_386_16, 0, 1, 16, FALSE, 0, complain_overflow_bitfield,
        bfd_elf_generic_reloc, "R_386_16",
        TRUE, 0xffff, 0xffff, FALSE),
-  HOWTO(R_386_PC16, 0, 1, 16, TRUE, 0, complain_overflow_signed,
+  HOWTO(R_386_PC16, 0, 1, 16, TRUE, 0, complain_overflow_bitfield,
        bfd_elf_generic_reloc, "R_386_PC16",
        TRUE, 0xffff, 0xffff, TRUE),
   HOWTO(R_386_8, 0, 0, 8, FALSE, 0, complain_overflow_bitfield,
index c100f3ea78adab55090a5a4519583ce3cf47d537..196b237bdb23205e0634cee29b11253af0e2a442 100644 (file)
@@ -73,7 +73,7 @@ static reloc_howto_type x86_64_elf_howto_table[] =
        FALSE),
   HOWTO(R_X86_64_16, 0, 1, 16, FALSE, 0, complain_overflow_bitfield,
        bfd_elf_generic_reloc, "R_X86_64_16", FALSE, 0xffff, 0xffff, FALSE),
-  HOWTO(R_X86_64_PC16,0, 1, 16, TRUE, 0, complain_overflow_signed,
+  HOWTO(R_X86_64_PC16,0, 1, 16, TRUE, 0, complain_overflow_bitfield,
        bfd_elf_generic_reloc, "R_X86_64_PC16", FALSE, 0xffff, 0xffff, TRUE),
   HOWTO(R_X86_64_8, 0, 0, 8, FALSE, 0, complain_overflow_bitfield,
        bfd_elf_generic_reloc, "R_X86_64_8", FALSE, 0xff, 0xff, FALSE),
index aa755107a216cb22facc76dae12b18abb5dc9245..88d170b30b1ccac5d97288fac5e4a12940195b0c 100644 (file)
@@ -1,3 +1,9 @@
+2005-08-03  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * ld-i386/pcrel16.d: Updated.
+       * ld-i386/pcrel16.s: Likewise.
+       * ld-x86-64/pcrel16.d: Likewise.
+
 2005-08-01  Richard Sandiford  <richard@codesourcery.com>
 
        * ld-mips/mips-elf-flags.exp: Add more good_combination tests.
index 1e8f1821f1ccb1259e7042a680f9b1cd93cf05c7..0c438a95f58f04ec06ae4e1603af1d54650d58bc 100644 (file)
@@ -1,3 +1,14 @@
 #name: PCREL16 overflow
-#ld:
-#error: .*relocation truncated to fit: R_386_PC16 .*
+#ld: -Ttext 0x0
+#objdump: -drj.text -m i8086
+
+.*: +file format elf32-i386
+
+Disassembly of section .text:
+
+0+ <_start>:
+       ...
+     420:      cd 42[  ]+int    \$0x42
+     422:      ca 02 00[       ]+lret   \$0x2
+       ...
+    f065:      e9 b8 13[       ]+jmp    420 <_start\+0x420>
index 269d9caa9f3c8f7158153e31b7d64b747b1fafc6..d68a6c6314085c8644a142501674d8cad8555171 100644 (file)
@@ -1,11 +1,9 @@
- .text
- .code16
- .global _start, fwd
+       .code16
+       .text
+       .globl _start
 _start:
-       jpo     fwd
- .rept 2500
-       testl $0x12345678, %ss:0x76543210(,%eax,4)
- .endr
-fwd:
-       leave
-       ret
+       .org 0x420
+       int $0x42
+       lret $2
+       .org 0xf065
+       jmp _start+((0x42) << 4)
index 41da975b20c7c628b3d5a7bcfa5df1ad971d8bea..f593657271f216325a50d79f6eec92e3649aff0e 100644 (file)
@@ -1,4 +1,15 @@
 #name: PCREL16 overflow
 #source: ../ld-i386/pcrel16.s
-#ld:
-#error: .*relocation truncated to fit: R_X86_64_PC16 .*
+#ld: -Ttext 0x0
+#objdump: -drj.text -m i8086
+
+.*: +file format elf64-x86-64
+
+Disassembly of section .text:
+
+0+ <_start>:
+       ...
+     420:      cd 42[  ]+int    \$0x42
+     422:      ca 02 00[       ]+lret   \$0x2
+       ...
+    f065:      e9 b8 13[       ]+jmp    420 <_start\+0x420>