bfd/
2004-10-21 H.J. Lu <hongjiu.lu@intel.com> PR 463 * aoutx.h (aout_link_input_section_std): Pass proper hash entry to linker reloc_overflow callback. (aout_link_input_section_ext): Likewise. (aout_link_reloc_link_order): Likewise. * coff-a29k.c (coff_a29k_relocate_section): Likewise. * coff-alpha.c (alpha_ecoff_get_relocated_section_contents): Likewise. (alpha_relocate_section): Likewise. * coff-arm.c (coff_arm_relocate_section): Likewise. * coff-h8300.c (h8300_reloc16_extra_cases): Likewise. * coff-h8500.c (extra_case): Likewise. * coff-i960.c (coff_i960_relocate_section): Likewise. * coff-mcore.c (coff_mcore_relocate_section): Likewise. * coff-mips.c (mips_relocate_section): Likewise. * coff-or32.c (coff_or32_relocate_section): Likewise. * coff-ppc.c (coff_ppc_relocate_section): Likewise. * coff-rs6000.c (xcoff_ppc_relocate_section): Likewise. * coff-sh.c (sh_relocate_section): Likewise. * coff-tic80.c (coff_tic80_relocate_section): Likewise. * coff-w65.c (w65_reloc16_extra_cases): Likewise. * coff-z8k.c (extra_case): Likewise. * coff64-rs6000.c (xcoff64_ppc_relocate_section): Likewise. * cofflink.c (_bfd_coff_reloc_link_order): Likewise. (_bfd_coff_generic_relocate_section): Likewise. * ecoff.c (ecoff_reloc_link_order): Likewise. * elf-hppa.h (elf_hppa_relocate_section): Likewise. * elf-m10200.c (mn10200_elf_relocate_section): Likewise. * elf-m10300.c (mn10300_elf_relocate_section): Likewise. * elf32-arm.h (elf32_arm_relocate_section): Likewise. * elf32-avr.c (elf32_avr_relocate_section): Likewise. * elf32-cr16c.c (elf32_cr16c_relocate_section): Likewise. * elf32-cris.c (cris_elf_relocate_section): Likewise. * elf32-crx.c (elf32_crx_relocate_section): Likewise. * elf32-d10v.c (elf32_d10v_relocate_section): Likewise. * elf32-fr30.c (fr30_elf_relocate_section): Likewise. * elf32-frv.c (elf32_frv_relocate_section): Likewise. * elf32-h8300.c (elf32_h8_relocate_section): Likewise. * elf32-hppa.c (elf32_hppa_relocate_section): Likewise. * elf32-i370.c (i370_elf_relocate_section): Likewise. * elf32-i386.c (elf_i386_relocate_section): Likewise. * elf32-i860.c (elf32_i860_relocate_section): Likewise. * elf32-ip2k.c (ip2k_elf_relocate_section): Likewise. * elf32-iq2000.c (iq2000_elf_relocate_section): Likewise. * elf32-m32r.c (m32r_elf_relocate_section): Likewise. * elf32-m68hc1x.c (elf32_m68hc11_relocate_section): Likewise. * elf32-m68k.c (elf_m68k_relocate_section): Likewise. * elf32-mcore.c (mcore_elf_relocate_section): Likewise. * elf32-msp430.c (elf32_msp430_relocate_section): Likewise. * elf32-openrisc.c (openrisc_elf_relocate_section): Likewise. * elf32-ppc.c (ppc_elf_relocate_section): Likewise. * elf32-s390.c (elf_s390_relocate_section): Likewise. * elf32-sh.c (sh_elf_relocate_section): Likewise. * elf32-sparc.c (elf32_sparc_relocate_section): Likewise. * elf32-v850.c (v850_elf_relocate_section): Likewise. * elf32-vax.c (elf_vax_relocate_section): Likewise. * elf32-xstormy16.c (xstormy16_elf_relocate_section): Likewise. * elf64-alpha.c (elf64_alpha_relocate_section): Likewise. * elf64-mmix.c (mmix_elf_relocate_section): Likewise. * elf64-ppc.c (ppc64_elf_relocate_section): Likewise. * elf64-s390.c (elf_s390_relocate_section): Likewise. * elf64-sh64.c (sh_elf64_relocate_section): Likewise. * elf64-sparc.c (sparc64_elf_relocate_section): Likewise. * elf64-x86-64.c (elf64_x86_64_relocate_section): Likewise. * elflink.c (elf_reloc_link_order): Likewise. * elfxx-ia64.c (elfNN_ia64_relocate_section): Likewise. * elfxx-mips.c (_bfd_mips_elf_relocate_section): Likewise. (_bfd_elf_mips_get_relocated_section_contents): Likewise. * linker.c (_bfd_generic_reloc_link_order): Likewise. * pdp11.c (pdp11_aout_link_input_section): Likewise. (aout_link_reloc_link_order): Likewise. * reloc.c (bfd_generic_get_relocated_section_contents): Likewise. * xcofflink.c (xcoff_reloc_link_order): Likewise. * simple.c (simple_dummy_reloc_overflow): Updated. include/ 2004-10-21 H.J. Lu <hongjiu.lu@intel.com> PR 463 * bfdlink.h (bfd_link_callbacks): Add a pointer to struct bfd_link_hash_entry to reloc_overflow. ld/ 2004-10-21 H.J. Lu <hongjiu.lu@intel.com> PR 463 * ldmain.c (reloc_overflow): Accept a pointer to struct bfd_link_hash_entry. Report symbol location for relocation overflow.
This commit is contained in:
parent
dc4f76f869
commit
dfeffb9fe1
|
@ -1,3 +1,81 @@
|
|||
2004-10-21 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
PR 463
|
||||
* aoutx.h (aout_link_input_section_std): Pass proper hash entry
|
||||
to linker reloc_overflow callback.
|
||||
(aout_link_input_section_ext): Likewise.
|
||||
(aout_link_reloc_link_order): Likewise.
|
||||
* coff-a29k.c (coff_a29k_relocate_section): Likewise.
|
||||
* coff-alpha.c (alpha_ecoff_get_relocated_section_contents):
|
||||
Likewise.
|
||||
(alpha_relocate_section): Likewise.
|
||||
* coff-arm.c (coff_arm_relocate_section): Likewise.
|
||||
* coff-h8300.c (h8300_reloc16_extra_cases): Likewise.
|
||||
* coff-h8500.c (extra_case): Likewise.
|
||||
* coff-i960.c (coff_i960_relocate_section): Likewise.
|
||||
* coff-mcore.c (coff_mcore_relocate_section): Likewise.
|
||||
* coff-mips.c (mips_relocate_section): Likewise.
|
||||
* coff-or32.c (coff_or32_relocate_section): Likewise.
|
||||
* coff-ppc.c (coff_ppc_relocate_section): Likewise.
|
||||
* coff-rs6000.c (xcoff_ppc_relocate_section): Likewise.
|
||||
* coff-sh.c (sh_relocate_section): Likewise.
|
||||
* coff-tic80.c (coff_tic80_relocate_section): Likewise.
|
||||
* coff-w65.c (w65_reloc16_extra_cases): Likewise.
|
||||
* coff-z8k.c (extra_case): Likewise.
|
||||
* coff64-rs6000.c (xcoff64_ppc_relocate_section): Likewise.
|
||||
* cofflink.c (_bfd_coff_reloc_link_order): Likewise.
|
||||
(_bfd_coff_generic_relocate_section): Likewise.
|
||||
* ecoff.c (ecoff_reloc_link_order): Likewise.
|
||||
* elf-hppa.h (elf_hppa_relocate_section): Likewise.
|
||||
* elf-m10200.c (mn10200_elf_relocate_section): Likewise.
|
||||
* elf-m10300.c (mn10300_elf_relocate_section): Likewise.
|
||||
* elf32-arm.h (elf32_arm_relocate_section): Likewise.
|
||||
* elf32-avr.c (elf32_avr_relocate_section): Likewise.
|
||||
* elf32-cr16c.c (elf32_cr16c_relocate_section): Likewise.
|
||||
* elf32-cris.c (cris_elf_relocate_section): Likewise.
|
||||
* elf32-crx.c (elf32_crx_relocate_section): Likewise.
|
||||
* elf32-d10v.c (elf32_d10v_relocate_section): Likewise.
|
||||
* elf32-fr30.c (fr30_elf_relocate_section): Likewise.
|
||||
* elf32-frv.c (elf32_frv_relocate_section): Likewise.
|
||||
* elf32-h8300.c (elf32_h8_relocate_section): Likewise.
|
||||
* elf32-hppa.c (elf32_hppa_relocate_section): Likewise.
|
||||
* elf32-i370.c (i370_elf_relocate_section): Likewise.
|
||||
* elf32-i386.c (elf_i386_relocate_section): Likewise.
|
||||
* elf32-i860.c (elf32_i860_relocate_section): Likewise.
|
||||
* elf32-ip2k.c (ip2k_elf_relocate_section): Likewise.
|
||||
* elf32-iq2000.c (iq2000_elf_relocate_section): Likewise.
|
||||
* elf32-m32r.c (m32r_elf_relocate_section): Likewise.
|
||||
* elf32-m68hc1x.c (elf32_m68hc11_relocate_section): Likewise.
|
||||
* elf32-m68k.c (elf_m68k_relocate_section): Likewise.
|
||||
* elf32-mcore.c (mcore_elf_relocate_section): Likewise.
|
||||
* elf32-msp430.c (elf32_msp430_relocate_section): Likewise.
|
||||
* elf32-openrisc.c (openrisc_elf_relocate_section): Likewise.
|
||||
* elf32-ppc.c (ppc_elf_relocate_section): Likewise.
|
||||
* elf32-s390.c (elf_s390_relocate_section): Likewise.
|
||||
* elf32-sh.c (sh_elf_relocate_section): Likewise.
|
||||
* elf32-sparc.c (elf32_sparc_relocate_section): Likewise.
|
||||
* elf32-v850.c (v850_elf_relocate_section): Likewise.
|
||||
* elf32-vax.c (elf_vax_relocate_section): Likewise.
|
||||
* elf32-xstormy16.c (xstormy16_elf_relocate_section): Likewise.
|
||||
* elf64-alpha.c (elf64_alpha_relocate_section): Likewise.
|
||||
* elf64-mmix.c (mmix_elf_relocate_section): Likewise.
|
||||
* elf64-ppc.c (ppc64_elf_relocate_section): Likewise.
|
||||
* elf64-s390.c (elf_s390_relocate_section): Likewise.
|
||||
* elf64-sh64.c (sh_elf64_relocate_section): Likewise.
|
||||
* elf64-sparc.c (sparc64_elf_relocate_section): Likewise.
|
||||
* elf64-x86-64.c (elf64_x86_64_relocate_section): Likewise.
|
||||
* elflink.c (elf_reloc_link_order): Likewise.
|
||||
* elfxx-ia64.c (elfNN_ia64_relocate_section): Likewise.
|
||||
* elfxx-mips.c (_bfd_mips_elf_relocate_section): Likewise.
|
||||
(_bfd_elf_mips_get_relocated_section_contents): Likewise.
|
||||
* linker.c (_bfd_generic_reloc_link_order): Likewise.
|
||||
* pdp11.c (pdp11_aout_link_input_section): Likewise.
|
||||
(aout_link_reloc_link_order): Likewise.
|
||||
* reloc.c (bfd_generic_get_relocated_section_contents):
|
||||
Likewise.
|
||||
* xcofflink.c (xcoff_reloc_link_order): Likewise.
|
||||
* simple.c (simple_dummy_reloc_overflow): Updated.
|
||||
|
||||
2004-10-20 Andreas Schwab <schwab@suse.de>
|
||||
|
||||
* elf32-m68k.c (elf_m68k_plt_sym_val): New function.
|
||||
|
|
14
bfd/aoutx.h
14
bfd/aoutx.h
|
@ -5158,7 +5158,7 @@ aout_link_input_section_std (finfo, input_bfd, input_section, relocs,
|
|||
const char *name;
|
||||
|
||||
if (h != NULL)
|
||||
name = h->root.root.string;
|
||||
name = NULL;
|
||||
else if (r_extern)
|
||||
name = strings + GET_WORD (input_bfd,
|
||||
syms[r_index].e_strx);
|
||||
|
@ -5170,8 +5170,9 @@ aout_link_input_section_std (finfo, input_bfd, input_section, relocs,
|
|||
name = bfd_section_name (input_bfd, s);
|
||||
}
|
||||
if (! ((*finfo->info->callbacks->reloc_overflow)
|
||||
(finfo->info, name, howto->name,
|
||||
(bfd_vma) 0, input_bfd, input_section, r_addr)))
|
||||
(finfo->info, (h ? &h->root : NULL), name,
|
||||
howto->name, (bfd_vma) 0, input_bfd,
|
||||
input_section, r_addr)))
|
||||
return FALSE;
|
||||
}
|
||||
break;
|
||||
|
@ -5569,7 +5570,7 @@ aout_link_input_section_ext (finfo, input_bfd, input_section, relocs,
|
|||
const char *name;
|
||||
|
||||
if (h != NULL)
|
||||
name = h->root.root.string;
|
||||
name = NULL;
|
||||
else if (r_extern
|
||||
|| r_type == (unsigned int) RELOC_BASE10
|
||||
|| r_type == (unsigned int) RELOC_BASE13
|
||||
|
@ -5584,7 +5585,8 @@ aout_link_input_section_ext (finfo, input_bfd, input_section, relocs,
|
|||
name = bfd_section_name (input_bfd, s);
|
||||
}
|
||||
if (! ((*finfo->info->callbacks->reloc_overflow)
|
||||
(finfo->info, name, howto_table_ext[r_type].name,
|
||||
(finfo->info, (h ? &h->root : NULL), name,
|
||||
howto_table_ext[r_type].name,
|
||||
r_addend, input_bfd, input_section, r_addr)))
|
||||
return FALSE;
|
||||
}
|
||||
|
@ -5753,7 +5755,7 @@ aout_link_reloc_link_order (finfo, o, p)
|
|||
abort ();
|
||||
case bfd_reloc_overflow:
|
||||
if (! ((*finfo->info->callbacks->reloc_overflow)
|
||||
(finfo->info,
|
||||
(finfo->info, NULL,
|
||||
(p->type == bfd_section_reloc_link_order
|
||||
? bfd_section_name (finfo->output_bfd,
|
||||
pr->u.section)
|
||||
|
|
|
@ -532,7 +532,7 @@ coff_a29k_relocate_section (output_bfd, info, input_bfd, input_section,
|
|||
if (symndx == -1)
|
||||
name = "*ABS*";
|
||||
else if (h != NULL)
|
||||
name = h->root.root.string;
|
||||
name = NULL;
|
||||
else if (sym == NULL)
|
||||
name = "*unknown*";
|
||||
else if (sym->_n._n_n._n_zeroes == 0
|
||||
|
@ -546,9 +546,9 @@ coff_a29k_relocate_section (output_bfd, info, input_bfd, input_section,
|
|||
}
|
||||
|
||||
if (! ((*info->callbacks->reloc_overflow)
|
||||
(info, name, howto_table[rel->r_type].name, (bfd_vma) 0,
|
||||
input_bfd, input_section,
|
||||
rel->r_vaddr - input_section->vma)))
|
||||
(info, (h ? &h->root : NULL), name,
|
||||
howto_table[rel->r_type].name, (bfd_vma) 0, input_bfd,
|
||||
input_section, rel->r_vaddr - input_section->vma)))
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1145,7 +1145,8 @@ alpha_ecoff_get_relocated_section_contents (abfd, link_info, link_order,
|
|||
break;
|
||||
case bfd_reloc_overflow:
|
||||
if (! ((*link_info->callbacks->reloc_overflow)
|
||||
(link_info, bfd_asymbol_name (*rel->sym_ptr_ptr),
|
||||
(link_info, NULL,
|
||||
bfd_asymbol_name (*rel->sym_ptr_ptr),
|
||||
rel->howto->name, rel->addend, input_bfd,
|
||||
input_section, rel->address)))
|
||||
goto error_return;
|
||||
|
@ -1960,7 +1961,8 @@ alpha_relocate_section (output_bfd, info, input_bfd, input_section,
|
|||
name = bfd_section_name (input_bfd,
|
||||
symndx_to_section[r_symndx]);
|
||||
if (! ((*info->callbacks->reloc_overflow)
|
||||
(info, name, alpha_howto_table[r_type].name,
|
||||
(info, NULL, name,
|
||||
alpha_howto_table[r_type].name,
|
||||
(bfd_vma) 0, input_bfd, input_section,
|
||||
r_vaddr - input_section->vma)))
|
||||
return FALSE;
|
||||
|
|
|
@ -1795,7 +1795,7 @@ coff_arm_relocate_section (output_bfd, info, input_bfd, input_section,
|
|||
if (symndx == -1)
|
||||
name = "*ABS*";
|
||||
else if (h != NULL)
|
||||
name = h->root.root.string;
|
||||
name = NULL;
|
||||
else
|
||||
{
|
||||
name = _bfd_coff_internal_syment_name (input_bfd, sym, buf);
|
||||
|
@ -1804,8 +1804,9 @@ coff_arm_relocate_section (output_bfd, info, input_bfd, input_section,
|
|||
}
|
||||
|
||||
if (! ((*info->callbacks->reloc_overflow)
|
||||
(info, name, howto->name, (bfd_vma) 0, input_bfd,
|
||||
input_section, rel->r_vaddr - input_section->vma)))
|
||||
(info, (h ? &h->root : NULL), name, howto->name,
|
||||
(bfd_vma) 0, input_bfd, input_section,
|
||||
rel->r_vaddr - input_section->vma)))
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -685,7 +685,8 @@ h8300_reloc16_extra_cases (bfd *abfd, struct bfd_link_info *link_info,
|
|||
if (gap < -128 || gap > 126)
|
||||
{
|
||||
if (! ((*link_info->callbacks->reloc_overflow)
|
||||
(link_info, bfd_asymbol_name (*reloc->sym_ptr_ptr),
|
||||
(link_info, NULL,
|
||||
bfd_asymbol_name (*reloc->sym_ptr_ptr),
|
||||
reloc->howto->name, reloc->addend, input_section->owner,
|
||||
input_section, reloc->address)))
|
||||
abort ();
|
||||
|
@ -716,7 +717,8 @@ h8300_reloc16_extra_cases (bfd *abfd, struct bfd_link_info *link_info,
|
|||
if (gap > 32766 || gap < -32768)
|
||||
{
|
||||
if (! ((*link_info->callbacks->reloc_overflow)
|
||||
(link_info, bfd_asymbol_name (*reloc->sym_ptr_ptr),
|
||||
(link_info, NULL,
|
||||
bfd_asymbol_name (*reloc->sym_ptr_ptr),
|
||||
reloc->howto->name, reloc->addend, input_section->owner,
|
||||
input_section, reloc->address)))
|
||||
abort ();
|
||||
|
@ -805,7 +807,8 @@ h8300_reloc16_extra_cases (bfd *abfd, struct bfd_link_info *link_info,
|
|||
else
|
||||
{
|
||||
if (! ((*link_info->callbacks->reloc_overflow)
|
||||
(link_info, bfd_asymbol_name (*reloc->sym_ptr_ptr),
|
||||
(link_info, NULL,
|
||||
bfd_asymbol_name (*reloc->sym_ptr_ptr),
|
||||
reloc->howto->name, reloc->addend, input_section->owner,
|
||||
input_section, reloc->address)))
|
||||
abort ();
|
||||
|
@ -828,7 +831,8 @@ h8300_reloc16_extra_cases (bfd *abfd, struct bfd_link_info *link_info,
|
|||
if (gap < -128 || gap > 126)
|
||||
{
|
||||
if (! ((*link_info->callbacks->reloc_overflow)
|
||||
(link_info, bfd_asymbol_name (*reloc->sym_ptr_ptr),
|
||||
(link_info, NULL,
|
||||
bfd_asymbol_name (*reloc->sym_ptr_ptr),
|
||||
reloc->howto->name, reloc->addend, input_section->owner,
|
||||
input_section, reloc->address)))
|
||||
abort ();
|
||||
|
@ -874,7 +878,8 @@ h8300_reloc16_extra_cases (bfd *abfd, struct bfd_link_info *link_info,
|
|||
if (gap < -128 || gap > 126)
|
||||
{
|
||||
if (! ((*link_info->callbacks->reloc_overflow)
|
||||
(link_info, bfd_asymbol_name (*reloc->sym_ptr_ptr),
|
||||
(link_info, NULL,
|
||||
bfd_asymbol_name (*reloc->sym_ptr_ptr),
|
||||
reloc->howto->name, reloc->addend, input_section->owner,
|
||||
input_section, reloc->address)))
|
||||
abort ();
|
||||
|
@ -1073,7 +1078,8 @@ h8300_reloc16_extra_cases (bfd *abfd, struct bfd_link_info *link_info,
|
|||
if (gap < -128 || gap > 126)
|
||||
{
|
||||
if (! ((*link_info->callbacks->reloc_overflow)
|
||||
(link_info, bfd_asymbol_name (*reloc->sym_ptr_ptr),
|
||||
(link_info, NULL,
|
||||
bfd_asymbol_name (*reloc->sym_ptr_ptr),
|
||||
reloc->howto->name, reloc->addend, input_section->owner,
|
||||
input_section, reloc->address)))
|
||||
abort ();
|
||||
|
@ -1155,7 +1161,8 @@ h8300_reloc16_extra_cases (bfd *abfd, struct bfd_link_info *link_info,
|
|||
else
|
||||
{
|
||||
if (! ((*link_info->callbacks->reloc_overflow)
|
||||
(link_info, bfd_asymbol_name (*reloc->sym_ptr_ptr),
|
||||
(link_info, NULL,
|
||||
bfd_asymbol_name (*reloc->sym_ptr_ptr),
|
||||
reloc->howto->name, reloc->addend, input_section->owner,
|
||||
input_section, reloc->address)))
|
||||
abort ();
|
||||
|
|
|
@ -254,7 +254,8 @@ extra_case (in_abfd, link_info, link_order, reloc, data, src_ptr, dst_ptr)
|
|||
if (gap > 128 || gap < -128)
|
||||
{
|
||||
if (! ((*link_info->callbacks->reloc_overflow)
|
||||
(link_info, bfd_asymbol_name (*reloc->sym_ptr_ptr),
|
||||
(link_info, NULL,
|
||||
bfd_asymbol_name (*reloc->sym_ptr_ptr),
|
||||
reloc->howto->name, reloc->addend, input_section->owner,
|
||||
input_section, reloc->address)))
|
||||
abort ();
|
||||
|
@ -277,7 +278,8 @@ extra_case (in_abfd, link_info, link_order, reloc, data, src_ptr, dst_ptr)
|
|||
if (gap > 32767 || gap < -32768)
|
||||
{
|
||||
if (! ((*link_info->callbacks->reloc_overflow)
|
||||
(link_info, bfd_asymbol_name (*reloc->sym_ptr_ptr),
|
||||
(link_info, NULL,
|
||||
bfd_asymbol_name (*reloc->sym_ptr_ptr),
|
||||
reloc->howto->name, reloc->addend, input_section->owner,
|
||||
input_section, reloc->address)))
|
||||
abort ();
|
||||
|
|
|
@ -555,7 +555,7 @@ coff_i960_relocate_section (output_bfd, info, input_bfd, input_section,
|
|||
if (symndx == -1)
|
||||
name = "*ABS*";
|
||||
else if (h != NULL)
|
||||
name = h->root.root.string;
|
||||
name = NULL;
|
||||
else
|
||||
{
|
||||
name = _bfd_coff_internal_syment_name (input_bfd, sym, buf);
|
||||
|
@ -564,8 +564,9 @@ coff_i960_relocate_section (output_bfd, info, input_bfd, input_section,
|
|||
}
|
||||
|
||||
if (! ((*info->callbacks->reloc_overflow)
|
||||
(info, name, howto->name, (bfd_vma) 0, input_bfd,
|
||||
input_section, rel->r_vaddr - input_section->vma)))
|
||||
(info, (h ? &h->root : NULL), name, howto->name,
|
||||
(bfd_vma) 0, input_bfd, input_section,
|
||||
rel->r_vaddr - input_section->vma)))
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -556,7 +556,7 @@ coff_mcore_relocate_section (output_bfd, info, input_bfd, input_section,
|
|||
|
||||
case bfd_reloc_overflow:
|
||||
if (! ((*info->callbacks->reloc_overflow)
|
||||
(info, my_name, howto->name,
|
||||
(info, (h ? &h->root : NULL), my_name, howto->name,
|
||||
(bfd_vma) 0, input_bfd,
|
||||
input_section, rel->r_vaddr - input_section->vma)))
|
||||
return FALSE;
|
||||
|
|
|
@ -1261,12 +1261,12 @@ mips_relocate_section (output_bfd, info, input_bfd, input_section,
|
|||
const char *name;
|
||||
|
||||
if (int_rel.r_extern)
|
||||
name = h->root.root.string;
|
||||
name = NULL;
|
||||
else
|
||||
name = bfd_section_name (input_bfd, s);
|
||||
if (! ((*info->callbacks->reloc_overflow)
|
||||
(info, name, howto->name, (bfd_vma) 0,
|
||||
input_bfd, input_section,
|
||||
(info, (h ? &h->root : NULL), name, howto->name,
|
||||
(bfd_vma) 0, input_bfd, input_section,
|
||||
int_rel.r_vaddr - input_section->vma)))
|
||||
return FALSE;
|
||||
}
|
||||
|
|
|
@ -545,7 +545,7 @@ coff_or32_relocate_section (output_bfd, info, input_bfd, input_section,
|
|||
if (symndx == -1)
|
||||
name = "*ABS*";
|
||||
else if (h != NULL)
|
||||
name = h->root.root.string;
|
||||
name = NULL;
|
||||
else if (sym == NULL)
|
||||
name = "*unknown*";
|
||||
else if (sym->_n._n_n._n_zeroes == 0
|
||||
|
@ -559,9 +559,9 @@ coff_or32_relocate_section (output_bfd, info, input_bfd, input_section,
|
|||
}
|
||||
|
||||
if (! ((*info->callbacks->reloc_overflow)
|
||||
(info, name, howto_table[rel->r_type].name, (bfd_vma) 0,
|
||||
input_bfd, input_section,
|
||||
rel->r_vaddr - input_section->vma)))
|
||||
(info, (h ? &h->root : NULL), name,
|
||||
howto_table[rel->r_type].name, (bfd_vma) 0, input_bfd,
|
||||
input_section, rel->r_vaddr - input_section->vma)))
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1563,7 +1563,7 @@ coff_ppc_relocate_section (output_bfd, info, input_bfd, input_section,
|
|||
if (symndx == -1)
|
||||
name = "*ABS*";
|
||||
else if (h != NULL)
|
||||
name = h->root.root.root.string;
|
||||
name = NULL;
|
||||
else if (sym == NULL)
|
||||
name = "*unknown*";
|
||||
else if (sym->_n._n_n._n_zeroes == 0
|
||||
|
@ -1577,7 +1577,7 @@ coff_ppc_relocate_section (output_bfd, info, input_bfd, input_section,
|
|||
}
|
||||
|
||||
if (! ((*info->callbacks->reloc_overflow)
|
||||
(info, name, howto->name,
|
||||
(info, (h ? &h->root.root : NULL), name, howto->name,
|
||||
(bfd_vma) 0, input_bfd,
|
||||
input_section, rel->r_vaddr - input_section->vma)))
|
||||
return FALSE;
|
||||
|
|
|
@ -3481,7 +3481,7 @@ xcoff_ppc_relocate_section (output_bfd, info, input_bfd,
|
|||
}
|
||||
else if (h != NULL)
|
||||
{
|
||||
name = h->root.root.string;
|
||||
name = NULL;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -3492,8 +3492,9 @@ xcoff_ppc_relocate_section (output_bfd, info, input_bfd,
|
|||
sprintf (reloc_type_name, "0x%02x", rel->r_type);
|
||||
|
||||
if (! ((*info->callbacks->reloc_overflow)
|
||||
(info, name, reloc_type_name, (bfd_vma) 0, input_bfd,
|
||||
input_section, rel->r_vaddr - input_section->vma)))
|
||||
(info, (h ? &h->root : NULL), name, reloc_type_name,
|
||||
(bfd_vma) 0, input_bfd, input_section,
|
||||
rel->r_vaddr - input_section->vma)))
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
|
|
@ -2946,7 +2946,7 @@ sh_relocate_section (output_bfd, info, input_bfd, input_section, contents,
|
|||
if (symndx == -1)
|
||||
name = "*ABS*";
|
||||
else if (h != NULL)
|
||||
name = h->root.root.string;
|
||||
name = NULL;
|
||||
else if (sym->_n._n_n._n_zeroes == 0
|
||||
&& sym->_n._n_n._n_offset != 0)
|
||||
name = obj_coff_strings (input_bfd) + sym->_n._n_n._n_offset;
|
||||
|
@ -2958,8 +2958,9 @@ sh_relocate_section (output_bfd, info, input_bfd, input_section, contents,
|
|||
}
|
||||
|
||||
if (! ((*info->callbacks->reloc_overflow)
|
||||
(info, name, howto->name, (bfd_vma) 0, input_bfd,
|
||||
input_section, rel->r_vaddr - input_section->vma)))
|
||||
(info, (h ? &h->root : NULL), name, howto->name,
|
||||
(bfd_vma) 0, input_bfd, input_section,
|
||||
rel->r_vaddr - input_section->vma)))
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -695,7 +695,7 @@ coff_tic80_relocate_section (output_bfd, info, input_bfd,
|
|||
if (symndx == -1)
|
||||
name = "*ABS*";
|
||||
else if (h != NULL)
|
||||
name = h->root.root.string;
|
||||
name = NULL;
|
||||
else
|
||||
{
|
||||
name = _bfd_coff_internal_syment_name (input_bfd, sym, buf);
|
||||
|
@ -704,8 +704,9 @@ coff_tic80_relocate_section (output_bfd, info, input_bfd,
|
|||
}
|
||||
|
||||
if (! ((*info->callbacks->reloc_overflow)
|
||||
(info, name, howto->name, (bfd_vma) 0, input_bfd,
|
||||
input_section, rel->r_vaddr - input_section->vma)))
|
||||
(info, (h ? &h->root : NULL), name, howto->name,
|
||||
(bfd_vma) 0, input_bfd, input_section,
|
||||
rel->r_vaddr - input_section->vma)))
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -324,7 +324,8 @@ w65_reloc16_extra_cases (abfd, link_info, link_order, reloc, data, src_ptr,
|
|||
if (gap < -128 || gap > 127)
|
||||
{
|
||||
if (! ((*link_info->callbacks->reloc_overflow)
|
||||
(link_info, bfd_asymbol_name (*reloc->sym_ptr_ptr),
|
||||
(link_info, NULL,
|
||||
bfd_asymbol_name (*reloc->sym_ptr_ptr),
|
||||
reloc->howto->name, reloc->addend, input_section->owner,
|
||||
input_section, reloc->address)))
|
||||
abort ();
|
||||
|
@ -348,7 +349,8 @@ w65_reloc16_extra_cases (abfd, link_info, link_order, reloc, data, src_ptr,
|
|||
if ((gap & 0xf0000) != (dot & 0xf0000))
|
||||
{
|
||||
if (! ((*link_info->callbacks->reloc_overflow)
|
||||
(link_info, bfd_asymbol_name (*reloc->sym_ptr_ptr),
|
||||
(link_info, NULL,
|
||||
bfd_asymbol_name (*reloc->sym_ptr_ptr),
|
||||
reloc->howto->name, reloc->addend, input_section->owner,
|
||||
input_section, reloc->address)))
|
||||
abort ();
|
||||
|
|
|
@ -233,7 +233,8 @@ extra_case (bfd *in_abfd,
|
|||
if (gap > 128 || gap < -128)
|
||||
{
|
||||
if (! ((*link_info->callbacks->reloc_overflow)
|
||||
(link_info, bfd_asymbol_name (*reloc->sym_ptr_ptr),
|
||||
(link_info, NULL,
|
||||
bfd_asymbol_name (*reloc->sym_ptr_ptr),
|
||||
reloc->howto->name, reloc->addend, input_section->owner,
|
||||
input_section, reloc->address)))
|
||||
abort ();
|
||||
|
@ -261,7 +262,8 @@ extra_case (bfd *in_abfd,
|
|||
if (gap > 0 || gap < -127)
|
||||
{
|
||||
if (! ((*link_info->callbacks->reloc_overflow)
|
||||
(link_info, bfd_asymbol_name (*reloc->sym_ptr_ptr),
|
||||
(link_info, NULL,
|
||||
bfd_asymbol_name (*reloc->sym_ptr_ptr),
|
||||
reloc->howto->name, reloc->addend, input_section->owner,
|
||||
input_section, reloc->address)))
|
||||
abort ();
|
||||
|
@ -288,7 +290,8 @@ extra_case (bfd *in_abfd,
|
|||
if (gap > 4096 || gap < -4095)
|
||||
{
|
||||
if (! ((*link_info->callbacks->reloc_overflow)
|
||||
(link_info, bfd_asymbol_name (*reloc->sym_ptr_ptr),
|
||||
(link_info, NULL,
|
||||
bfd_asymbol_name (*reloc->sym_ptr_ptr),
|
||||
reloc->howto->name, reloc->addend, input_section->owner,
|
||||
input_section, reloc->address)))
|
||||
abort ();
|
||||
|
@ -314,7 +317,8 @@ extra_case (bfd *in_abfd,
|
|||
if (gap > 32767 || gap < -32768)
|
||||
{
|
||||
if (! ((*link_info->callbacks->reloc_overflow)
|
||||
(link_info, bfd_asymbol_name (*reloc->sym_ptr_ptr),
|
||||
(link_info, NULL,
|
||||
bfd_asymbol_name (*reloc->sym_ptr_ptr),
|
||||
reloc->howto->name, reloc->addend, input_section->owner,
|
||||
input_section, reloc->address)))
|
||||
abort ();
|
||||
|
|
|
@ -1335,7 +1335,7 @@ xcoff64_ppc_relocate_section (output_bfd, info, input_bfd,
|
|||
}
|
||||
else if (h != NULL)
|
||||
{
|
||||
name = h->root.root.string;
|
||||
name = NULL;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -1346,8 +1346,9 @@ xcoff64_ppc_relocate_section (output_bfd, info, input_bfd,
|
|||
sprintf (reloc_type_name, "0x%02x", rel->r_type);
|
||||
|
||||
if (! ((*info->callbacks->reloc_overflow)
|
||||
(info, name, reloc_type_name, (bfd_vma) 0, input_bfd,
|
||||
input_section, rel->r_vaddr - input_section->vma)))
|
||||
(info, (h ? &h->root : NULL), name, reloc_type_name,
|
||||
(bfd_vma) 0, input_bfd, input_section,
|
||||
rel->r_vaddr - input_section->vma)))
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
|
|
@ -2735,7 +2735,7 @@ _bfd_coff_reloc_link_order (bfd *output_bfd,
|
|||
abort ();
|
||||
case bfd_reloc_overflow:
|
||||
if (! ((*finfo->info->callbacks->reloc_overflow)
|
||||
(finfo->info,
|
||||
(finfo->info, NULL,
|
||||
(link_order->type == bfd_section_reloc_link_order
|
||||
? bfd_section_name (output_bfd,
|
||||
link_order->u.reloc.p->u.section)
|
||||
|
@ -3016,7 +3016,7 @@ _bfd_coff_generic_relocate_section (bfd *output_bfd,
|
|||
if (symndx == -1)
|
||||
name = "*ABS*";
|
||||
else if (h != NULL)
|
||||
name = h->root.root.string;
|
||||
name = NULL;
|
||||
else
|
||||
{
|
||||
name = _bfd_coff_internal_syment_name (input_bfd, sym, buf);
|
||||
|
@ -3025,8 +3025,9 @@ _bfd_coff_generic_relocate_section (bfd *output_bfd,
|
|||
}
|
||||
|
||||
if (! ((*info->callbacks->reloc_overflow)
|
||||
(info, name, howto->name, (bfd_vma) 0, input_bfd,
|
||||
input_section, rel->r_vaddr - input_section->vma)))
|
||||
(info, (h ? &h->root : NULL), name, howto->name,
|
||||
(bfd_vma) 0, input_bfd, input_section,
|
||||
rel->r_vaddr - input_section->vma)))
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4697,7 +4697,7 @@ ecoff_reloc_link_order (output_bfd, info, output_section, link_order)
|
|||
abort ();
|
||||
case bfd_reloc_overflow:
|
||||
if (! ((*info->callbacks->reloc_overflow)
|
||||
(info,
|
||||
(info, NULL,
|
||||
(link_order->type == bfd_section_reloc_link_order
|
||||
? bfd_section_name (output_bfd, section)
|
||||
: link_order->u.reloc.p->u.name),
|
||||
|
|
|
@ -1338,7 +1338,6 @@ elf_hppa_relocate_section (bfd *output_bfd,
|
|||
asection *sym_sec;
|
||||
bfd_vma relocation;
|
||||
bfd_reloc_status_type r;
|
||||
const char *sym_name;
|
||||
const char *dyn_name;
|
||||
char *dynh_buf = NULL;
|
||||
size_t dynh_buflen = 0;
|
||||
|
@ -1463,19 +1462,6 @@ elf_hppa_relocate_section (bfd *output_bfd,
|
|||
}
|
||||
}
|
||||
|
||||
if (h != NULL)
|
||||
sym_name = h->root.root.string;
|
||||
else
|
||||
{
|
||||
sym_name = bfd_elf_string_from_elf_section (input_bfd,
|
||||
symtab_hdr->sh_link,
|
||||
sym->st_name);
|
||||
if (sym_name == NULL)
|
||||
return FALSE;
|
||||
if (*sym_name == '\0')
|
||||
sym_name = bfd_section_name (input_bfd, sym_sec);
|
||||
}
|
||||
|
||||
r = elf_hppa_final_link_relocate (rel, input_bfd, output_bfd,
|
||||
input_section, contents,
|
||||
relocation, info, sym_sec,
|
||||
|
@ -1489,9 +1475,25 @@ elf_hppa_relocate_section (bfd *output_bfd,
|
|||
abort ();
|
||||
case bfd_reloc_overflow:
|
||||
{
|
||||
const char *sym_name;
|
||||
|
||||
if (h != NULL)
|
||||
sym_name = NULL;
|
||||
else
|
||||
{
|
||||
sym_name = bfd_elf_string_from_elf_section (input_bfd,
|
||||
symtab_hdr->sh_link,
|
||||
sym->st_name);
|
||||
if (sym_name == NULL)
|
||||
return FALSE;
|
||||
if (*sym_name == '\0')
|
||||
sym_name = bfd_section_name (input_bfd, sym_sec);
|
||||
}
|
||||
|
||||
if (!((*info->callbacks->reloc_overflow)
|
||||
(info, sym_name, howto->name, (bfd_vma) 0,
|
||||
input_bfd, input_section, rel->r_offset)))
|
||||
(info, (h ? &h->root : NULL), sym_name,
|
||||
howto->name, (bfd_vma) 0, input_bfd,
|
||||
input_section, rel->r_offset)))
|
||||
return FALSE;
|
||||
}
|
||||
break;
|
||||
|
|
|
@ -410,8 +410,9 @@ mn10200_elf_relocate_section (output_bfd, info, input_bfd, input_section,
|
|||
{
|
||||
case bfd_reloc_overflow:
|
||||
if (! ((*info->callbacks->reloc_overflow)
|
||||
(info, name, howto->name, (bfd_vma) 0,
|
||||
input_bfd, input_section, rel->r_offset)))
|
||||
(info, (h ? &h->root : NULL), name, howto->name,
|
||||
(bfd_vma) 0, input_bfd, input_section,
|
||||
rel->r_offset)))
|
||||
return FALSE;
|
||||
break;
|
||||
|
||||
|
|
|
@ -1510,8 +1510,9 @@ mn10300_elf_relocate_section (output_bfd, info, input_bfd, input_section,
|
|||
{
|
||||
case bfd_reloc_overflow:
|
||||
if (! ((*info->callbacks->reloc_overflow)
|
||||
(info, name, howto->name, (bfd_vma) 0,
|
||||
input_bfd, input_section, rel->r_offset)))
|
||||
(info, (h ? &h->root.root : NULL), name,
|
||||
howto->name, (bfd_vma) 0, input_bfd,
|
||||
input_section, rel->r_offset)))
|
||||
return FALSE;
|
||||
break;
|
||||
|
||||
|
|
|
@ -2265,8 +2265,9 @@ elf32_arm_relocate_section (bfd * output_bfd,
|
|||
if ((! h ||
|
||||
h->root.type != bfd_link_hash_undefined)
|
||||
&& (!((*info->callbacks->reloc_overflow)
|
||||
(info, name, howto->name, (bfd_vma) 0,
|
||||
input_bfd, input_section, rel->r_offset))))
|
||||
(info, (h ? &h->root : NULL), name, howto->name,
|
||||
(bfd_vma) 0, input_bfd, input_section,
|
||||
rel->r_offset))))
|
||||
return FALSE;
|
||||
break;
|
||||
|
||||
|
|
|
@ -736,7 +736,7 @@ elf32_avr_relocate_section (output_bfd, info, input_bfd, input_section,
|
|||
struct elf_link_hash_entry * h;
|
||||
bfd_vma relocation;
|
||||
bfd_reloc_status_type r;
|
||||
const char * name = NULL;
|
||||
const char * name;
|
||||
int r_type;
|
||||
|
||||
/* This is a final link. */
|
||||
|
@ -765,6 +765,8 @@ elf32_avr_relocate_section (output_bfd, info, input_bfd, input_section,
|
|||
r_symndx, symtab_hdr, sym_hashes,
|
||||
h, sec, relocation,
|
||||
unresolved_reloc, warned);
|
||||
|
||||
name = h->root.root.string;
|
||||
}
|
||||
|
||||
r = avr_final_link_relocate (howto, input_bfd, input_section,
|
||||
|
@ -778,7 +780,8 @@ elf32_avr_relocate_section (output_bfd, info, input_bfd, input_section,
|
|||
{
|
||||
case bfd_reloc_overflow:
|
||||
r = info->callbacks->reloc_overflow
|
||||
(info, name, howto->name, (bfd_vma) 0,
|
||||
(info, (h ? &h->root : NULL),
|
||||
name, howto->name, (bfd_vma) 0,
|
||||
input_bfd, input_section, rel->r_offset);
|
||||
break;
|
||||
|
||||
|
|
|
@ -754,8 +754,9 @@ elf32_cr16c_relocate_section (bfd *output_bfd,
|
|||
{
|
||||
case bfd_reloc_overflow:
|
||||
if (!((*info->callbacks->reloc_overflow)
|
||||
(info, name, howto->name, (bfd_vma) 0,
|
||||
input_bfd, input_section, rel->r_offset)))
|
||||
(info, (h ? &h->root : NULL), name, howto->name,
|
||||
(bfd_vma) 0, input_bfd, input_section,
|
||||
rel->r_offset)))
|
||||
return FALSE;
|
||||
break;
|
||||
|
||||
|
|
|
@ -1357,8 +1357,8 @@ cris_elf_relocate_section (output_bfd, info, input_bfd, input_section,
|
|||
{
|
||||
case bfd_reloc_overflow:
|
||||
r = info->callbacks->reloc_overflow
|
||||
(info, symname, howto->name, (bfd_vma) 0,
|
||||
input_bfd, input_section, rel->r_offset);
|
||||
(info, (h ? &h->root : NULL), symname, howto->name,
|
||||
(bfd_vma) 0, input_bfd, input_section, rel->r_offset);
|
||||
break;
|
||||
|
||||
case bfd_reloc_undefined:
|
||||
|
|
|
@ -868,8 +868,9 @@ elf32_crx_relocate_section (bfd *output_bfd, struct bfd_link_info *info,
|
|||
{
|
||||
case bfd_reloc_overflow:
|
||||
if (!((*info->callbacks->reloc_overflow)
|
||||
(info, name, howto->name, (bfd_vma) 0,
|
||||
input_bfd, input_section, rel->r_offset)))
|
||||
(info, (h ? &h->root : NULL), name, howto->name,
|
||||
(bfd_vma) 0, input_bfd, input_section,
|
||||
rel->r_offset)))
|
||||
return FALSE;
|
||||
break;
|
||||
|
||||
|
|
|
@ -547,8 +547,9 @@ elf32_d10v_relocate_section (output_bfd, info, input_bfd, input_section,
|
|||
{
|
||||
case bfd_reloc_overflow:
|
||||
if (!((*info->callbacks->reloc_overflow)
|
||||
(info, name, howto->name, (bfd_vma) 0,
|
||||
input_bfd, input_section, rel->r_offset)))
|
||||
(info, (h ? &h->root : NULL), name, howto->name,
|
||||
(bfd_vma) 0, input_bfd, input_section,
|
||||
rel->r_offset)))
|
||||
return FALSE;
|
||||
break;
|
||||
|
||||
|
|
|
@ -532,7 +532,7 @@ fr30_elf_relocate_section (output_bfd, info, input_bfd, input_section,
|
|||
struct elf_link_hash_entry *h;
|
||||
bfd_vma relocation;
|
||||
bfd_reloc_status_type r;
|
||||
const char *name = NULL;
|
||||
const char *name;
|
||||
int r_type;
|
||||
|
||||
r_type = ELF32_R_TYPE (rel->r_info);
|
||||
|
@ -572,6 +572,8 @@ fr30_elf_relocate_section (output_bfd, info, input_bfd, input_section,
|
|||
r_symndx, symtab_hdr, sym_hashes,
|
||||
h, sec, relocation,
|
||||
unresolved_reloc, warned);
|
||||
|
||||
name = h->root.root.string;
|
||||
}
|
||||
|
||||
r = fr30_final_link_relocate (howto, input_bfd, input_section,
|
||||
|
@ -585,8 +587,8 @@ fr30_elf_relocate_section (output_bfd, info, input_bfd, input_section,
|
|||
{
|
||||
case bfd_reloc_overflow:
|
||||
r = info->callbacks->reloc_overflow
|
||||
(info, name, howto->name, (bfd_vma) 0,
|
||||
input_bfd, input_section, rel->r_offset);
|
||||
(info, (h ? &h->root : NULL), name, howto->name,
|
||||
(bfd_vma) 0, input_bfd, input_section, rel->r_offset);
|
||||
break;
|
||||
|
||||
case bfd_reloc_undefined:
|
||||
|
|
|
@ -2544,8 +2544,8 @@ elf32_frv_relocate_section (output_bfd, info, input_bfd, input_section,
|
|||
{
|
||||
case bfd_reloc_overflow:
|
||||
r = info->callbacks->reloc_overflow
|
||||
(info, name, howto->name, (bfd_vma) 0,
|
||||
input_bfd, input_section, rel->r_offset);
|
||||
(info, (h ? &h->root : NULL), name, howto->name,
|
||||
(bfd_vma) 0, input_bfd, input_section, rel->r_offset);
|
||||
break;
|
||||
|
||||
case bfd_reloc_undefined:
|
||||
|
|
|
@ -477,8 +477,9 @@ elf32_h8_relocate_section (bfd *output_bfd, struct bfd_link_info *info,
|
|||
{
|
||||
case bfd_reloc_overflow:
|
||||
if (! ((*info->callbacks->reloc_overflow)
|
||||
(info, name, howto->name, (bfd_vma) 0,
|
||||
input_bfd, input_section, rel->r_offset)))
|
||||
(info, (h ? &h->root : NULL), name, howto->name,
|
||||
(bfd_vma) 0, input_bfd, input_section,
|
||||
rel->r_offset)))
|
||||
return FALSE;
|
||||
break;
|
||||
|
||||
|
|
|
@ -3819,8 +3819,8 @@ elf32_hppa_relocate_section (bfd *output_bfd,
|
|||
else
|
||||
{
|
||||
if (!((*info->callbacks->reloc_overflow)
|
||||
(info, sym_name, howto->name, 0, input_bfd, input_section,
|
||||
rel->r_offset)))
|
||||
(info, (h ? &h->elf.root : NULL), sym_name, howto->name,
|
||||
(bfd_vma) 0, input_bfd, input_section, rel->r_offset)))
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1438,7 +1438,7 @@ i370_elf_relocate_section (output_bfd, info, input_bfd, input_section,
|
|||
const char *name;
|
||||
|
||||
if (h != NULL)
|
||||
name = h->root.root.string;
|
||||
name = NULL;
|
||||
else
|
||||
{
|
||||
name = bfd_elf_string_from_elf_section (input_bfd,
|
||||
|
@ -1452,6 +1452,7 @@ i370_elf_relocate_section (output_bfd, info, input_bfd, input_section,
|
|||
}
|
||||
|
||||
(*info->callbacks->reloc_overflow) (info,
|
||||
(h ? &h->root : NULL),
|
||||
name,
|
||||
howto->name,
|
||||
(bfd_vma) 0,
|
||||
|
|
|
@ -2941,8 +2941,9 @@ elf_i386_relocate_section (bfd *output_bfd,
|
|||
if (r == bfd_reloc_overflow)
|
||||
{
|
||||
if (! ((*info->callbacks->reloc_overflow)
|
||||
(info, name, howto->name, 0,
|
||||
input_bfd, input_section, rel->r_offset)))
|
||||
(info, (h ? &h->root : NULL), name, howto->name,
|
||||
(bfd_vma) 0, input_bfd, input_section,
|
||||
rel->r_offset)))
|
||||
return FALSE;
|
||||
}
|
||||
else
|
||||
|
|
|
@ -1183,8 +1183,8 @@ elf32_i860_relocate_section (bfd *output_bfd ATTRIBUTE_UNUSED,
|
|||
{
|
||||
case bfd_reloc_overflow:
|
||||
r = info->callbacks->reloc_overflow
|
||||
(info, name, howto->name, (bfd_vma) 0,
|
||||
input_bfd, input_section, rel->r_offset);
|
||||
(info, (h ? &h->root : NULL), name, howto->name,
|
||||
(bfd_vma) 0, input_bfd, input_section, rel->r_offset);
|
||||
break;
|
||||
|
||||
case bfd_reloc_undefined:
|
||||
|
|
|
@ -1545,8 +1545,8 @@ ip2k_elf_relocate_section (output_bfd, info, input_bfd, input_section,
|
|||
{
|
||||
case bfd_reloc_overflow:
|
||||
r = info->callbacks->reloc_overflow
|
||||
(info, name, howto->name, (bfd_vma) 0,
|
||||
input_bfd, input_section, rel->r_offset);
|
||||
(info, (h ? &h->root : NULL), name, howto->name,
|
||||
(bfd_vma) 0, input_bfd, input_section, rel->r_offset);
|
||||
break;
|
||||
|
||||
case bfd_reloc_undefined:
|
||||
|
|
|
@ -653,8 +653,8 @@ iq2000_elf_relocate_section (output_bfd, info, input_bfd, input_section,
|
|||
{
|
||||
case bfd_reloc_overflow:
|
||||
r = info->callbacks->reloc_overflow
|
||||
(info, name, howto->name, (bfd_vma) 0,
|
||||
input_bfd, input_section, rel->r_offset);
|
||||
(info, (h ? &h->root : NULL), name, howto->name,
|
||||
(bfd_vma) 0, input_bfd, input_section, rel->r_offset);
|
||||
break;
|
||||
|
||||
case bfd_reloc_undefined:
|
||||
|
|
|
@ -3236,8 +3236,8 @@ m32r_elf_relocate_section (output_bfd, info, input_bfd, input_section,
|
|||
{
|
||||
case bfd_reloc_overflow:
|
||||
if (! ((*info->callbacks->reloc_overflow)
|
||||
(info, name, howto->name, (bfd_vma) 0,
|
||||
input_bfd, input_section, offset)))
|
||||
(info, (h ? &h->root : NULL), name, howto->name,
|
||||
(bfd_vma) 0, input_bfd, input_section, offset)))
|
||||
return FALSE;
|
||||
break;
|
||||
|
||||
|
|
|
@ -1173,7 +1173,7 @@ elf32_m68hc11_relocate_section (bfd *output_bfd ATTRIBUTE_UNUSED,
|
|||
{
|
||||
case bfd_reloc_overflow:
|
||||
if (!((*info->callbacks->reloc_overflow)
|
||||
(info, name, howto->name, (bfd_vma) 0,
|
||||
(info, NULL, name, howto->name, (bfd_vma) 0,
|
||||
input_bfd, input_section, rel->r_offset)))
|
||||
return FALSE;
|
||||
break;
|
||||
|
|
|
@ -1731,8 +1731,9 @@ elf_m68k_relocate_section (output_bfd, info, input_bfd, input_section,
|
|||
if (r == bfd_reloc_overflow)
|
||||
{
|
||||
if (!(info->callbacks->reloc_overflow
|
||||
(info, name, howto->name, (bfd_vma) 0,
|
||||
input_bfd, input_section, rel->r_offset)))
|
||||
(info, (h ? &h->root : NULL), name, howto->name,
|
||||
(bfd_vma) 0, input_bfd, input_section,
|
||||
rel->r_offset)))
|
||||
return FALSE;
|
||||
}
|
||||
else
|
||||
|
|
|
@ -520,7 +520,7 @@ mcore_elf_relocate_section (output_bfd, info, input_bfd, input_section,
|
|||
const char * name;
|
||||
|
||||
if (h != NULL)
|
||||
name = h->root.root.string;
|
||||
name = NULL;
|
||||
else
|
||||
{
|
||||
name = bfd_elf_string_from_elf_section
|
||||
|
@ -534,8 +534,8 @@ mcore_elf_relocate_section (output_bfd, info, input_bfd, input_section,
|
|||
}
|
||||
|
||||
(*info->callbacks->reloc_overflow)
|
||||
(info, name, howto->name, (bfd_vma) 0, input_bfd, input_section,
|
||||
offset);
|
||||
(info, (h ? &h->root : NULL), name, howto->name,
|
||||
(bfd_vma) 0, input_bfd, input_section, offset);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -489,8 +489,9 @@ elf32_msp430_relocate_section (bfd * output_bfd ATTRIBUTE_UNUSED,
|
|||
{
|
||||
case bfd_reloc_overflow:
|
||||
r = info->callbacks->reloc_overflow
|
||||
(info, name, howto->name, (bfd_vma) 0,
|
||||
input_bfd, input_section, rel->r_offset);
|
||||
(info, (h ? &h->root : NULL), name, howto->name,
|
||||
(bfd_vma) 0, input_bfd, input_section,
|
||||
rel->r_offset);
|
||||
break;
|
||||
|
||||
case bfd_reloc_undefined:
|
||||
|
|
|
@ -402,8 +402,8 @@ openrisc_elf_relocate_section (output_bfd, info, input_bfd, input_section,
|
|||
{
|
||||
case bfd_reloc_overflow:
|
||||
r = info->callbacks->reloc_overflow
|
||||
(info, name, howto->name, (bfd_vma) 0,
|
||||
input_bfd, input_section, rel->r_offset);
|
||||
(info, (h ? &h->root : NULL), name, howto->name,
|
||||
(bfd_vma) 0, input_bfd, input_section, rel->r_offset);
|
||||
break;
|
||||
|
||||
case bfd_reloc_undefined:
|
||||
|
|
|
@ -5746,6 +5746,7 @@ ppc_elf_relocate_section (bfd *output_bfd,
|
|||
}
|
||||
|
||||
if (! (*info->callbacks->reloc_overflow) (info,
|
||||
(h ? &h->root : NULL),
|
||||
sym_name,
|
||||
howto->name,
|
||||
rel->r_addend,
|
||||
|
|
|
@ -3029,8 +3029,9 @@ elf_s390_relocate_section (output_bfd, info, input_bfd, input_section,
|
|||
{
|
||||
|
||||
if (! ((*info->callbacks->reloc_overflow)
|
||||
(info, name, howto->name, (bfd_vma) 0,
|
||||
input_bfd, input_section, rel->r_offset)))
|
||||
(info, (h ? &h->root : NULL), name, howto->name,
|
||||
(bfd_vma) 0, input_bfd, input_section,
|
||||
rel->r_offset)))
|
||||
return FALSE;
|
||||
}
|
||||
else
|
||||
|
|
|
@ -5848,7 +5848,7 @@ sh_elf_relocate_section (bfd *output_bfd, struct bfd_link_info *info,
|
|||
const char *name;
|
||||
|
||||
if (h != NULL)
|
||||
name = h->root.root.string;
|
||||
name = NULL;
|
||||
else
|
||||
{
|
||||
name = (bfd_elf_string_from_elf_section
|
||||
|
@ -5859,8 +5859,9 @@ sh_elf_relocate_section (bfd *output_bfd, struct bfd_link_info *info,
|
|||
name = bfd_section_name (input_bfd, sec);
|
||||
}
|
||||
if (! ((*info->callbacks->reloc_overflow)
|
||||
(info, name, howto->name, (bfd_vma) 0,
|
||||
input_bfd, input_section, rel->r_offset)))
|
||||
(info, (h ? &h->root : NULL), name, howto->name,
|
||||
(bfd_vma) 0, input_bfd, input_section,
|
||||
rel->r_offset)))
|
||||
return FALSE;
|
||||
}
|
||||
break;
|
||||
|
|
|
@ -3014,7 +3014,7 @@ elf32_sparc_relocate_section (output_bfd, info, input_bfd, input_section,
|
|||
const char *name;
|
||||
|
||||
if (h != NULL)
|
||||
name = h->root.root.string;
|
||||
name = NULL;
|
||||
else
|
||||
{
|
||||
name = bfd_elf_string_from_elf_section (input_bfd,
|
||||
|
@ -3026,8 +3026,9 @@ elf32_sparc_relocate_section (output_bfd, info, input_bfd, input_section,
|
|||
name = bfd_section_name (input_bfd, sec);
|
||||
}
|
||||
if (! ((*info->callbacks->reloc_overflow)
|
||||
(info, name, howto->name, (bfd_vma) 0,
|
||||
input_bfd, input_section, rel->r_offset)))
|
||||
(info, (h ? &h->root : NULL), name, howto->name,
|
||||
(bfd_vma) 0, input_bfd, input_section,
|
||||
rel->r_offset)))
|
||||
return FALSE;
|
||||
}
|
||||
break;
|
||||
|
|
|
@ -1729,8 +1729,9 @@ v850_elf_relocate_section (output_bfd, info, input_bfd, input_section,
|
|||
{
|
||||
case bfd_reloc_overflow:
|
||||
if (! ((*info->callbacks->reloc_overflow)
|
||||
(info, name, howto->name, (bfd_vma) 0,
|
||||
input_bfd, input_section, rel->r_offset)))
|
||||
(info, (h ? &h->root : NULL), name, howto->name,
|
||||
(bfd_vma) 0, input_bfd, input_section,
|
||||
rel->r_offset)))
|
||||
return FALSE;
|
||||
break;
|
||||
|
||||
|
|
|
@ -1814,7 +1814,7 @@ elf_vax_relocate_section (output_bfd, info, input_bfd, input_section,
|
|||
const char *name;
|
||||
|
||||
if (h != NULL)
|
||||
name = h->root.root.string;
|
||||
name = NULL;
|
||||
else
|
||||
{
|
||||
name = bfd_elf_string_from_elf_section (input_bfd,
|
||||
|
@ -1826,8 +1826,9 @@ elf_vax_relocate_section (output_bfd, info, input_bfd, input_section,
|
|||
name = bfd_section_name (input_bfd, sec);
|
||||
}
|
||||
if (!(info->callbacks->reloc_overflow
|
||||
(info, name, howto->name, (bfd_vma) 0,
|
||||
input_bfd, input_section, rel->r_offset)))
|
||||
(info, (h ? &h->root : NULL), name, howto->name,
|
||||
(bfd_vma) 0, input_bfd, input_section,
|
||||
rel->r_offset)))
|
||||
return FALSE;
|
||||
}
|
||||
break;
|
||||
|
|
|
@ -940,8 +940,8 @@ xstormy16_elf_relocate_section (output_bfd, info, input_bfd, input_section,
|
|||
{
|
||||
case bfd_reloc_overflow:
|
||||
r = info->callbacks->reloc_overflow
|
||||
(info, name, howto->name, (bfd_vma) 0,
|
||||
input_bfd, input_section, rel->r_offset);
|
||||
(info, (h ? &h->root : NULL), name, howto->name,
|
||||
(bfd_vma) 0, input_bfd, input_section, rel->r_offset);
|
||||
break;
|
||||
|
||||
case bfd_reloc_undefined:
|
||||
|
|
|
@ -4802,7 +4802,7 @@ elf64_alpha_relocate_section (output_bfd, info, input_bfd, input_section,
|
|||
break;
|
||||
|
||||
if (h != NULL)
|
||||
name = h->root.root.root.string;
|
||||
name = NULL;
|
||||
else
|
||||
{
|
||||
name = (bfd_elf_string_from_elf_section
|
||||
|
@ -4813,8 +4813,9 @@ elf64_alpha_relocate_section (output_bfd, info, input_bfd, input_section,
|
|||
name = bfd_section_name (input_bfd, sec);
|
||||
}
|
||||
if (! ((*info->callbacks->reloc_overflow)
|
||||
(info, name, howto->name, (bfd_vma) 0,
|
||||
input_bfd, input_section, rel->r_offset)))
|
||||
(info, (h ? &h->root.root : NULL), name, howto->name,
|
||||
(bfd_vma) 0, input_bfd, input_section,
|
||||
rel->r_offset)))
|
||||
ret_val = FALSE;
|
||||
}
|
||||
break;
|
||||
|
|
|
@ -1500,8 +1500,8 @@ mmix_elf_relocate_section (output_bfd, info, input_bfd, input_section,
|
|||
{
|
||||
case bfd_reloc_overflow:
|
||||
check_ok = info->callbacks->reloc_overflow
|
||||
(info, name, howto->name, (bfd_vma) 0,
|
||||
input_bfd, input_section, rel->r_offset);
|
||||
(info, (h ? &h->root : NULL), name, howto->name,
|
||||
(bfd_vma) 0, input_bfd, input_section, rel->r_offset);
|
||||
break;
|
||||
|
||||
case bfd_reloc_undefined:
|
||||
|
|
|
@ -9963,7 +9963,8 @@ ppc64_elf_relocate_section (bfd *output_bfd,
|
|||
}
|
||||
|
||||
if (!((*info->callbacks->reloc_overflow)
|
||||
(info, sym_name, ppc64_elf_howto_table[r_type]->name,
|
||||
(info, (h ? &h->elf.root : NULL), sym_name,
|
||||
ppc64_elf_howto_table[r_type]->name,
|
||||
rel->r_addend, input_bfd, input_section, rel->r_offset)))
|
||||
return FALSE;
|
||||
}
|
||||
|
|
|
@ -3026,8 +3026,9 @@ elf_s390_relocate_section (output_bfd, info, input_bfd, input_section,
|
|||
{
|
||||
|
||||
if (! ((*info->callbacks->reloc_overflow)
|
||||
(info, name, howto->name, (bfd_vma) 0,
|
||||
input_bfd, input_section, rel->r_offset)))
|
||||
(info, (h ? &h->root : NULL), name, howto->name,
|
||||
(bfd_vma) 0, input_bfd, input_section,
|
||||
rel->r_offset)))
|
||||
return FALSE;
|
||||
}
|
||||
else
|
||||
|
|
|
@ -2130,7 +2130,7 @@ sh_elf64_relocate_section (bfd *output_bfd ATTRIBUTE_UNUSED,
|
|||
const char *name;
|
||||
|
||||
if (h != NULL)
|
||||
name = h->root.root.string;
|
||||
name = NULL;
|
||||
else
|
||||
{
|
||||
name = (bfd_elf_string_from_elf_section
|
||||
|
@ -2141,8 +2141,9 @@ sh_elf64_relocate_section (bfd *output_bfd ATTRIBUTE_UNUSED,
|
|||
name = bfd_section_name (input_bfd, sec);
|
||||
}
|
||||
if (! ((*info->callbacks->reloc_overflow)
|
||||
(info, name, howto->name, (bfd_vma) 0,
|
||||
input_bfd, input_section, rel->r_offset)))
|
||||
(info, (h ? &h->root : NULL), name, howto->name,
|
||||
(bfd_vma) 0, input_bfd, input_section,
|
||||
rel->r_offset)))
|
||||
return FALSE;
|
||||
}
|
||||
break;
|
||||
|
|
|
@ -2652,7 +2652,7 @@ sparc64_elf_relocate_section (output_bfd, info, input_bfd, input_section,
|
|||
break;
|
||||
}
|
||||
|
||||
name = h->root.root.string;
|
||||
name = NULL;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -2666,8 +2666,9 @@ sparc64_elf_relocate_section (output_bfd, info, input_bfd, input_section,
|
|||
name = bfd_section_name (input_bfd, sec);
|
||||
}
|
||||
if (! ((*info->callbacks->reloc_overflow)
|
||||
(info, name, howto->name, (bfd_vma) 0,
|
||||
input_bfd, input_section, rel->r_offset)))
|
||||
(info, (h ? &h->root : NULL), name, howto->name,
|
||||
(bfd_vma) 0, input_bfd, input_section,
|
||||
rel->r_offset)))
|
||||
return FALSE;
|
||||
}
|
||||
break;
|
||||
|
|
|
@ -2436,8 +2436,9 @@ elf64_x86_64_relocate_section (bfd *output_bfd, struct bfd_link_info *info,
|
|||
continue;
|
||||
|
||||
if (! ((*info->callbacks->reloc_overflow)
|
||||
(info, name, howto->name, (bfd_vma) 0,
|
||||
input_bfd, input_section, rel->r_offset)))
|
||||
(info, (h ? &h->root : NULL), name, howto->name,
|
||||
(bfd_vma) 0, input_bfd, input_section,
|
||||
rel->r_offset)))
|
||||
return FALSE;
|
||||
}
|
||||
else
|
||||
|
|
|
@ -7216,7 +7216,8 @@ elf_reloc_link_order (bfd *output_bfd,
|
|||
else
|
||||
sym_name = link_order->u.reloc.p->u.name;
|
||||
if (! ((*info->callbacks->reloc_overflow)
|
||||
(info, sym_name, howto->name, addend, NULL, NULL, 0)))
|
||||
(info, NULL, sym_name, howto->name, addend, NULL,
|
||||
NULL, (bfd_vma) 0)))
|
||||
{
|
||||
free (buf);
|
||||
return FALSE;
|
||||
|
|
|
@ -4497,7 +4497,7 @@ elfNN_ia64_relocate_section (output_bfd, info, input_bfd, input_section,
|
|||
const char *name;
|
||||
|
||||
if (h)
|
||||
name = h->root.root.string;
|
||||
name = NULL;
|
||||
else
|
||||
{
|
||||
name = bfd_elf_string_from_elf_section (input_bfd,
|
||||
|
@ -4506,10 +4506,10 @@ elfNN_ia64_relocate_section (output_bfd, info, input_bfd, input_section,
|
|||
if (name == NULL)
|
||||
return FALSE;
|
||||
if (*name == '\0')
|
||||
name = bfd_section_name (input_bfd, input_section);
|
||||
name = bfd_section_name (input_bfd, sym_sec);
|
||||
}
|
||||
if (!(*info->callbacks->reloc_overflow) (info, name,
|
||||
howto->name,
|
||||
if (!(*info->callbacks->reloc_overflow) (info, &h->root,
|
||||
name, howto->name,
|
||||
(bfd_vma) 0,
|
||||
input_bfd,
|
||||
input_section,
|
||||
|
|
|
@ -6416,7 +6416,7 @@ _bfd_mips_elf_relocate_section (bfd *output_bfd, struct bfd_link_info *info,
|
|||
{
|
||||
BFD_ASSERT (name != NULL);
|
||||
if (! ((*info->callbacks->reloc_overflow)
|
||||
(info, name, howto->name, 0,
|
||||
(info, NULL, name, howto->name, (bfd_vma) 0,
|
||||
input_bfd, input_section, rel->r_offset)))
|
||||
return FALSE;
|
||||
}
|
||||
|
@ -8020,7 +8020,8 @@ _bfd_elf_mips_get_relocated_section_contents
|
|||
break;
|
||||
case bfd_reloc_overflow:
|
||||
if (!((*link_info->callbacks->reloc_overflow)
|
||||
(link_info, bfd_asymbol_name (*(*parent)->sym_ptr_ptr),
|
||||
(link_info, NULL,
|
||||
bfd_asymbol_name (*(*parent)->sym_ptr_ptr),
|
||||
(*parent)->howto->name, (*parent)->addend,
|
||||
input_bfd, input_section, (*parent)->address)))
|
||||
goto error_return;
|
||||
|
|
|
@ -2529,7 +2529,7 @@ _bfd_generic_reloc_link_order (bfd *abfd,
|
|||
abort ();
|
||||
case bfd_reloc_overflow:
|
||||
if (! ((*info->callbacks->reloc_overflow)
|
||||
(info,
|
||||
(info, NULL,
|
||||
(link_order->type == bfd_section_reloc_link_order
|
||||
? bfd_section_name (abfd, link_order->u.reloc.p->u.section)
|
||||
: link_order->u.reloc.p->u.name),
|
||||
|
|
|
@ -4775,7 +4775,7 @@ fprintf (stderr, "TODO: change the address of the relocation\n");
|
|||
const char *name;
|
||||
|
||||
if (h != NULL)
|
||||
name = h->root.root.string;
|
||||
name = NULL;
|
||||
else if (r_extern)
|
||||
name = strings + GET_WORD (input_bfd,
|
||||
syms[r_index].e_strx);
|
||||
|
@ -4787,8 +4787,9 @@ fprintf (stderr, "TODO: change the address of the relocation\n");
|
|||
name = bfd_section_name (input_bfd, s);
|
||||
}
|
||||
if (! ((*finfo->info->callbacks->reloc_overflow)
|
||||
(finfo->info, name, howto->name,
|
||||
(bfd_vma) 0, input_bfd, input_section, r_addr)))
|
||||
(finfo->info, (h ? &h->root : NULL), name,
|
||||
howto->name, (bfd_vma) 0, input_bfd,
|
||||
input_section, r_addr)))
|
||||
return FALSE;
|
||||
}
|
||||
break;
|
||||
|
@ -4954,7 +4955,7 @@ aout_link_reloc_link_order (finfo, o, p)
|
|||
abort ();
|
||||
case bfd_reloc_overflow:
|
||||
if (! ((*finfo->info->callbacks->reloc_overflow)
|
||||
(finfo->info,
|
||||
(finfo->info, NULL,
|
||||
(p->type == bfd_section_reloc_link_order
|
||||
? bfd_section_name (finfo->output_bfd,
|
||||
pr->u.section)
|
||||
|
|
|
@ -4499,7 +4499,8 @@ bfd_generic_get_relocated_section_contents (bfd *abfd,
|
|||
break;
|
||||
case bfd_reloc_overflow:
|
||||
if (!((*link_info->callbacks->reloc_overflow)
|
||||
(link_info, bfd_asymbol_name (*(*parent)->sym_ptr_ptr),
|
||||
(link_info, NULL,
|
||||
bfd_asymbol_name (*(*parent)->sym_ptr_ptr),
|
||||
(*parent)->howto->name, (*parent)->addend,
|
||||
input_bfd, input_section, (*parent)->address)))
|
||||
goto error_return;
|
||||
|
|
|
@ -48,6 +48,7 @@ simple_dummy_undefined_symbol (struct bfd_link_info *link_info ATTRIBUTE_UNUSED,
|
|||
|
||||
static bfd_boolean
|
||||
simple_dummy_reloc_overflow (struct bfd_link_info *link_info ATTRIBUTE_UNUSED,
|
||||
struct bfd_link_hash_entry *entry ATTRIBUTE_UNUSED,
|
||||
const char *name ATTRIBUTE_UNUSED,
|
||||
const char *reloc_name ATTRIBUTE_UNUSED,
|
||||
bfd_vma addend ATTRIBUTE_UNUSED,
|
||||
|
|
|
@ -6043,7 +6043,7 @@ xcoff_reloc_link_order (output_bfd, finfo, output_section, link_order)
|
|||
abort ();
|
||||
case bfd_reloc_overflow:
|
||||
if (! ((*finfo->info->callbacks->reloc_overflow)
|
||||
(finfo->info, link_order->u.reloc.p->u.name,
|
||||
(finfo->info, NULL, link_order->u.reloc.p->u.name,
|
||||
howto->name, addend, (bfd *) NULL, (asection *) NULL,
|
||||
(bfd_vma) 0)))
|
||||
{
|
||||
|
|
|
@ -1,3 +1,9 @@
|
|||
2004-10-21 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
PR 463
|
||||
* bfdlink.h (bfd_link_callbacks): Add a pointer to struct
|
||||
bfd_link_hash_entry to reloc_overflow.
|
||||
|
||||
2004-10-12 Paul Brook <paul@codesourcery.com>
|
||||
|
||||
* elf/arm.h (EF_ARM_EABI_VER4): Define.
|
||||
|
|
|
@ -481,16 +481,18 @@ struct bfd_link_callbacks
|
|||
bfd_boolean (*undefined_symbol)
|
||||
(struct bfd_link_info *, const char *name, bfd *abfd,
|
||||
asection *section, bfd_vma address, bfd_boolean fatal);
|
||||
/* A function which is called when a reloc overflow occurs. NAME is
|
||||
the name of the symbol or section the reloc is against,
|
||||
RELOC_NAME is the name of the relocation, and ADDEND is any
|
||||
addend that is used. ABFD, SECTION and ADDRESS identify the
|
||||
/* A function which is called when a reloc overflow occurs. ENTRY is
|
||||
the link hash table entry for the symbol the reloc is against.
|
||||
NAME is the name of the local symbol or section the reloc is
|
||||
against, RELOC_NAME is the name of the relocation, and ADDEND is
|
||||
any addend that is used. ABFD, SECTION and ADDRESS identify the
|
||||
location at which the overflow occurs; if this is the result of a
|
||||
bfd_section_reloc_link_order or bfd_symbol_reloc_link_order, then
|
||||
ABFD will be NULL. */
|
||||
bfd_boolean (*reloc_overflow)
|
||||
(struct bfd_link_info *, const char *name, const char *reloc_name,
|
||||
bfd_vma addend, bfd *abfd, asection *section, bfd_vma address);
|
||||
(struct bfd_link_info *, struct bfd_link_hash_entry *entry,
|
||||
const char *name, const char *reloc_name, bfd_vma addend,
|
||||
bfd *abfd, asection *section, bfd_vma address);
|
||||
/* A function which is called when a dangerous reloc is performed.
|
||||
The canonical example is an a29k IHCONST reloc which does not
|
||||
follow an IHIHALF reloc. MESSAGE is an appropriate message.
|
||||
|
|
|
@ -1,3 +1,10 @@
|
|||
2004-10-21 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
PR 463
|
||||
* ldmain.c (reloc_overflow): Accept a pointer to struct
|
||||
bfd_link_hash_entry. Report symbol location for relocation
|
||||
overflow.
|
||||
|
||||
2004-10-21 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* genscripts.sh (libpath.exp): Really generate for first
|
||||
|
|
32
ld/ldmain.c
32
ld/ldmain.c
|
@ -137,8 +137,8 @@ static bfd_boolean undefined_symbol
|
|||
(struct bfd_link_info *, const char *, bfd *, asection *, bfd_vma,
|
||||
bfd_boolean);
|
||||
static bfd_boolean reloc_overflow
|
||||
(struct bfd_link_info *, const char *, const char *, bfd_vma,
|
||||
bfd *, asection *, bfd_vma);
|
||||
(struct bfd_link_info *, struct bfd_link_hash_entry *, const char *,
|
||||
const char *, bfd_vma, bfd *, asection *, bfd_vma);
|
||||
static bfd_boolean reloc_dangerous
|
||||
(struct bfd_link_info *, const char *, bfd *, asection *, bfd_vma);
|
||||
static bfd_boolean unattached_reloc
|
||||
|
@ -1386,6 +1386,7 @@ int overflow_cutoff_limit = 10;
|
|||
|
||||
static bfd_boolean
|
||||
reloc_overflow (struct bfd_link_info *info ATTRIBUTE_UNUSED,
|
||||
struct bfd_link_hash_entry *entry,
|
||||
const char *name,
|
||||
const char *reloc_name,
|
||||
bfd_vma addend,
|
||||
|
@ -1408,7 +1409,32 @@ reloc_overflow (struct bfd_link_info *info ATTRIBUTE_UNUSED,
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
einfo (_(" relocation truncated to fit: %s %T"), reloc_name, name);
|
||||
if (entry)
|
||||
{
|
||||
while (entry->type == bfd_link_hash_indirect
|
||||
|| entry->type == bfd_link_hash_warning)
|
||||
entry = entry->u.i.link;
|
||||
switch (entry->type)
|
||||
{
|
||||
case bfd_link_hash_undefined:
|
||||
case bfd_link_hash_undefweak:
|
||||
einfo (_(" relocation truncated to fit: %s against undefined symbol `%T'"),
|
||||
reloc_name, entry->root.string);
|
||||
break;
|
||||
case bfd_link_hash_defined:
|
||||
case bfd_link_hash_defweak:
|
||||
einfo (_(" relocation truncated to fit: %s against symbol `%T' defined in %A section in %B"),
|
||||
reloc_name, entry->root.string,
|
||||
entry->u.def.section, entry->u.def.section->owner);
|
||||
break;
|
||||
default:
|
||||
abort ();
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
einfo (_(" relocation truncated to fit: %s against `%T'"),
|
||||
reloc_name, name);
|
||||
if (addend != 0)
|
||||
einfo ("+%v", addend);
|
||||
einfo ("\n");
|
||||
|
|
Loading…
Reference in New Issue