aboutsummaryrefslogtreecommitdiff
path: root/bfd/coff-alpha.c
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@airs.com>1994-01-24 20:23:18 +0000
committerIan Lance Taylor <ian@airs.com>1994-01-24 20:23:18 +0000
commit4991ebb9873c7965b6a70f47ef9ed5c0149b5ae4 (patch)
tree68fd14f3d82d9a8b76892d47d49561184d4b5ccb /bfd/coff-alpha.c
parent5dad4c97286ccff467bb6c96203056106a19e551 (diff)
downloadgdb-4991ebb9873c7965b6a70f47ef9ed5c0149b5ae4.zip
gdb-4991ebb9873c7965b6a70f47ef9ed5c0149b5ae4.tar.gz
gdb-4991ebb9873c7965b6a70f47ef9ed5c0149b5ae4.tar.bz2
* bfd/aoutx.h (aout_link_input_section_std,
aout_link_input_section_ext): Pass additional arguments to reloc_overflow callback. * coff-alpha.c (alpha_ecoff_get_relocated_section_contents, alpha_relocat_section): Likewise. * coff-h8300.c (h8300_reloc16_extra_cases): Likewise. * coff-h8500.c (extra_case): Likewise. * coff-mips.c (mips_relocate_section): Likewise. * coff-z8k.c (extra_case): Likewise. * elf32-hppa.c (hppa_elf_stub_finish): Likewise. * reloc.c (bfd_generic_get_relocated_section_contents): Likewise.
Diffstat (limited to 'bfd/coff-alpha.c')
-rw-r--r--bfd/coff-alpha.c22
1 files changed, 17 insertions, 5 deletions
diff --git a/bfd/coff-alpha.c b/bfd/coff-alpha.c
index 9153d02..5a35d7d 100644
--- a/bfd/coff-alpha.c
+++ b/bfd/coff-alpha.c
@@ -1032,7 +1032,9 @@ alpha_ecoff_get_relocated_section_contents (abfd, link_info, link_order,
break;
case bfd_reloc_overflow:
if (! ((*link_info->callbacks->reloc_overflow)
- (link_info, input_bfd, input_section, rel->address)))
+ (link_info, bfd_asymbol_name (*rel->sym_ptr_ptr),
+ rel->howto->name, rel->addend, input_bfd,
+ input_section, rel->address)))
return NULL;
break;
case bfd_reloc_outofrange:
@@ -1749,10 +1751,20 @@ alpha_relocate_section (output_bfd, info, input_bfd, input_section,
case bfd_reloc_outofrange:
abort ();
case bfd_reloc_overflow:
- if (! ((*info->callbacks->reloc_overflow)
- (info, input_bfd, input_section,
- r_vaddr - input_section->vma)))
- return false;
+ {
+ const char *name;
+
+ if (r_extern)
+ name = sym_hashes[r_symndx]->root.root.string;
+ else
+ name = bfd_section_name (input_bfd,
+ symndx_to_section[r_symndx]);
+ if (! ((*info->callbacks->reloc_overflow)
+ (info, name, alpha_howto_table[r_type].name,
+ (bfd_vma) 0, input_bfd, input_section,
+ r_vaddr - input_section->vma)))
+ return false;
+ }
break;
}
}