* elf32-i386.c (elf_i386_relocate_section): Report some detail on

bfd_reloc_outofrange and similar errors.
This commit is contained in:
Alan Modra
2001-10-15 12:58:48 +00:00
parent 1e370bd243
commit cf5c0c5bc6
2 changed files with 33 additions and 28 deletions

View File

@ -1,5 +1,8 @@
2001-10-15 Alan Modra <amodra@bigpond.net.au> 2001-10-15 Alan Modra <amodra@bigpond.net.au>
* elf32-i386.c (elf_i386_relocate_section): Report some detail on
bfd_reloc_outofrange and similar errors.
* elf.c (_bfd_elf_link_hash_copy_indirect): Test ind->root.type * elf.c (_bfd_elf_link_hash_copy_indirect): Test ind->root.type
rather than ind->weakdef. rather than ind->weakdef.
* elf32-hppa.c (elf32_hppa_copy_indirect_symbol): Likewise. * elf32-hppa.c (elf32_hppa_copy_indirect_symbol): Likewise.

View File

@ -2037,12 +2037,7 @@ elf_i386_relocate_section (output_bfd, info, input_bfd, input_section,
contents, rel->r_offset, contents, rel->r_offset,
relocation, (bfd_vma) 0); relocation, (bfd_vma) 0);
switch (r) if (r != bfd_reloc_ok)
{
case bfd_reloc_ok:
break;
case bfd_reloc_overflow:
{ {
const char *name; const char *name;
@ -2058,17 +2053,24 @@ elf_i386_relocate_section (output_bfd, info, input_bfd, input_section,
if (*name == '\0') if (*name == '\0')
name = bfd_section_name (input_bfd, sec); name = bfd_section_name (input_bfd, sec);
} }
if (r == bfd_reloc_overflow)
{
if (! ((*info->callbacks->reloc_overflow) if (! ((*info->callbacks->reloc_overflow)
(info, name, howto->name, (bfd_vma) 0, (info, name, howto->name, (bfd_vma) 0,
input_bfd, input_section, rel->r_offset))) input_bfd, input_section, rel->r_offset)))
return false; return false;
} }
break; else
{
default: (*_bfd_error_handler)
case bfd_reloc_outofrange: (_("%s(%s+0x%lx): reloc against `%s': error %d"),
abort (); bfd_archive_filename (input_bfd),
break; bfd_get_section_name (input_bfd, input_section),
(long) rel->r_offset, name, (int) r);
return false;
}
} }
} }