From 9d7428a9e33ee7fc2baa10004e7ef2e01c4691f0 Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Mon, 7 Jun 1999 23:22:00 +0000 Subject: [PATCH] * section.c (_bfd_strip_section_from_output): Remove output sections with no initial link_order. --- bfd/ChangeLog | 5 +++++ bfd/section.c | 24 ++++++++++++------------ 2 files changed, 17 insertions(+), 12 deletions(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 3d69c29..e5fd81d 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +1999-06-07 Richard Henderson + + * section.c (_bfd_strip_section_from_output): Remove output + sections with no initial link_order. + 1999-06-07 Nick Clifton * elf32-m88k.c (ELF_MAXPAGESIZE): Define. diff --git a/bfd/section.c b/bfd/section.c index 18778b5..da4c4bc 100644 --- a/bfd/section.c +++ b/bfd/section.c @@ -1046,30 +1046,30 @@ _bfd_strip_section_from_output (s) asection **spp, *os; struct bfd_link_order *p, *pp; + /* Excise the input section from the link order. */ os = s->output_section; for (p = os->link_order_head, pp = NULL; p != NULL; pp = p, p = p->next) if (p->type == bfd_indirect_link_order && p->u.indirect.section == s) { - /* Excise the input section. */ if (pp) pp->next = p->next; else os->link_order_head = p->next; if (!p->next) os->link_order_tail = pp; + break; + } - if (!os->link_order_head) + /* If the output section is empty, remove it too. */ + if (!os->link_order_head) + { + for (spp = &os->owner->sections; *spp; spp = &(*spp)->next) + if (*spp == os) { - /* Excise the output section. */ - for (spp = &os->owner->sections; *spp; spp = &(*spp)->next) - if (*spp == os) - { - *spp = os->next; - os->owner->section_count--; - break; - } + *spp = os->next; + os->owner->section_count--; + break; } - break; - } + } } -- 2.7.4