PR 6727
authorNick Clifton <nickc@redhat.com>
Tue, 26 Aug 2008 11:11:17 +0000 (11:11 +0000)
committerNick Clifton <nickc@redhat.com>
Tue, 26 Aug 2008 11:11:17 +0000 (11:11 +0000)
   * emultempl/armelf.em (arm_elf_set_bfd_for_interworking): Scan all
   input sections in all input bfds and always select the last
   suitable one, so that interworking stubs are always processed
   after all other input sections.
   (arm_elf_before_allocation): Remove redundant use of
   output_has_begun flag.

ld/ChangeLog
ld/emultempl/armelf.em

index 95ad24e86c5e556488b49b78610a83e50bb69d1b..8123c0a93fa932f810052bcf645bd22dff7bf1ec 100644 (file)
@@ -1,3 +1,13 @@
+2008-08-26  Nick Clifton  <nickc@redhat.com>
+
+       PR 6727
+       * emultempl/armelf.em (arm_elf_set_bfd_for_interworking): Scan all
+       input sections in all input bfds and always select the last
+       suitable one, so that interworking stubs are always processed
+       after all other input sections.
+       (arm_elf_before_allocation): Remove redundant use of
+       output_has_begun flag.
+
 2008-08-24  Alan Modra  <amodra@bigpond.net.au>
 
        * configure.in: Update a number of obsolete autoconf macros.
index d1d68c00e1a0c7b69018b74023d4ab1a8cee297f..8d8a8fa321636d5803fbd8e2a4f7ef6ac2ae6ef1 100644 (file)
@@ -94,12 +94,8 @@ arm_elf_set_bfd_for_interworking (lang_statement_union_type *statement)
             an empty section, etc.  */
          if ((output_section->flags & SEC_HAS_CONTENTS) != 0
              && (i->flags & SEC_NEVER_LOAD) == 0
-             && ! (i->owner->flags & DYNAMIC)
-             && ! i->owner->output_has_begun)
-           {
-             bfd_for_interwork = i->owner;
-             bfd_for_interwork->output_has_begun = TRUE;
-           }
+             && ! (i->owner->flags & DYNAMIC))
+           bfd_for_interwork = i->owner;
        }
     }
 }
@@ -107,18 +103,12 @@ arm_elf_set_bfd_for_interworking (lang_statement_union_type *statement)
 static void
 arm_elf_before_allocation (void)
 {
-  bfd *tem;
-
   if (link_info.input_bfds != NULL)
     {
       /* The interworking bfd must be the last one in the link.  */
       bfd_for_interwork = NULL;
-      for (tem = link_info.input_bfds; tem != NULL; tem = tem->link_next)
-       tem->output_has_begun = FALSE;
 
       lang_for_each_statement (arm_elf_set_bfd_for_interworking);
-      for (tem = link_info.input_bfds; tem != NULL; tem = tem->link_next)
-       tem->output_has_begun = FALSE;
 
       /* If bfd_for_interwork is NULL, then there are no loadable sections
         with real contents to be linked, so we are not going to have to