* elflink.c (bfd_elf_final_link): Correct reloc handling for

elf_backend_count_relocs.
	(bfd_elf_discard_info): Print an error if we can't read syms.
This commit is contained in:
Alan Modra 2007-05-07 14:47:28 +00:00
parent b16f296eba
commit 1182cb9397
2 changed files with 19 additions and 5 deletions

View file

@ -1,3 +1,9 @@
2007-05-07 Alan Modra <amodra@bigpond.net.au>
* elflink.c (bfd_elf_final_link): Correct reloc handling for
elf_backend_count_relocs.
(bfd_elf_discard_info): Print an error if we can't read syms.
2007-05-07 Alan Modra <amodra@bigpond.net.au>
* elf32-spu.c (spu_elf_reloc_type_lookup): Return NULL on

View file

@ -9312,13 +9312,18 @@ bfd_elf_final_link (bfd *abfd, struct bfd_link_info *info)
{
Elf_Internal_Rela * relocs;
relocs = _bfd_elf_link_read_relocs (abfd, sec, NULL, NULL,
relocs = _bfd_elf_link_read_relocs (sec->owner, sec,
NULL, NULL,
info->keep_memory);
reloc_count = (*bed->elf_backend_count_relocs) (sec, relocs);
if (relocs != NULL)
{
reloc_count
= (*bed->elf_backend_count_relocs) (sec, relocs);
if (elf_section_data (o)->relocs != relocs)
free (relocs);
if (elf_section_data (sec)->relocs != relocs)
free (relocs);
}
}
if (sec->rawsize > max_contents_size)
@ -11147,7 +11152,10 @@ bfd_elf_discard_info (bfd *output_bfd, struct bfd_link_info *info)
cookie.locsymcount, 0,
NULL, NULL, NULL);
if (cookie.locsyms == NULL)
return FALSE;
{
info->callbacks->einfo (_("%P%X: can not read symbols: %E\n"));
return FALSE;
}
}
if (stab != NULL)