+2016-05-26 Maciej W. Rozycki <macro@imgtec.com>
+
+ * elfxx-mips.c (_bfd_mips_elf_relocate_section)
+ <bfd_reloc_outofrange>: Use the `%X%H' rather than `%C' format
+ for message. Continue processing rather than returning failure.
+
2016-05-25 Maciej W. Rozycki <macro@imgtec.com>
-
+
* elfxx-mips.c (_bfd_mips_elf_relocate_section)
<bfd_reloc_outofrange>: Call `->einfo' rather than `->warning'.
Call `bfd_set_error'.
if (msg)
{
info->callbacks->einfo
- ("%C: %s\n", input_bfd, input_section, rel->r_offset, msg);
- bfd_set_error (bfd_error_bad_value);
- return FALSE;
+ ("%X%H: %s\n", input_bfd, input_section, rel->r_offset, msg);
+ break;
}
/* Fall through. */
+2016-05-26 Maciej W. Rozycki <macro@imgtec.com>
+
+ * testsuite/ld-mips-elf/unaligned-jalx-0.d: Fold
+ `unaligned-jalx-2' here.
+ * testsuite/ld-mips-elf/unaligned-jalx-mips16-0.d: Fold
+ `unaligned-jalx-mips16-2' here.
+ * testsuite/ld-mips-elf/unaligned-jalx-micromips-0.d: Fold
+ `unaligned-jalx-micromips-2' here.
+ * testsuite/ld-mips-elf/unaligned-jalx-0.s: Update accordingly.
+ * testsuite/ld-mips-elf/unaligned-jalx-1.d: Update error
+ message.
+ * testsuite/ld-mips-elf/unaligned-jalx-mips16-1.d: Likewise.
+ * testsuite/ld-mips-elf/unaligned-jalx-micromips-1.d: Likewise.
+ * testsuite/ld-mips-elf/unaligned-jalx-2.d: Remove test.
+ * testsuite/ld-mips-elf/unaligned-jalx-mips16-2.d: Remove test.
+ * testsuite/ld-mips-elf/unaligned-jalx-micromips-2.d: Remove
+ test.
+ * testsuite/ld-mips-elf/unaligned-jalx-2.s: Remove test source.
+ * testsuite/ld-mips-elf/unaligned-lwpc-0.d: Fold
+ `unaligned-lwpc-3' here.
+ * testsuite/ld-mips-elf/unaligned-lwpc-0.s: Update accordingly.
+ * testsuite/ld-mips-elf/unaligned-lwpc-1.d: Fold
+ `unaligned-lwpc-2' here.
+ * testsuite/ld-mips-elf/unaligned-lwpc-1.s: Update accordingly.
+ * testsuite/ld-mips-elf/unaligned-lwpc-2.d: Remove test.
+ * testsuite/ld-mips-elf/unaligned-lwpc-2.s: Remove test source.
+ * testsuite/ld-mips-elf/unaligned-lwpc-3.d: Remove test.
+ * testsuite/ld-mips-elf/unaligned-lwpc-3.s: Remove test source.
+ * testsuite/ld-mips-elf/unaligned-ldpc-0.d: Fold
+ `unaligned-ldpc-4' here.
+ * testsuite/ld-mips-elf/unaligned-ldpc-0.s: Update accordingly.
+ * testsuite/ld-mips-elf/unaligned-ldpc-1.d: Update error
+ message. Fold `unaligned-ldpc-2' and `unaligned-ldpc-3' here.
+ * testsuite/ld-mips-elf/unaligned-ldpc-1.s: Update accordingly.
+ * testsuite/ld-mips-elf/unaligned-ldpc-2.d: Remove test.
+ * testsuite/ld-mips-elf/unaligned-ldpc-2.s: Remove test source.
+ * testsuite/ld-mips-elf/unaligned-ldpc-3.d: Remove test.
+ * testsuite/ld-mips-elf/unaligned-ldpc-3.s: Remove test source.
+ * testsuite/ld-mips-elf/unaligned-ldpc-4.d: Remove test.
+ * testsuite/ld-mips-elf/unaligned-ldpc-4.s: Remove test source.
+ * testsuite/ld-mips-elf/mips-elf.exp: Delete removed tests.
+
2016-05-26 Nick Clifton <nickc@redhat.com>
PR target/20134
run_dump_test "unaligned-jalx-0" [list [list ld $abi_ldflags(o32)]]
run_dump_test "unaligned-jalx-1" [list [list ld $abi_ldflags(o32)]]
-run_dump_test "unaligned-jalx-2" [list [list ld $abi_ldflags(o32)]]
run_dump_test "unaligned-jalx-mips16-0" [list [list ld $abi_ldflags(o32)]]
run_dump_test "unaligned-jalx-mips16-1" [list [list ld $abi_ldflags(o32)]]
-run_dump_test "unaligned-jalx-mips16-2" [list [list ld $abi_ldflags(o32)]]
run_dump_test "unaligned-jalx-micromips-0" [list [list ld $abi_ldflags(o32)]]
run_dump_test "unaligned-jalx-micromips-1" [list [list ld $abi_ldflags(o32)]]
-run_dump_test "unaligned-jalx-micromips-2" [list [list ld $abi_ldflags(o32)]]
run_dump_test "unaligned-lwpc-0" [list [list ld $abi_ldflags(o32)]]
run_dump_test "unaligned-lwpc-1" [list [list ld $abi_ldflags(o32)]]
-run_dump_test "unaligned-lwpc-2" [list [list ld $abi_ldflags(o32)]]
-run_dump_test "unaligned-lwpc-3" [list [list ld $abi_ldflags(o32)]]
run_dump_test "unaligned-ldpc-0" [list [list ld $abi_ldflags(o32)]]
run_dump_test "unaligned-ldpc-1" [list [list ld $abi_ldflags(o32)]]
-run_dump_test "unaligned-ldpc-2" [list [list ld $abi_ldflags(o32)]]
-run_dump_test "unaligned-ldpc-3" [list [list ld $abi_ldflags(o32)]]
-run_dump_test "unaligned-ldpc-4" [list [list ld $abi_ldflags(o32)]]
# Test multi-got link. We only do this on GNU/Linux because it requires
# the "traditional" emulations.
Disassembly of section \.text:
[0-9a-f]+ <[^>]*> 77000008 jalx 1c000020 <bar0>
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 77000009 jalx 1c000024 <bar2>
[0-9a-f]+ <[^>]*> 00000000 nop
\.\.\.
\.\.\.
.ent foo
foo:
jal bar0
+ jal bar2
.end foo
# Force some (non-delay-slot) zero bytes, to make 'objdump' print ...
#as: -EB -32
#ld: -EB -Ttext 0x1c000000 -e 0x1c000000
#error: \A[^\n]*: In function `foo':\n
-#error: \(\.text\+0x[0-9a-f]+\): JALX to a non-word-aligned address\n
-#error: [^\n]*: final link failed: Bad value\Z
+#error: \(\.text\+0x[0-9a-f]+\): JALX to a non-word-aligned address\Z
+++ /dev/null
-#name: MIPS JALX to unaligned symbol 2
-#source: unaligned-jalx-2.s
-#source: unaligned-insn.s -mips16
-#as: -EB -32
-#ld: -EB -Ttext 0x1c000000 -e 0x1c000000
-#objdump: -dr --prefix-addresses --show-raw-insn
-
-.*: +file format .*mips.*
-
-Disassembly of section \.text:
-[0-9a-f]+ <[^>]*> 77000009 jalx 1c000024 <bar2>
-[0-9a-f]+ <[^>]*> 00000000 nop
- \.\.\.
- \.\.\.
- \.\.\.
- \.\.\.
- \.\.\.
- \.\.\.
- \.\.\.
- \.\.\.
- \.\.\.
+++ /dev/null
- .text
- .align 4
- .globl foo
- .ent foo
-foo:
- jal bar2
- .end foo
-
-# Force some (non-delay-slot) zero bytes, to make 'objdump' print ...
- .align 4, 0
- .space 16
Disassembly of section \.text:
[0-9a-f]+ <[^>]*> f300 0008 jalx 1c000020 <bar0>
+[0-9a-f]+ <[^>]*> 0000 0000 nop
+[0-9a-f]+ <[^>]*> f300 0009 jalx 1c000024 <bar2>
[0-9a-f]+ <[^>]*> 0000 0000 nop
\.\.\.
\.\.\.
#as: -EB -32
#ld: -EB -Ttext 0x1c000000 -e 0x1c000000
#error: \A[^\n]*: In function `foo':\n
-#error: \(\.text\+0x[0-9a-f]+\): JALX to a non-word-aligned address\n
-#error: [^\n]*: final link failed: Bad value\Z
+#error: \(\.text\+0x[0-9a-f]+\): JALX to a non-word-aligned address\Z
+++ /dev/null
-#name: microMIPS JALX to unaligned symbol 2
-#source: unaligned-jalx-2.s -mmicromips
-#source: unaligned-insn.s
-#as: -EB -32
-#ld: -EB -Ttext 0x1c000000 -e 0x1c000000
-#objdump: -dr --prefix-addresses --show-raw-insn
-
-.*: +file format .*mips.*
-
-Disassembly of section \.text:
-[0-9a-f]+ <[^>]*> f300 0009 jalx 1c000024 <bar2>
-[0-9a-f]+ <[^>]*> 0000 0000 nop
- \.\.\.
- \.\.\.
- \.\.\.
- \.\.\.
- \.\.\.
- \.\.\.
- \.\.\.
- \.\.\.
- \.\.\.
Disassembly of section \.text:
[0-9a-f]+ <[^>]*> 1c18 0008 jalx 1c000020 <bar0>
+[0-9a-f]+ <[^>]*> 6500 nop
+[0-9a-f]+ <[^>]*> 1c18 0009 jalx 1c000024 <bar2>
[0-9a-f]+ <[^>]*> 6500 nop
\.\.\.
\.\.\.
#as: -EB -32
#ld: -EB -Ttext 0x1c000000 -e 0x1c000000
#error: \A[^\n]*: In function `foo':\n
-#error: \(\.text\+0x[0-9a-f]+\): JALX to a non-word-aligned address\n
-#error: [^\n]*: final link failed: Bad value\Z
+#error: \(\.text\+0x[0-9a-f]+\): JALX to a non-word-aligned address\Z
+++ /dev/null
-#name: MIPS16 JALX to unaligned symbol 2
-#source: unaligned-jalx-2.s -mips16
-#source: unaligned-insn.s
-#as: -EB -32
-#ld: -EB -Ttext 0x1c000000 -e 0x1c000000
-#objdump: -dr --prefix-addresses --show-raw-insn
-
-.*: +file format .*mips.*
-
-Disassembly of section \.text:
-[0-9a-f]+ <[^>]*> 1c18 0009 jalx 1c000024 <bar2>
-[0-9a-f]+ <[^>]*> 6500 nop
- \.\.\.
- \.\.\.
- \.\.\.
- \.\.\.
- \.\.\.
- \.\.\.
- \.\.\.
- \.\.\.
- \.\.\.
Disassembly of section \.text:
[0-9a-f]+ <[^>]*> ec590004 ldpc v0,1c080020 <bar0>
+[0-9a-f]+ <[^>]*> ec590005 ldpc v0,1c080028 <bar8>
\.\.\.
.ent foo
foo:
ldpc $2, bar0
+ ldpc $2, bar8
.end foo
# Force some (non-delay-slot) zero bytes, to make 'objdump' print ...
#ld: -EB -Ttext 0x1c000000 -Tdata 0x1c080000 -e 0x1c000000
#error: \A[^\n]*: In function `foo':\n
#error: \(\.text\+0x[0-9a-f]+\): PC-relative load from unaligned address\n
-#error: [^\n]*: final link failed: Bad value\Z
+#error: [^\n]*: In function `foo':\n
+#error: \(\.text\+0x[0-9a-f]+\): PC-relative load from unaligned address\n
+#error: [^\n]*: In function `foo':\n
+#error: \(\.text\+0x[0-9a-f]+\): PC-relative load from unaligned address\Z
.ent foo
foo:
ldpc $2, bar1
+ ldpc $2, bar2
+ ldpc $2, bar4
.end foo
# Force some (non-delay-slot) zero bytes, to make 'objdump' print ...
+++ /dev/null
-#name: MIPS LDPC from unaligned symbol 2
-#source: unaligned-ldpc-2.s
-#source: unaligned-syms.s
-#as: -EB -32 -mips64r6
-#ld: -EB -Ttext 0x1c000000 -Tdata 0x1c080000 -e 0x1c000000
-#error: \A[^\n]*: In function `foo':\n
-#error: \(\.text\+0x[0-9a-f]+\): PC-relative load from unaligned address\n
-#error: [^\n]*: final link failed: Bad value\Z
+++ /dev/null
- .text
- .align 4
- .globl foo
- .ent foo
-foo:
- ldpc $2, bar2
- .end foo
-
-# Force some (non-delay-slot) zero bytes, to make 'objdump' print ...
- .align 4, 0
- .space 16
+++ /dev/null
-#name: MIPS LDPC from unaligned symbol 3
-#source: unaligned-ldpc-3.s
-#source: unaligned-syms.s
-#as: -EB -32 -mips64r6
-#ld: -EB -Ttext 0x1c000000 -Tdata 0x1c080000 -e 0x1c000000
-#error: \A[^\n]*: In function `foo':\n
-#error: \(\.text\+0x[0-9a-f]+\): PC-relative load from unaligned address\n
-#error: [^\n]*: final link failed: Bad value\Z
+++ /dev/null
- .text
- .align 4
- .globl foo
- .ent foo
-foo:
- ldpc $2, bar4
- .end foo
-
-# Force some (non-delay-slot) zero bytes, to make 'objdump' print ...
- .align 4, 0
- .space 16
+++ /dev/null
-#name: MIPS LDPC from unaligned symbol 4
-#source: unaligned-ldpc-4.s
-#source: unaligned-syms.s
-#as: -EB -32 -mips64r6
-#ld: -EB -Ttext 0x1c000000 -Tdata 0x1c080000 -e 0x1c000000
-#objdump: -dr --prefix-addresses --show-raw-insn
-
-.*: +file format .*mips.*
-
-Disassembly of section \.text:
-[0-9a-f]+ <[^>]*> ec590005 ldpc v0,1c080028 <bar8>
- \.\.\.
+++ /dev/null
- .text
- .align 4
- .globl foo
- .ent foo
-foo:
- ldpc $2, bar8
- .end foo
-
-# Force some (non-delay-slot) zero bytes, to make 'objdump' print ...
- .align 4, 0
- .space 16
Disassembly of section \.text:
[0-9a-f]+ <[^>]*> ec4a0008 lwpc v0,1c080020 <bar0>
+[0-9a-f]+ <[^>]*> ec4a0008 lwpc v0,1c080024 <bar4>
\.\.\.
.ent foo
foo:
lwpc $2, bar0
+ lwpc $2, bar4
.end foo
# Force some (non-delay-slot) zero bytes, to make 'objdump' print ...
#ld: -EB -Ttext 0x1c000000 -Tdata 0x1c080000 -e 0x1c000000
#error: \A[^\n]*: In function `foo':\n
#error: \(\.text\+0x[0-9a-f]+\): PC-relative load from unaligned address\n
-#error: [^\n]*: final link failed: Bad value\Z
+#error: [^\n]*: In function `foo':\n
+#error: \(\.text\+0x[0-9a-f]+\): PC-relative load from unaligned address\Z
.ent foo
foo:
lwpc $2, bar1
+ lwpc $2, bar2
.end foo
# Force some (non-delay-slot) zero bytes, to make 'objdump' print ...
+++ /dev/null
-#name: MIPS LWPC from unaligned symbol 2
-#source: unaligned-lwpc-2.s
-#source: unaligned-syms.s
-#as: -EB -32 -mips32r6
-#ld: -EB -Ttext 0x1c000000 -Tdata 0x1c080000 -e 0x1c000000
-#error: \A[^\n]*: In function `foo':\n
-#error: \(\.text\+0x[0-9a-f]+\): PC-relative load from unaligned address\n
-#error: [^\n]*: final link failed: Bad value\Z
+++ /dev/null
- .text
- .align 4
- .globl foo
- .ent foo
-foo:
- lwpc $2, bar2
- .end foo
-
-# Force some (non-delay-slot) zero bytes, to make 'objdump' print ...
- .align 4, 0
- .space 16
+++ /dev/null
-#name: MIPS LWPC from unaligned symbol 3
-#source: unaligned-lwpc-3.s
-#source: unaligned-syms.s
-#as: -EB -32 -mips32r6
-#ld: -EB -Ttext 0x1c000000 -Tdata 0x1c080000 -e 0x1c000000
-#objdump: -dr --prefix-addresses --show-raw-insn
-
-.*: +file format .*mips.*
-
-Disassembly of section \.text:
-[0-9a-f]+ <[^>]*> ec4a0009 lwpc v0,1c080024 <bar4>
- \.\.\.
+++ /dev/null
- .text
- .align 4
- .globl foo
- .ent foo
-foo:
- lwpc $2, bar4
- .end foo
-
-# Force some (non-delay-slot) zero bytes, to make 'objdump' print ...
- .align 4, 0
- .space 16