patch, d10v reloc overflow checking
Tom Rix
trix@redhat.com
Fri May 24 06:47:00 GMT 2002
This patch fixes how overflows are checked in d10v.
complain_overflow_signed does not check relocations outside of the valid
address range.
This patch also adds a d10v testsuite to the linker to check these
relocations.
Ok to commit?
Tom
--
Tom Rix
GCC Engineer
trix@redhat.com
-------------- next part --------------
bfd
2002-05-23 Tom Rix <trix@redhat.com>
* elf32-d10v.c (elf_d10v_howto_table): Change R_D10V_10_PCREL_R,
R_D10V_10_PCREL_L and R_D10V_18_PCREL to use
complain_overflow_bitfield.
ld/testsuite
2002-05-23 Tom Rix <trix@redhat.com>
* ld-d10v/d10v.exp: New driver for d10v.
* ld-d10v/reloc-001.d - reloc-016.d: New tests.
diff -rupN -x *~ -x *.rej src-old/bfd/elf32-d10v.c src/bfd/elf32-d10v.c
--- src-old/bfd/elf32-d10v.c Fri May 24 00:16:17 2002
+++ src/bfd/elf32-d10v.c Fri May 24 00:22:32 2002
@@ -67,10 +67,10 @@ static reloc_howto_type elf_d10v_howto_t
HOWTO (R_D10V_10_PCREL_R, /* type */
2, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
- 8, /* bitsize */
+ 7, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
- complain_overflow_signed, /* complain_on_overflow */
+ complain_overflow_bitfield, /* complain_on_overflow */
bfd_elf_generic_reloc, /* special_function */
"R_D10V_10_PCREL_R", /* name */
false, /* partial_inplace */
@@ -83,10 +83,10 @@ static reloc_howto_type elf_d10v_howto_t
HOWTO (R_D10V_10_PCREL_L, /* type */
2, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
- 8, /* bitsize */
+ 7, /* bitsize */
true, /* pc_relative */
15, /* bitpos */
- complain_overflow_signed, /* complain_on_overflow */
+ complain_overflow_bitfield, /* complain_on_overflow */
bfd_elf_generic_reloc, /* special_function */
"R_D10V_10_PCREL_L", /* name */
false, /* partial_inplace */
@@ -128,10 +128,10 @@ static reloc_howto_type elf_d10v_howto_t
HOWTO (R_D10V_18_PCREL, /* type */
2, /* rightshift */
2, /* size (0 = byte, 1 = short, 2 = long) */
- 16, /* bitsize */
+ 15, /* bitsize */
true, /* pc_relative */
0, /* bitpos */
- complain_overflow_signed, /* complain_on_overflow */
+ complain_overflow_bitfield, /* complain_on_overflow */
bfd_elf_generic_reloc, /* special_function */
"R_D10V_18_PCREL", /* name */
false, /* partial_inplace */
diff -rupN -x *~ -x *.rej src-old/ld/testsuite/ld-d10v/d10v.exp src/ld/testsuite/ld-d10v/d10v.exp
--- src-old/ld/testsuite/ld-d10v/d10v.exp Wed Dec 31 18:00:00 1969
+++ src/ld/testsuite/ld-d10v/d10v.exp Fri May 24 00:23:12 2002
@@ -0,0 +1,32 @@
+# Expect script for ld-d10v tests
+# Copyright 2002 Free Software Foundation, Inc.
+#
+# This file is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+# Written by Tom Rix, trix@redhat.com
+#
+
+# Test d10v
+
+if ![istarget d10v-*-*] {
+ return
+}
+
+set test_list [lsort [glob -nocomplain $srcdir/$subdir/*.d]]
+foreach test $test_list {
+ # We need to strip the ".d", but can leave the dirname.
+ verbose [file rootname $test]
+ run_dump_test [file rootname $test]
+}
diff -rupN -x *~ -x *.rej src-old/ld/testsuite/ld-d10v/reloc-001.d src/ld/testsuite/ld-d10v/reloc-001.d
--- src-old/ld/testsuite/ld-d10v/reloc-001.d Wed Dec 31 18:00:00 1969
+++ src/ld/testsuite/ld-d10v/reloc-001.d Fri May 24 00:23:12 2002
@@ -0,0 +1,14 @@
+#source: reloc-001.s
+#ld: -T $srcdir/$subdir/reloc-001.ld
+#objdump: -D
+
+# Test 10 bit pc rel reloc normal case
+
+.*: file format elf32-d10v
+
+Disassembly of section .text:
+
+01014000 <_start>:
+ 1014000: 65 20 cc 1a brf0f.s 1014104 <foo> -> jmp r13
+Disassembly of section .data:
+
diff -rupN -x *~ -x *.rej src-old/ld/testsuite/ld-d10v/reloc-001.ld src/ld/testsuite/ld-d10v/reloc-001.ld
--- src-old/ld/testsuite/ld-d10v/reloc-001.ld Wed Dec 31 18:00:00 1969
+++ src/ld/testsuite/ld-d10v/reloc-001.ld Fri May 24 00:23:12 2002
@@ -0,0 +1,10 @@
+SECTIONS
+{
+ .text 0x01014000 :
+ {
+ *(.text)
+ foo = (. + 0x100);
+ }
+}
+
+
diff -rupN -x *~ -x *.rej src-old/ld/testsuite/ld-d10v/reloc-001.s src/ld/testsuite/ld-d10v/reloc-001.s
--- src-old/ld/testsuite/ld-d10v/reloc-001.s Wed Dec 31 18:00:00 1969
+++ src/ld/testsuite/ld-d10v/reloc-001.s Fri May 24 00:23:12 2002
@@ -0,0 +1,11 @@
+ ;; Test pc relative relocation
+
+ .text
+ .global _start
+_start:
+ brf0f.s foo
+ jmp r13
+
+
+
+
diff -rupN -x *~ -x *.rej src-old/ld/testsuite/ld-d10v/reloc-002.d src/ld/testsuite/ld-d10v/reloc-002.d
--- src-old/ld/testsuite/ld-d10v/reloc-002.d Wed Dec 31 18:00:00 1969
+++ src/ld/testsuite/ld-d10v/reloc-002.d Fri May 24 00:23:12 2002
@@ -0,0 +1,13 @@
+#source: reloc-001.s
+#ld: -T $srcdir/$subdir/reloc-002.ld
+#objdump: -D
+
+# Test 10 bit pc rel reloc good boundary.
+
+.*: file format elf32-d10v
+
+Disassembly of section .text:
+
+01014000 <_start>:
+ 1014000: 65 3f cc 1a brf0f.s 10141fc <foo> -> jmp r13
+Disassembly of section .data:
diff -rupN -x *~ -x *.rej src-old/ld/testsuite/ld-d10v/reloc-002.ld src/ld/testsuite/ld-d10v/reloc-002.ld
--- src-old/ld/testsuite/ld-d10v/reloc-002.ld Wed Dec 31 18:00:00 1969
+++ src/ld/testsuite/ld-d10v/reloc-002.ld Fri May 24 00:23:12 2002
@@ -0,0 +1,10 @@
+SECTIONS
+{
+ .text 0x01014000 :
+ {
+ *(.text)
+ foo = (. + 0x1F8);
+ }
+}
+
+
diff -rupN -x *~ -x *.rej src-old/ld/testsuite/ld-d10v/reloc-003.d src/ld/testsuite/ld-d10v/reloc-003.d
--- src-old/ld/testsuite/ld-d10v/reloc-003.d Wed Dec 31 18:00:00 1969
+++ src/ld/testsuite/ld-d10v/reloc-003.d Fri May 24 00:23:12 2002
@@ -0,0 +1,5 @@
+#source: reloc-001.s
+#ld: -T $srcdir/$subdir/reloc-003.ld
+#error: relocation truncated to fit: R_D10V_10_PCREL_L foo$
+
+# Test 10 bit pc rel reloc bad boundary.
\ No newline at end of file
diff -rupN -x *~ -x *.rej src-old/ld/testsuite/ld-d10v/reloc-003.ld src/ld/testsuite/ld-d10v/reloc-003.ld
--- src-old/ld/testsuite/ld-d10v/reloc-003.ld Wed Dec 31 18:00:00 1969
+++ src/ld/testsuite/ld-d10v/reloc-003.ld Fri May 24 00:23:12 2002
@@ -0,0 +1,10 @@
+SECTIONS
+{
+ .text 0x01014000 :
+ {
+ *(.text)
+ foo = (. + 0x1FC);
+ }
+}
+
+
diff -rupN -x *~ -x *.rej src-old/ld/testsuite/ld-d10v/reloc-004.d src/ld/testsuite/ld-d10v/reloc-004.d
--- src-old/ld/testsuite/ld-d10v/reloc-004.d Wed Dec 31 18:00:00 1969
+++ src/ld/testsuite/ld-d10v/reloc-004.d Fri May 24 00:23:12 2002
@@ -0,0 +1,5 @@
+#source: reloc-001.s
+#ld: -T $srcdir/$subdir/reloc-004.ld
+#error: relocation truncated to fit: R_D10V_10_PCREL_L foo$
+
+# Test 10 bit pc rel reloc normal bad.
\ No newline at end of file
diff -rupN -x *~ -x *.rej src-old/ld/testsuite/ld-d10v/reloc-004.ld src/ld/testsuite/ld-d10v/reloc-004.ld
--- src-old/ld/testsuite/ld-d10v/reloc-004.ld Wed Dec 31 18:00:00 1969
+++ src/ld/testsuite/ld-d10v/reloc-004.ld Fri May 24 00:23:12 2002
@@ -0,0 +1,10 @@
+SECTIONS
+{
+ .text 0x01014000 :
+ {
+ foo = .;
+ . = (. + 0x400);
+ }
+}
+
+
diff -rupN -x *~ -x *.rej src-old/ld/testsuite/ld-d10v/reloc-005.d src/ld/testsuite/ld-d10v/reloc-005.d
--- src-old/ld/testsuite/ld-d10v/reloc-005.d Wed Dec 31 18:00:00 1969
+++ src/ld/testsuite/ld-d10v/reloc-005.d Fri May 24 00:23:12 2002
@@ -0,0 +1,14 @@
+#source: reloc-005.s
+#ld: -T $srcdir/$subdir/reloc-005.ld
+#objdump: -D
+
+# Test 18 bit pc rel reloc normal case
+
+.*: file format elf32-d10v
+
+Disassembly of section .text:
+
+01014000 <_start>:
+ 1014000: e4 00 10 02 bra.l 1018008 <foo>
+ 1014004: 26 0d 5e 00 jmp r13 || nop
+Disassembly of section .data:
diff -rupN -x *~ -x *.rej src-old/ld/testsuite/ld-d10v/reloc-005.ld src/ld/testsuite/ld-d10v/reloc-005.ld
--- src-old/ld/testsuite/ld-d10v/reloc-005.ld Wed Dec 31 18:00:00 1969
+++ src/ld/testsuite/ld-d10v/reloc-005.ld Fri May 24 00:23:12 2002
@@ -0,0 +1,10 @@
+SECTIONS
+{
+ .text 0x01014000 :
+ {
+ *(.text)
+ foo = (. + 0x4000);
+ }
+}
+
+
diff -rupN -x *~ -x *.rej src-old/ld/testsuite/ld-d10v/reloc-005.s src/ld/testsuite/ld-d10v/reloc-005.s
--- src-old/ld/testsuite/ld-d10v/reloc-005.s Wed Dec 31 18:00:00 1969
+++ src/ld/testsuite/ld-d10v/reloc-005.s Fri May 24 00:23:12 2002
@@ -0,0 +1,11 @@
+ ;; Test 18 bit pc rel relocation
+
+ .text
+ .global _start
+_start:
+ bra.l foo
+ jmp r13
+
+
+
+
diff -rupN -x *~ -x *.rej src-old/ld/testsuite/ld-d10v/reloc-006.d src/ld/testsuite/ld-d10v/reloc-006.d
--- src-old/ld/testsuite/ld-d10v/reloc-006.d Wed Dec 31 18:00:00 1969
+++ src/ld/testsuite/ld-d10v/reloc-006.d Fri May 24 00:23:12 2002
@@ -0,0 +1,14 @@
+#source: reloc-005.s
+#ld: -T $srcdir/$subdir/reloc-006.ld
+#objdump: -D
+
+# Test 18 bit pc rel reloc good boundary
+
+.*: file format elf32-d10v
+
+Disassembly of section .text:
+
+01014000 <_start>:
+ 1014000: e4 00 7f ff bra.l 1033ffc <foo>
+ 1014004: 26 0d 5e 00 jmp r13 || nop
+Disassembly of section .data:
diff -rupN -x *~ -x *.rej src-old/ld/testsuite/ld-d10v/reloc-006.ld src/ld/testsuite/ld-d10v/reloc-006.ld
--- src-old/ld/testsuite/ld-d10v/reloc-006.ld Wed Dec 31 18:00:00 1969
+++ src/ld/testsuite/ld-d10v/reloc-006.ld Fri May 24 00:23:12 2002
@@ -0,0 +1,8 @@
+SECTIONS
+{
+ .text 0x01014000 :
+ {
+ *(.text)
+ foo = (. + 0x1fff4);
+ }
+}
diff -rupN -x *~ -x *.rej src-old/ld/testsuite/ld-d10v/reloc-007.d src/ld/testsuite/ld-d10v/reloc-007.d
--- src-old/ld/testsuite/ld-d10v/reloc-007.d Wed Dec 31 18:00:00 1969
+++ src/ld/testsuite/ld-d10v/reloc-007.d Fri May 24 00:23:12 2002
@@ -0,0 +1,7 @@
+#source: reloc-005.s
+#ld: -T $srcdir/$subdir/reloc-007.ld
+#objdump: -D
+#error: relocation truncated to fit: R_D10V_18_PCREL foo$
+
+# Test 18 bit pc rel reloc bad boundary
+
diff -rupN -x *~ -x *.rej src-old/ld/testsuite/ld-d10v/reloc-007.ld src/ld/testsuite/ld-d10v/reloc-007.ld
--- src-old/ld/testsuite/ld-d10v/reloc-007.ld Wed Dec 31 18:00:00 1969
+++ src/ld/testsuite/ld-d10v/reloc-007.ld Fri May 24 00:23:12 2002
@@ -0,0 +1,8 @@
+SECTIONS
+{
+ .text 0x01014000 :
+ {
+ *(.text)
+ foo = (. + 0x1fff8);
+ }
+}
diff -rupN -x *~ -x *.rej src-old/ld/testsuite/ld-d10v/reloc-008.d src/ld/testsuite/ld-d10v/reloc-008.d
--- src-old/ld/testsuite/ld-d10v/reloc-008.d Wed Dec 31 18:00:00 1969
+++ src/ld/testsuite/ld-d10v/reloc-008.d Fri May 24 00:23:12 2002
@@ -0,0 +1,7 @@
+#source: reloc-005.s
+#ld: -T $srcdir/$subdir/reloc-008.ld
+#objdump: -D
+#error: relocation truncated to fit: R_D10V_18_PCREL foo$
+
+# Test 18 bit pc rel reloc normal bad
+
diff -rupN -x *~ -x *.rej src-old/ld/testsuite/ld-d10v/reloc-008.ld src/ld/testsuite/ld-d10v/reloc-008.ld
--- src-old/ld/testsuite/ld-d10v/reloc-008.ld Wed Dec 31 18:00:00 1969
+++ src/ld/testsuite/ld-d10v/reloc-008.ld Fri May 24 00:23:12 2002
@@ -0,0 +1,8 @@
+SECTIONS
+{
+ .text 0x01014000 :
+ {
+ *(.text)
+ foo = (. + 0x41fff8);
+ }
+}
diff -rupN -x *~ -x *.rej src-old/ld/testsuite/ld-d10v/reloc-009.d src/ld/testsuite/ld-d10v/reloc-009.d
--- src-old/ld/testsuite/ld-d10v/reloc-009.d Wed Dec 31 18:00:00 1969
+++ src/ld/testsuite/ld-d10v/reloc-009.d Fri May 24 00:23:12 2002
@@ -0,0 +1,16 @@
+#source: reloc-009.s
+#ld: -T $srcdir/$subdir/reloc-009.ld
+#objdump: -D
+
+# Test 10 bit pc rel reloc negative normal case
+
+.*: file format elf32-d10v
+Disassembly of section .text:
+
+01014000 <foo>:
+ ...
+
+01014100 <_start>:
+ 1014100: 6f 00 4a c0 nop -> brf0f.s 1014000 <foo>
+ 1014104: 26 0d 5e 00 jmp r13 || nop
+Disassembly of section .data:
diff -rupN -x *~ -x *.rej src-old/ld/testsuite/ld-d10v/reloc-009.ld src/ld/testsuite/ld-d10v/reloc-009.ld
--- src-old/ld/testsuite/ld-d10v/reloc-009.ld Wed Dec 31 18:00:00 1969
+++ src/ld/testsuite/ld-d10v/reloc-009.ld Fri May 24 00:23:12 2002
@@ -0,0 +1,11 @@
+SECTIONS
+{
+ .text 0x01014000 :
+ {
+ foo = .;
+ . = (. + 0x100);
+ *(.text)
+ }
+}
+
+
diff -rupN -x *~ -x *.rej src-old/ld/testsuite/ld-d10v/reloc-009.s src/ld/testsuite/ld-d10v/reloc-009.s
--- src-old/ld/testsuite/ld-d10v/reloc-009.s Wed Dec 31 18:00:00 1969
+++ src/ld/testsuite/ld-d10v/reloc-009.s Fri May 24 00:23:12 2002
@@ -0,0 +1,12 @@
+ ;; Test pc relative relocation
+
+ .text
+ .global _start
+_start:
+ nop
+ brf0f.s foo
+ jmp r13
+
+
+
+
diff -rupN -x *~ -x *.rej src-old/ld/testsuite/ld-d10v/reloc-010.d src/ld/testsuite/ld-d10v/reloc-010.d
--- src-old/ld/testsuite/ld-d10v/reloc-010.d Wed Dec 31 18:00:00 1969
+++ src/ld/testsuite/ld-d10v/reloc-010.d Fri May 24 00:23:12 2002
@@ -0,0 +1,17 @@
+#source: reloc-009.s
+#ld: -T $srcdir/$subdir/reloc-010.ld
+#objdump: -D
+
+# Test 10 bit pc rel reloc negative good boundary case
+
+.*: file format elf32-d10v
+
+Disassembly of section .text:
+
+01014000 <foo>:
+ ...
+
+01014200 <_start>:
+ 1014200: 6f 00 4a 80 nop -> brf0f.s 1014000 <foo>
+ 1014204: 26 0d 5e 00 jmp r13 || nop
+Disassembly of section .data:
diff -rupN -x *~ -x *.rej src-old/ld/testsuite/ld-d10v/reloc-010.ld src/ld/testsuite/ld-d10v/reloc-010.ld
--- src-old/ld/testsuite/ld-d10v/reloc-010.ld Wed Dec 31 18:00:00 1969
+++ src/ld/testsuite/ld-d10v/reloc-010.ld Fri May 24 00:23:12 2002
@@ -0,0 +1,11 @@
+SECTIONS
+{
+ .text 0x01014000 :
+ {
+ foo = .;
+ . = (. + 0x200);
+ *(.text)
+ }
+}
+
+
diff -rupN -x *~ -x *.rej src-old/ld/testsuite/ld-d10v/reloc-011.d src/ld/testsuite/ld-d10v/reloc-011.d
--- src-old/ld/testsuite/ld-d10v/reloc-011.d Wed Dec 31 18:00:00 1969
+++ src/ld/testsuite/ld-d10v/reloc-011.d Fri May 24 00:23:12 2002
@@ -0,0 +1,6 @@
+#source: reloc-009.s
+#ld: -T $srcdir/$subdir/reloc-011.ld
+#error: relocation truncated to fit: R_D10V_10_PCREL_R foo$
+
+# Test 10 bit pc rel reloc negative bad boundary.
+
diff -rupN -x *~ -x *.rej src-old/ld/testsuite/ld-d10v/reloc-011.ld src/ld/testsuite/ld-d10v/reloc-011.ld
--- src-old/ld/testsuite/ld-d10v/reloc-011.ld Wed Dec 31 18:00:00 1969
+++ src/ld/testsuite/ld-d10v/reloc-011.ld Fri May 24 00:23:12 2002
@@ -0,0 +1,11 @@
+SECTIONS
+{
+ .text 0x01014000 :
+ {
+ foo = .;
+ . = (. + 0x204);
+ *(.text)
+ }
+}
+
+
diff -rupN -x *~ -x *.rej src-old/ld/testsuite/ld-d10v/reloc-012.d src/ld/testsuite/ld-d10v/reloc-012.d
--- src-old/ld/testsuite/ld-d10v/reloc-012.d Wed Dec 31 18:00:00 1969
+++ src/ld/testsuite/ld-d10v/reloc-012.d Fri May 24 00:23:12 2002
@@ -0,0 +1,6 @@
+#source: reloc-009.s
+#ld: -T $srcdir/$subdir/reloc-012.ld
+#error: relocation truncated to fit: R_D10V_10_PCREL_R foo$
+
+# Test 10 bit pc rel reloc negative normal bad.
+
diff -rupN -x *~ -x *.rej src-old/ld/testsuite/ld-d10v/reloc-012.ld src/ld/testsuite/ld-d10v/reloc-012.ld
--- src-old/ld/testsuite/ld-d10v/reloc-012.ld Wed Dec 31 18:00:00 1969
+++ src/ld/testsuite/ld-d10v/reloc-012.ld Fri May 24 00:23:12 2002
@@ -0,0 +1,11 @@
+SECTIONS
+{
+ .text 0x01014000 :
+ {
+ foo = .;
+ . = (. + 0x80004);
+ *(.text)
+ }
+}
+
+
diff -rupN -x *~ -x *.rej src-old/ld/testsuite/ld-d10v/reloc-013.d src/ld/testsuite/ld-d10v/reloc-013.d
--- src-old/ld/testsuite/ld-d10v/reloc-013.d Wed Dec 31 18:00:00 1969
+++ src/ld/testsuite/ld-d10v/reloc-013.d Fri May 24 00:23:12 2002
@@ -0,0 +1,17 @@
+#source: reloc-005.s
+#ld: -T $srcdir/$subdir/reloc-013.ld
+#objdump: -D
+
+# Test 18 bit pc rel reloc negative normal case
+
+.*: file format elf32-d10v
+
+Disassembly of section .text:
+
+01014000 <foo>:
+ ...
+
+01014400 <_start>:
+ 1014400: e4 00 ff 00 bra.l 1014000 <foo>
+ 1014404: 26 0d 5e 00 jmp r13 || nop
+Disassembly of section .data:
diff -rupN -x *~ -x *.rej src-old/ld/testsuite/ld-d10v/reloc-013.ld src/ld/testsuite/ld-d10v/reloc-013.ld
--- src-old/ld/testsuite/ld-d10v/reloc-013.ld Wed Dec 31 18:00:00 1969
+++ src/ld/testsuite/ld-d10v/reloc-013.ld Fri May 24 00:23:12 2002
@@ -0,0 +1,12 @@
+SECTIONS
+{
+ .text 0x01014000 :
+ {
+ foo = .;
+ . = (. + 0x400);
+ *(.text)
+ }
+}
+
+
+
diff -rupN -x *~ -x *.rej src-old/ld/testsuite/ld-d10v/reloc-014.d src/ld/testsuite/ld-d10v/reloc-014.d
--- src-old/ld/testsuite/ld-d10v/reloc-014.d Wed Dec 31 18:00:00 1969
+++ src/ld/testsuite/ld-d10v/reloc-014.d Fri May 24 00:23:12 2002
@@ -0,0 +1,17 @@
+#source: reloc-005.s
+#ld: -T $srcdir/$subdir/reloc-014.ld
+#objdump: -D
+
+# Test 18 bit pc rel reloc negative good boundary case
+
+.*: file format elf32-d10v
+
+Disassembly of section .text:
+
+01014000 <foo>:
+ ...
+
+01034000 <_start>:
+ 1034000: e4 00 80 00 bra.l 1014000 <foo>
+ 1034004: 26 0d 5e 00 jmp r13 || nop
+Disassembly of section .data:
diff -rupN -x *~ -x *.rej src-old/ld/testsuite/ld-d10v/reloc-014.ld src/ld/testsuite/ld-d10v/reloc-014.ld
--- src-old/ld/testsuite/ld-d10v/reloc-014.ld Wed Dec 31 18:00:00 1969
+++ src/ld/testsuite/ld-d10v/reloc-014.ld Fri May 24 00:23:12 2002
@@ -0,0 +1,12 @@
+SECTIONS
+{
+ .text 0x01014000 :
+ {
+ foo = .;
+ . = (. + 0x20000);
+ *(.text)
+ }
+}
+
+
+
diff -rupN -x *~ -x *.rej src-old/ld/testsuite/ld-d10v/reloc-015.d src/ld/testsuite/ld-d10v/reloc-015.d
--- src-old/ld/testsuite/ld-d10v/reloc-015.d Wed Dec 31 18:00:00 1969
+++ src/ld/testsuite/ld-d10v/reloc-015.d Fri May 24 00:23:12 2002
@@ -0,0 +1,7 @@
+#source: reloc-005.s
+#ld: -T $srcdir/$subdir/reloc-015.ld
+#objdump: -D
+#error: relocation truncated to fit: R_D10V_18_PCREL foo$
+
+# Test 18 bit pc rel negative reloc bad boundary
+
diff -rupN -x *~ -x *.rej src-old/ld/testsuite/ld-d10v/reloc-015.ld src/ld/testsuite/ld-d10v/reloc-015.ld
--- src-old/ld/testsuite/ld-d10v/reloc-015.ld Wed Dec 31 18:00:00 1969
+++ src/ld/testsuite/ld-d10v/reloc-015.ld Fri May 24 00:23:12 2002
@@ -0,0 +1,12 @@
+SECTIONS
+{
+ .text 0x01014000 :
+ {
+ foo = .;
+ . = (. + 0x20004);
+ *(.text)
+ }
+}
+
+
+
diff -rupN -x *~ -x *.rej src-old/ld/testsuite/ld-d10v/reloc-016.d src/ld/testsuite/ld-d10v/reloc-016.d
--- src-old/ld/testsuite/ld-d10v/reloc-016.d Wed Dec 31 18:00:00 1969
+++ src/ld/testsuite/ld-d10v/reloc-016.d Fri May 24 00:23:12 2002
@@ -0,0 +1,7 @@
+#source: reloc-005.s
+#ld: -T $srcdir/$subdir/reloc-016.ld
+#objdump: -D
+#error: relocation truncated to fit: R_D10V_18_PCREL foo$
+
+# Test 18 bit pc rel negative reloc normal bad
+
diff -rupN -x *~ -x *.rej src-old/ld/testsuite/ld-d10v/reloc-016.ld src/ld/testsuite/ld-d10v/reloc-016.ld
--- src-old/ld/testsuite/ld-d10v/reloc-016.ld Wed Dec 31 18:00:00 1969
+++ src/ld/testsuite/ld-d10v/reloc-016.ld Fri May 24 00:23:12 2002
@@ -0,0 +1,12 @@
+SECTIONS
+{
+ .text 0x01014000 :
+ {
+ foo = .;
+ . = (. + 0x800004);
+ *(.text)
+ }
+}
+
+
+
More information about the Binutils
mailing list