aboutsummaryrefslogtreecommitdiff
path: root/bfd/elflink.h
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2002-04-26 12:59:23 +0000
committerAlan Modra <amodra@gmail.com>2002-04-26 12:59:23 +0000
commita50c18456ead8f239ca5af06ad7e418f6659ddce (patch)
tree52f7fd0ff91dc3df53773fd171a1050679671d40 /bfd/elflink.h
parent5868c862e2d178996aa66bf3553a6f59d1516e2e (diff)
downloadgdb-a50c18456ead8f239ca5af06ad7e418f6659ddce.zip
gdb-a50c18456ead8f239ca5af06ad7e418f6659ddce.tar.gz
gdb-a50c18456ead8f239ca5af06ad7e418f6659ddce.tar.bz2
* elflink.h (elf_bfd_final_link): Ensure input bfd class is the
same as the output before calling elf_link_input_bfd.
Diffstat (limited to 'bfd/elflink.h')
-rw-r--r--bfd/elflink.h14
1 files changed, 2 insertions, 12 deletions
diff --git a/bfd/elflink.h b/bfd/elflink.h
index d43d861..06035b3 100644
--- a/bfd/elflink.h
+++ b/bfd/elflink.h
@@ -5347,21 +5347,11 @@ elf_bfd_final_link (abfd, info)
{
for (p = o->link_order_head; p != NULL; p = p->next)
{
- Elf_Internal_Shdr *rhdr;
-
if (p->type == bfd_indirect_link_order
- && (bfd_get_flavour (p->u.indirect.section->owner)
+ && (bfd_get_flavour ((sub = p->u.indirect.section->owner))
== bfd_target_elf_flavour)
- && (((rhdr = &elf_section_data (p->u.indirect.section)->rel_hdr)
- ->sh_entsize == 0)
- || rhdr->sh_entsize == sizeof (Elf_External_Rel)
- || rhdr->sh_entsize == sizeof (Elf_External_Rela))
- && (((rhdr = elf_section_data (p->u.indirect.section)->rel_hdr2)
- == NULL)
- || rhdr->sh_entsize == sizeof (Elf_External_Rel)
- || rhdr->sh_entsize == sizeof (Elf_External_Rela)))
+ && elf_elfheader (sub)->e_ident[EI_CLASS] == bed->s->elfclass)
{
- sub = p->u.indirect.section->owner;
if (! sub->output_has_begun)
{
if (! elf_link_input_bfd (&finfo, sub))