aboutsummaryrefslogtreecommitdiff
path: root/ld/emultempl
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2008-08-26 11:11:17 +0000
committerNick Clifton <nickc@redhat.com>2008-08-26 11:11:17 +0000
commit8716772cc56cb5beb0cbea672eed1b10d6486484 (patch)
treee7cbf5e2d7a95efec2543777fd44a8f9034f2ddd /ld/emultempl
parent6429b084782c31cb40056a47eead0b65796b4d1e (diff)
downloadgdb-8716772cc56cb5beb0cbea672eed1b10d6486484.zip
gdb-8716772cc56cb5beb0cbea672eed1b10d6486484.tar.gz
gdb-8716772cc56cb5beb0cbea672eed1b10d6486484.tar.bz2
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.
Diffstat (limited to 'ld/emultempl')
-rw-r--r--ld/emultempl/armelf.em14
1 files changed, 2 insertions, 12 deletions
diff --git a/ld/emultempl/armelf.em b/ld/emultempl/armelf.em
index d1d68c0..8d8a8fa 100644
--- a/ld/emultempl/armelf.em
+++ b/ld/emultempl/armelf.em
@@ -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