* elflink.h (elf_bfd_final_link): Ensure input bfd class is the
authorAlan Modra <amodra@gmail.com>
Fri, 26 Apr 2002 12:59:23 +0000 (12:59 +0000)
committerAlan Modra <amodra@gmail.com>
Fri, 26 Apr 2002 12:59:23 +0000 (12:59 +0000)
same as the output before calling elf_link_input_bfd.

bfd/ChangeLog
bfd/elflink.h

index 9aff0f9aee77ffc051a7cc1721d8770bedf9355f..5bbce0e8dcd78626c53750a38e0bb81576a2cf5d 100644 (file)
@@ -1,5 +1,8 @@
 2002-04-26  Alan Modra  <amodra@bigpond.net.au>
 
+       * elflink.h (elf_bfd_final_link): Ensure input bfd class is the
+       same as the output before calling elf_link_input_bfd.
+
        * coffcode.h (coff_compute_section_file_positions): Set
        section_tail after shuffling section list.
 
index d43d8612d15edfbfd8332e8df2a6b333d3fc8f58..06035b31beeed603c852163826306286379aaa96 100644 (file)
@@ -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))