diff options
Diffstat (limited to 'bfd/elflink.c')
-rw-r--r-- | bfd/elflink.c | 9 |
1 files changed, 2 insertions, 7 deletions
diff --git a/bfd/elflink.c b/bfd/elflink.c index bf28885..541129a 100644 --- a/bfd/elflink.c +++ b/bfd/elflink.c @@ -8827,9 +8827,7 @@ elf_link_output_extsym (struct bfd_hash_entry *bh, void *data) && h->root.u.def.section->output_section != NULL)) return TRUE; - if (!eoinfo->file_sym_done - && (eoinfo->second_pass ? eoinfo->flinfo->filesym_count == 1 - : eoinfo->flinfo->filesym_count > 1)) + if (!eoinfo->file_sym_done && eoinfo->flinfo->filesym_count) { /* Output a FILE symbol so that following locals are not associated with the wrong input file. */ @@ -9006,10 +9004,7 @@ elf_link_output_extsym (struct bfd_hash_entry *bh, void *data) if (eoinfo->localsyms && flinfo->filesym_count == 1) { bfd_boolean second_pass_sym - = (input_sec->owner == flinfo->output_bfd - || input_sec->owner == NULL - || (input_sec->flags & SEC_LINKER_CREATED) != 0 - || (input_sec->owner->flags & BFD_LINKER_CREATED) != 0); + = h->forced_local && !h->root.linker_def; eoinfo->need_second_pass |= second_pass_sym; if (eoinfo->second_pass != second_pass_sym) |