* elflink.c (elf_link_sort_relocs): Don't bomb on unusual sections.
	(_bfd_elf_link_omit_section_dynsym): Formatting.
This commit is contained in:
Alan Modra 2004-10-11 01:13:10 +00:00
parent 0fce082197
commit 1da212d6fb
2 changed files with 15 additions and 2 deletions

View File

@ -1,3 +1,9 @@
2004-10-11 Alan Modra <amodra@bigpond.net.au>
PR 437
* elflink.c (elf_link_sort_relocs): Don't bomb on unusual sections.
(_bfd_elf_link_omit_section_dynsym): Formatting.
2004-10-10 Alan Modra <amodra@bigpond.net.au>
* libbfd-in.h (BFD_ASSERT, BFD_FAIL): Wrap macro body in do while.

View File

@ -629,8 +629,7 @@ _bfd_elf_link_omit_section_dynsym (bfd *output_bfd ATTRIBUTE_UNUSED,
bfd *dynobj = elf_hash_table (info)->dynobj;
if (dynobj != NULL
&& (ip = bfd_get_section_by_name (dynobj, p->name))
!= NULL
&& (ip = bfd_get_section_by_name (dynobj, p->name)) != NULL
&& (ip->flags & SEC_LINKER_CREATED)
&& ip->output_section == p)
return TRUE;
@ -5712,6 +5711,14 @@ elf_link_sort_relocs (bfd *abfd, struct bfd_link_info *info, asection **psec)
bfd_byte *erel, *erelend;
asection *o = lo->u.indirect.section;
if (o->contents == NULL && o->size != 0)
{
/* This is a reloc section that is being handled as a normal
section. See bfd_section_from_shdr. We can't combine
relocs in this case. */
free (sort);
return 0;
}
erel = o->contents;
erelend = o->contents + o->size;
p = sort + o->output_offset / ext_size * sort_elt;