mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-04 07:44:22 +08:00
* elf64-ppc.c (ppc64_elf_info_to_howto): Formatting.
(ppc64_elf_relocate_section): Don't warn about reloc overflow when we've already warned about an undefined symbol. Report more detail on reloc errors.
This commit is contained in:
parent
eb268f46e3
commit
ef60b7ff0e
@ -1,3 +1,10 @@
|
|||||||
|
2002-05-17 Alan Modra <amodra@bigpond.net.au>
|
||||||
|
|
||||||
|
* elf64-ppc.c (ppc64_elf_info_to_howto): Formatting.
|
||||||
|
(ppc64_elf_relocate_section): Don't warn about reloc overflow when
|
||||||
|
we've already warned about an undefined symbol. Report more
|
||||||
|
detail on reloc errors.
|
||||||
|
|
||||||
2002-05-17 Alan Modra <amodra@bigpond.net.au>
|
2002-05-17 Alan Modra <amodra@bigpond.net.au>
|
||||||
|
|
||||||
* acinclude.m4 (AM_INSTALL_LIBBFD): New.
|
* acinclude.m4 (AM_INSTALL_LIBBFD): New.
|
||||||
|
@ -1359,8 +1359,8 @@ ppc64_elf_info_to_howto (abfd, cache_ptr, dst)
|
|||||||
{
|
{
|
||||||
unsigned int type;
|
unsigned int type;
|
||||||
|
|
||||||
|
/* Initialize howto table if needed. */
|
||||||
if (!ppc64_elf_howto_table[R_PPC64_ADDR32])
|
if (!ppc64_elf_howto_table[R_PPC64_ADDR32])
|
||||||
/* Initialize howto table if needed. */
|
|
||||||
ppc_howto_init ();
|
ppc_howto_init ();
|
||||||
|
|
||||||
type = ELF64_R_TYPE (dst->r_info);
|
type = ELF64_R_TYPE (dst->r_info);
|
||||||
@ -5075,6 +5075,7 @@ ppc64_elf_relocate_section (output_bfd, info, input_bfd, input_section,
|
|||||||
unsigned long r_symndx;
|
unsigned long r_symndx;
|
||||||
bfd_vma relocation;
|
bfd_vma relocation;
|
||||||
boolean unresolved_reloc;
|
boolean unresolved_reloc;
|
||||||
|
boolean warned;
|
||||||
long insn;
|
long insn;
|
||||||
struct ppc_stub_hash_entry *stub_entry;
|
struct ppc_stub_hash_entry *stub_entry;
|
||||||
bfd_vma max_br_offset;
|
bfd_vma max_br_offset;
|
||||||
@ -5090,6 +5091,7 @@ ppc64_elf_relocate_section (output_bfd, info, input_bfd, input_section,
|
|||||||
h = (struct elf_link_hash_entry *) 0;
|
h = (struct elf_link_hash_entry *) 0;
|
||||||
sym_name = (const char *) 0;
|
sym_name = (const char *) 0;
|
||||||
unresolved_reloc = false;
|
unresolved_reloc = false;
|
||||||
|
warned = false;
|
||||||
|
|
||||||
if (r_type == R_PPC64_TOC)
|
if (r_type == R_PPC64_TOC)
|
||||||
{
|
{
|
||||||
@ -5146,6 +5148,7 @@ ppc64_elf_relocate_section (output_bfd, info, input_bfd, input_section,
|
|||||||
|| info->no_undefined
|
|| info->no_undefined
|
||||||
|| ELF_ST_VISIBILITY (h->other)))))
|
|| ELF_ST_VISIBILITY (h->other)))))
|
||||||
return false;
|
return false;
|
||||||
|
warned = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -5714,9 +5717,7 @@ ppc64_elf_relocate_section (output_bfd, info, input_bfd, input_section,
|
|||||||
relocation,
|
relocation,
|
||||||
addend);
|
addend);
|
||||||
|
|
||||||
if (r == bfd_reloc_ok)
|
if (r != bfd_reloc_ok)
|
||||||
;
|
|
||||||
else if (r == bfd_reloc_overflow)
|
|
||||||
{
|
{
|
||||||
const char *name;
|
const char *name;
|
||||||
|
|
||||||
@ -5747,13 +5748,25 @@ ppc64_elf_relocate_section (output_bfd, info, input_bfd, input_section,
|
|||||||
name = bfd_section_name (input_bfd, sec);
|
name = bfd_section_name (input_bfd, sec);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! ((*info->callbacks->reloc_overflow)
|
if (r == bfd_reloc_overflow)
|
||||||
(info, name, ppc64_elf_howto_table[(int) r_type]->name,
|
{
|
||||||
(bfd_vma) 0, input_bfd, input_section, offset)))
|
if (warned)
|
||||||
return false;
|
continue;
|
||||||
|
if (!((*info->callbacks->reloc_overflow)
|
||||||
|
(info, name, ppc64_elf_howto_table[(int) r_type]->name,
|
||||||
|
rel->r_addend, input_bfd, input_section, offset)))
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
(*_bfd_error_handler)
|
||||||
|
(_("%s(%s+0x%lx): reloc against `%s': error %d"),
|
||||||
|
bfd_archive_filename (input_bfd),
|
||||||
|
bfd_get_section_name (input_bfd, input_section),
|
||||||
|
(long) rel->r_offset, name, (int) r);
|
||||||
|
ret = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
|
||||||
ret = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
|
Loading…
Reference in New Issue
Block a user