diff options
30 files changed, 62 insertions, 93 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 072cded..0b2e704 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,10 @@ +2005-02-17 Alexandre Oliva <aoliva@redhat.com> + + * elf32-frv.c (elf32_frv_relocate_section): Remove warning from + uninitialized check_segment[1] in TLSMOFF case. + Reported by Alan Modra. + (elf32_frv_relocate_section): Improve errors and warnings. + 2005-02-17 Alan Modra <amodra@bigpond.net.au> * elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Fix warning. diff --git a/bfd/elf32-frv.c b/bfd/elf32-frv.c index 15f469e..9a92c29 100644 --- a/bfd/elf32-frv.c +++ b/bfd/elf32-frv.c @@ -3905,6 +3905,8 @@ elf32_frv_relocate_section (output_bfd, info, input_bfd, input_section, check_segment[1] = _frvfdpic_osec_to_segment (output_bfd, sec->output_section); } + else + check_segment[1] = -1; break; case R_FRV_GOTTLSOFF12: @@ -3962,12 +3964,18 @@ elf32_frv_relocate_section (output_bfd, info, input_bfd, input_section, symbols. */ && !(picrel && picrel->symndx == -1 && picrel->d.h->root.type == bfd_link_hash_undefined)) - info->callbacks->warning - (info, - (info->shared || info->pie) - ? _("relocations between different segments are not supported") - : _("warning: relocation references a different segment"), - name, input_bfd, input_section, rel->r_offset); + { + if (info->shared || info->pie) + (*_bfd_error_handler) + (_("%B(%A+0x%lx): reloc against `%s': %s"), + input_bfd, input_section, (long)rel->r_offset, name, + _("relocation references a different segment")); + else + info->callbacks->warning + (info, + _("relocation references a different segment"), + name, input_bfd, input_section, rel->r_offset); + } if (!silence_segment_error && (info->shared || info->pie)) return FALSE; elf_elfheader (output_bfd)->e_flags |= EF_FRV_PIC; @@ -4113,8 +4121,12 @@ elf32_frv_relocate_section (output_bfd, info, input_bfd, input_section, } if (msg) - r = info->callbacks->warning - (info, msg, name, input_bfd, input_section, rel->r_offset); + { + (*_bfd_error_handler) + (_("%B(%A+0x%lx): reloc against `%s': %s"), + input_bfd, input_section, (long)rel->r_offset, name, msg); + return FALSE; + } if (! r) return FALSE; diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog index 23a06ea..376e44d 100644 --- a/ld/testsuite/ChangeLog +++ b/ld/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2005-02-17 Alexandre Oliva <aoliva@redhat.com> + + * ld-frv/fdpic-static-6.d: Update. + * ld-frv/fdpic*.d: Remove explicit -mfdpic from #as. Update + spelling of errors and warnings. + 2005-02-15 Nigel Stephens <nigel@mips.com> Maciej W. Rozycki <macro@mips.com> diff --git a/ld/testsuite/ld-frv/fdpic-pie-1.d b/ld/testsuite/ld-frv/fdpic-pie-1.d index 70d2cca..0e5b236 100644 --- a/ld/testsuite/ld-frv/fdpic-pie-1.d +++ b/ld/testsuite/ld-frv/fdpic-pie-1.d @@ -1,7 +1,6 @@ #name: FRV uClinux PIC relocs to local symbols, pie linking #source: fdpic1.s #objdump: -DR -j .text -j .data -j .got -j .plt -#as: -mfdpic #ld: -pie .*: file format elf.*frv.* diff --git a/ld/testsuite/ld-frv/fdpic-pie-2.d b/ld/testsuite/ld-frv/fdpic-pie-2.d index a6a5f8b..2af0deb 100644 --- a/ld/testsuite/ld-frv/fdpic-pie-2.d +++ b/ld/testsuite/ld-frv/fdpic-pie-2.d @@ -1,7 +1,6 @@ #name: FRV uClinux PIC relocs to global symbols, pie linking #source: fdpic2.s #objdump: -DR -j .text -j .data -j .got -j .plt -#as: -mfdpic #ld: -pie .*: file format elf.*frv.* diff --git a/ld/testsuite/ld-frv/fdpic-pie-5.d b/ld/testsuite/ld-frv/fdpic-pie-5.d index b2678e1..8565024 100644 --- a/ld/testsuite/ld-frv/fdpic-pie-5.d +++ b/ld/testsuite/ld-frv/fdpic-pie-5.d @@ -1,6 +1,5 @@ #name: FRV uClinux PIC relocs to undefined symbols, pie linking #source: fdpic5.s #objdump: -DR -j .text -j .data -j .got -j .plt -#as: -mfdpic #ld: -pie #error: undefined reference diff --git a/ld/testsuite/ld-frv/fdpic-pie-6-fail.d b/ld/testsuite/ld-frv/fdpic-pie-6-fail.d index eaca671..b7e93ae 100644 --- a/ld/testsuite/ld-frv/fdpic-pie-6-fail.d +++ b/ld/testsuite/ld-frv/fdpic-pie-6-fail.d @@ -1,6 +1,5 @@ #name: FRV uClinux PIC relocs to undefined symbols, pie linking #source: fdpic6.s #objdump: -DR -j .text -j .data -j .got -j .plt -#as: -mfdpic #ld: -pie -#error: different segments +#error: different segment diff --git a/ld/testsuite/ld-frv/fdpic-pie-6.d b/ld/testsuite/ld-frv/fdpic-pie-6.d index 9c39cc5..3ddcb34 100644 --- a/ld/testsuite/ld-frv/fdpic-pie-6.d +++ b/ld/testsuite/ld-frv/fdpic-pie-6.d @@ -1,7 +1,6 @@ #name: FRV uClinux PIC relocs to weak undefined symbols, pie linking #source: fdpic6.s #objdump: -DR -j .text -j .data -j .got -j .plt -#as: -mfdpic #ld: -pie --defsym WD1=D6 .*: file format elf.*frv.* diff --git a/ld/testsuite/ld-frv/fdpic-pie-7.d b/ld/testsuite/ld-frv/fdpic-pie-7.d index c22c5de..8a6cea0 100644 --- a/ld/testsuite/ld-frv/fdpic-pie-7.d +++ b/ld/testsuite/ld-frv/fdpic-pie-7.d @@ -1,7 +1,6 @@ #name: FRV uClinux PIC relocs to local symbols with addends, pie linking #source: fdpic7.s #objdump: -DR -j .text -j .data -j .got -j .plt -#as: -mfdpic #ld: -pie .*: file format elf.*frv.* diff --git a/ld/testsuite/ld-frv/fdpic-pie-8.d b/ld/testsuite/ld-frv/fdpic-pie-8.d index f504016..b20a1ac 100644 --- a/ld/testsuite/ld-frv/fdpic-pie-8.d +++ b/ld/testsuite/ld-frv/fdpic-pie-8.d @@ -1,7 +1,6 @@ #name: FRV uClinux PIC relocs to global symbols with addends, pie linking #source: fdpic8.s #objdump: -DR -j .text -j .data -j .got -j .plt -#as: -mfdpic #ld: -pie .*: file format elf.*frv.* diff --git a/ld/testsuite/ld-frv/fdpic-shared-1.d b/ld/testsuite/ld-frv/fdpic-shared-1.d index 7d6d03d..098febd 100644 --- a/ld/testsuite/ld-frv/fdpic-shared-1.d +++ b/ld/testsuite/ld-frv/fdpic-shared-1.d @@ -1,7 +1,6 @@ #name: FRV uClinux PIC relocs to local symbols, shared linking #source: fdpic1.s #objdump: -DR -j .text -j .data -j .got -j .plt -#as: -mfdpic #ld: -shared .*: file format elf.*frv.* diff --git a/ld/testsuite/ld-frv/fdpic-shared-2-fail.d b/ld/testsuite/ld-frv/fdpic-shared-2-fail.d index 5840d4b..0cec4f6 100644 --- a/ld/testsuite/ld-frv/fdpic-shared-2-fail.d +++ b/ld/testsuite/ld-frv/fdpic-shared-2-fail.d @@ -1,5 +1,4 @@ #name: FRV uClinux PIC relocs to global symbols, failing shared linking #source: fdpic2.s -#as: -mfdpic #ld: -shared -#error: relocations between different segments are not supported +#error: different segment diff --git a/ld/testsuite/ld-frv/fdpic-shared-2.d b/ld/testsuite/ld-frv/fdpic-shared-2.d index b517d7b..f6179c5 100644 --- a/ld/testsuite/ld-frv/fdpic-shared-2.d +++ b/ld/testsuite/ld-frv/fdpic-shared-2.d @@ -1,7 +1,6 @@ #name: FRV uClinux PIC relocs to (mostly) global symbols, shared linking #source: fdpic2.s #objdump: -DR -j .text -j .data -j .got -j .plt -#as: -mfdpic #ld: -shared --version-script fdpic2min.ldv .*: file format elf.*frv.* diff --git a/ld/testsuite/ld-frv/fdpic-shared-3.d b/ld/testsuite/ld-frv/fdpic-shared-3.d index 3c39d2c..1197fa6 100644 --- a/ld/testsuite/ld-frv/fdpic-shared-3.d +++ b/ld/testsuite/ld-frv/fdpic-shared-3.d @@ -1,7 +1,6 @@ #name: FRV uClinux PIC relocs to hidden symbols, shared linking #source: fdpic3.s #objdump: -DR -j .text -j .data -j .got -j .plt -#as: -mfdpic #ld: -shared .*: file format elf.*frv.* diff --git a/ld/testsuite/ld-frv/fdpic-shared-4.d b/ld/testsuite/ld-frv/fdpic-shared-4.d index fa3a3c2..3be724a 100644 --- a/ld/testsuite/ld-frv/fdpic-shared-4.d +++ b/ld/testsuite/ld-frv/fdpic-shared-4.d @@ -1,7 +1,6 @@ #name: FRV uClinux PIC relocs to protected symbols, shared linking #source: fdpic4.s #objdump: -DR -j .text -j .data -j .got -j .plt -#as: -mfdpic #ld: -shared .*: file format elf.*frv.* diff --git a/ld/testsuite/ld-frv/fdpic-shared-5.d b/ld/testsuite/ld-frv/fdpic-shared-5.d index 33cbde3..b5ca50e 100644 --- a/ld/testsuite/ld-frv/fdpic-shared-5.d +++ b/ld/testsuite/ld-frv/fdpic-shared-5.d @@ -1,7 +1,6 @@ #name: FRV uClinux PIC relocs to undefined symbols, shared linking #source: fdpic5.s #objdump: -DRz -j .text -j .data -j .got -j .plt -#as: -mfdpic #ld: -shared .*: file format elf.*frv.* diff --git a/ld/testsuite/ld-frv/fdpic-shared-6-fail.d b/ld/testsuite/ld-frv/fdpic-shared-6-fail.d index 492fe1c..23a245b 100644 --- a/ld/testsuite/ld-frv/fdpic-shared-6-fail.d +++ b/ld/testsuite/ld-frv/fdpic-shared-6-fail.d @@ -1,6 +1,5 @@ #name: FRV uClinux PIC relocs to undefined symbols, shared linking #source: fdpic6.s #objdump: -DR -j .text -j .data -j .got -j .plt -#as: -mfdpic #ld: -shared -#error: different segments +#error: different segment diff --git a/ld/testsuite/ld-frv/fdpic-shared-6.d b/ld/testsuite/ld-frv/fdpic-shared-6.d index 03abbe7..4d1789a 100644 --- a/ld/testsuite/ld-frv/fdpic-shared-6.d +++ b/ld/testsuite/ld-frv/fdpic-shared-6.d @@ -1,7 +1,6 @@ #name: FRV uClinux PIC relocs to weak undefined symbols, shared linking #source: fdpic6.s #objdump: -DR -j .text -j .data -j .got -j .plt -#as: -mfdpic #ld: -shared --defsym WD1=D6 --version-script fdpic6.ldv .*: file format elf.*frv.* diff --git a/ld/testsuite/ld-frv/fdpic-shared-7.d b/ld/testsuite/ld-frv/fdpic-shared-7.d index 82218c3..59d50e8 100644 --- a/ld/testsuite/ld-frv/fdpic-shared-7.d +++ b/ld/testsuite/ld-frv/fdpic-shared-7.d @@ -1,7 +1,6 @@ #name: FRV uClinux PIC relocs to local symbols with addends, shared linking #source: fdpic7.s #objdump: -DR -j .text -j .data -j .got -j .plt -#as: -mfdpic #ld: -shared .*: file format elf.*frv.* diff --git a/ld/testsuite/ld-frv/fdpic-shared-8-fail.d b/ld/testsuite/ld-frv/fdpic-shared-8-fail.d index 08472cd..5634040 100644 --- a/ld/testsuite/ld-frv/fdpic-shared-8-fail.d +++ b/ld/testsuite/ld-frv/fdpic-shared-8-fail.d @@ -1,6 +1,5 @@ #name: FRV uClinux PIC relocs to (mostly) global symbols with addends, failing shared linking #source: fdpic8.s #objdump: -DR -j .text -j .data -j .got -j .plt -#as: -mfdpic #ld: -shared #error: (nonzero addend|may have caused) diff --git a/ld/testsuite/ld-frv/fdpic-shared-8.d b/ld/testsuite/ld-frv/fdpic-shared-8.d index 292bba5..c36bcad 100644 --- a/ld/testsuite/ld-frv/fdpic-shared-8.d +++ b/ld/testsuite/ld-frv/fdpic-shared-8.d @@ -1,7 +1,6 @@ #name: FRV uClinux PIC relocs to (mostly) global symbols with addends, shared linking #source: fdpic8.s #objdump: -DR -j .text -j .data -j .got -j .plt -#as: -mfdpic #ld: -shared --version-script fdpic8min.ldv .*: file format elf.*frv.* diff --git a/ld/testsuite/ld-frv/fdpic-shared-local-2.d b/ld/testsuite/ld-frv/fdpic-shared-local-2.d index e18ced0..eaa93aa 100644 --- a/ld/testsuite/ld-frv/fdpic-shared-local-2.d +++ b/ld/testsuite/ld-frv/fdpic-shared-local-2.d @@ -1,7 +1,6 @@ #name: FRV uClinux PIC relocs to forced-local symbols, shared linking #source: fdpic2.s #objdump: -DR -j .text -j .data -j .got -j .plt -#as: -mfdpic #ld: -shared --version-script fdpic2.ldv .*: file format elf.*frv.* diff --git a/ld/testsuite/ld-frv/fdpic-shared-local-8.d b/ld/testsuite/ld-frv/fdpic-shared-local-8.d index 4c92b07..5b4995f 100644 --- a/ld/testsuite/ld-frv/fdpic-shared-local-8.d +++ b/ld/testsuite/ld-frv/fdpic-shared-local-8.d @@ -1,7 +1,6 @@ #name: FRV uClinux PIC relocs to forced-local symbols with addends, shared linking #source: fdpic8.s #objdump: -DR -j .text -j .data -j .got -j .plt -#as: -mfdpic #ld: -shared --version-script fdpic8.ldv .*: file format elf.*frv.* diff --git a/ld/testsuite/ld-frv/fdpic-static-1.d b/ld/testsuite/ld-frv/fdpic-static-1.d index 7512144..1973f5e 100644 --- a/ld/testsuite/ld-frv/fdpic-static-1.d +++ b/ld/testsuite/ld-frv/fdpic-static-1.d @@ -1,7 +1,6 @@ #name: FRV uClinux PIC relocs to local symbols, static linking #source: fdpic1.s #objdump: -D -#as: -mfdpic #ld: -static .*: file format elf.*frv.* diff --git a/ld/testsuite/ld-frv/fdpic-static-2.d b/ld/testsuite/ld-frv/fdpic-static-2.d index 9b5a9c2..e01cdfd 100644 --- a/ld/testsuite/ld-frv/fdpic-static-2.d +++ b/ld/testsuite/ld-frv/fdpic-static-2.d @@ -1,7 +1,6 @@ #name: FRV uClinux PIC relocs to global symbols, static linking #source: fdpic2.s #objdump: -D -#as: -mfdpic #ld: -static .*: file format elf.*frv.* diff --git a/ld/testsuite/ld-frv/fdpic-static-5.d b/ld/testsuite/ld-frv/fdpic-static-5.d index a14e19a..ce687b8 100644 --- a/ld/testsuite/ld-frv/fdpic-static-5.d +++ b/ld/testsuite/ld-frv/fdpic-static-5.d @@ -1,6 +1,5 @@ #name: FRV uClinux PIC relocs to undefined symbols, static linking #source: fdpic5.s #objdump: -D -#as: -mfdpic #ld: -static #error: undefined reference diff --git a/ld/testsuite/ld-frv/fdpic-static-6.d b/ld/testsuite/ld-frv/fdpic-static-6.d index 9615876..fd570db 100644 --- a/ld/testsuite/ld-frv/fdpic-static-6.d +++ b/ld/testsuite/ld-frv/fdpic-static-6.d @@ -1,74 +1,43 @@ #name: FRV uClinux PIC relocs to weak undefined symbols, static linking #source: fdpic6.s #objdump: -D -#as: -mfdpic #ld: -static -#error: warn.*different segment +#warning: different segment .*: file format elf.*frv.* Disassembly of section \.text: -00010000 <F6>: - 10000: fe 3f c0 00 call 0 <F6-0x10000> - 10004: 80 40 f0 0c addi gr15,12,gr0 - 10008: 80 fc 00 24 setlos 0x24,gr0 - 1000c: 80 f4 00 20 setlo 0x20,gr0 - 10010: 80 f8 00 00 sethi hi\(0x0\),gr0 - 10014: 80 40 f0 10 addi gr15,16,gr0 - 10018: 80 fc 00 18 setlos 0x18,gr0 - 1001c: 80 f4 00 1c setlo 0x1c,gr0 - 10020: 80 f8 00 00 sethi hi\(0x0\),gr0 - 10024: 80 40 ff f8 addi gr15,-8,gr0 - 10028: 80 fc ff f0 setlos 0xf*fffffff0,gr0 - 1002c: 80 f4 ff e8 setlo 0xffe8,gr0 - 10030: 80 f8 ff ff sethi 0xffff,gr0 - 10034: 80 f4 ff 18 setlo 0xff18,gr0 - 10038: 80 f8 ff fa sethi 0xfffa,gr0 - 1003c: 80 f4 00 14 setlo 0x14,gr0 - 10040: 80 f8 00 00 sethi hi\(0x0\),gr0 +00010094 <F6>: + 10094: fe 3f bf db call 0 <_gp-0xf8d8> + 10098: 80 40 f0 0c addi gr15,12,gr0 + 1009c: 80 fc 00 24 setlos 0x24,gr0 + 100a0: 80 f4 00 20 setlo 0x20,gr0 + 100a4: 80 f8 00 00 sethi hi\(0x0\),gr0 + 100a8: 80 40 f0 10 addi gr15,16,gr0 + 100ac: 80 fc 00 18 setlos 0x18,gr0 + 100b0: 80 f4 00 1c setlo 0x1c,gr0 + 100b4: 80 f8 00 00 sethi hi\(0x0\),gr0 + 100b8: 80 40 ff f8 addi gr15,-8,gr0 + 100bc: 80 fc ff f0 setlos 0xf*fffffff0,gr0 + 100c0: 80 f4 ff e8 setlo 0xffe8,gr0 + 100c4: 80 f8 ff ff sethi 0xffff,gr0 + 100c8: 80 f4 be e0 setlo 0xbee0,gr0 + 100cc: 80 f8 ff fe sethi 0xfffe,gr0 + 100d0: 80 f4 00 14 setlo 0x14,gr0 + 100d4: 80 f8 00 00 sethi hi\(0x0\),gr0 Disassembly of section \.rofixup: -00010044 <_gp\+0x800>: - 10044: 00 05 00 f4 orcc\.p gr16,gr52,gr0,icc0 - 10048: 00 05 01 0c xor\.p gr16,gr12,gr0 - 1004c: 00 05 01 08 xor\.p gr16,gr8,gr0 - 10050: 00 05 00 f8 orcc\.p gr16,gr56,gr0,icc0 - 10054: 00 05 00 c0 orcc\.p gr16,gr0,gr0,icc0 - 10058: 00 05 00 c4 orcc\.p gr16,gr4,gr0,icc0 - 1005c: 00 05 01 00 xor\.p gr16,gr0,gr0 - 10060: 00 05 00 c8 orcc\.p gr16,gr8,gr0,icc0 - 10064: 00 05 00 cc orcc\.p gr16,gr12,gr0,icc0 - 10068: 00 05 01 04 xor\.p gr16,gr4,gr0 - 1006c: 00 05 00 b8 or\.p gr16,gr56,gr0 - 10070: 00 05 00 bc or\.p gr16,gr60,gr0 - 10074: 00 05 00 e0 orcc\.p gr16,gr32,gr0,icc0 - 10078: 00 05 00 e4 orcc\.p gr16,gr36,gr0,icc0 - 1007c: 00 05 00 d8 orcc\.p gr16,gr24,gr0,icc0 - 10080: 00 05 00 dc orcc\.p gr16,gr28,gr0,icc0 - 10084: 00 05 00 d0 orcc\.p gr16,gr16,gr0,icc0 - 10088: 00 05 00 d4 orcc\.p gr16,gr20,gr0,icc0 - 1008c: 00 05 00 fc orcc\.p gr16,gr60,gr0,icc0 - 10090: 00 05 00 a4 or\.p gr16,gr36,gr0 - 10094: 00 05 00 b0 or\.p gr16,gr48,gr0 - 10098: 00 05 00 b4 or\.p gr16,gr52,gr0 - 1009c: 00 05 00 a8 or\.p gr16,gr40,gr0 - 100a0: 00 05 00 ac or\.p gr16,gr44,gr0 +000100d8 <__ROFIXUP_LIST__>: + 100d8: 00 01 41 20 sub\.p gr20,gr32,gr0 Disassembly of section \.data: -000500a4 <D6>: - 500a4: 00 00 00 00 add\.p gr0,gr0,gr0 - 500a8: 00 05 00 b0 or\.p gr16,gr48,gr0 - 500ac: 00 00 00 00 add\.p gr0,gr0,gr0 +000140dc <D6>: + \.\.\. Disassembly of section \.got: -000500b0 <_GLOBAL_OFFSET_TABLE_-0x38>: +000140e8 <_GLOBAL_OFFSET_TABLE_-0x38>: \.\.\. -000500e8 <_GLOBAL_OFFSET_TABLE_>: - \.\.\. - 500f8: 00 05 00 c0 orcc\.p gr16,gr0,gr0,icc0 - 500fc: 00 00 00 00 add\.p gr0,gr0,gr0 - 50100: 00 05 00 c8 orcc\.p gr16,gr8,gr0,icc0 - 50104: 00 05 00 b8 or\.p gr16,gr56,gr0 +00014120 <_GLOBAL_OFFSET_TABLE_>: \.\.\. diff --git a/ld/testsuite/ld-frv/fdpic-static-7.d b/ld/testsuite/ld-frv/fdpic-static-7.d index 1f882c5..1fa338e 100644 --- a/ld/testsuite/ld-frv/fdpic-static-7.d +++ b/ld/testsuite/ld-frv/fdpic-static-7.d @@ -1,7 +1,6 @@ #name: FRV uClinux PIC relocs to local symbols with addends, static linking #source: fdpic7.s #objdump: -D -#as: -mfdpic #ld: -static .*: file format elf.*frv.* diff --git a/ld/testsuite/ld-frv/fdpic-static-8.d b/ld/testsuite/ld-frv/fdpic-static-8.d index 4f0deae..10a5e4f 100644 --- a/ld/testsuite/ld-frv/fdpic-static-8.d +++ b/ld/testsuite/ld-frv/fdpic-static-8.d @@ -1,7 +1,6 @@ #name: FRV uClinux PIC relocs to global symbols with addends, static linking #source: fdpic8.s #objdump: -D -#as: -mfdpic #ld: -static .*: file format elf.*frv.* diff --git a/ld/testsuite/ld-frv/tls-shared-1-fail.d b/ld/testsuite/ld-frv/tls-shared-1-fail.d index 511d094..8cb220d 100644 --- a/ld/testsuite/ld-frv/tls-shared-1-fail.d +++ b/ld/testsuite/ld-frv/tls-shared-1-fail.d @@ -1,4 +1,4 @@ #name: FRV TLS relocs, shared linking #source: tls-1.s #ld: -shared tmpdir/tls-1-dep.so -#error: different segments +#error: different segment |