aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2001-07-03 15:49:46 +0000
committerNick Clifton <nickc@redhat.com>2001-07-03 15:49:46 +0000
commit440c46077c678368213ec9911961cde4819adc05 (patch)
tree22509823c3fa6b239b52e4899c19f1e3901cc1a5
parentFix seg fault by replacing symbol_get_frag() with fscan->fx_frag. (diff)
downloadbinutils-gdb-440c46077c678368213ec9911961cde4819adc05.tar.gz
binutils-gdb-440c46077c678368213ec9911961cde4819adc05.tar.bz2
binutils-gdb-440c46077c678368213ec9911961cde4819adc05.zip
Skip section symbols from sections being discarded
-rw-r--r--bfd/ChangeLog9
-rw-r--r--bfd/cofflink.c15
2 files changed, 24 insertions, 0 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index c151aef83ee..30df566ea0d 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,12 @@
+2001-07-03 Mark Elbrecht <snowball3@softhome.net>
+
+ * cofflink.c (_bfd_coff_link_input_bfd): Skip section symbols from
+ sections being discarded.
+
+2001-07-03 Nick Clifton <nickc@cambridge.redhat.com>
+
+ * cofflink.c (_bfd_coff_link_input_bfd):
+
2001-06-30 Alan Modra <amodra@bigpond.net.au>
* elfcore.h (elf_core_file_p): Call bfd_section_from_phdr directly
diff --git a/bfd/cofflink.c b/bfd/cofflink.c
index 96b005bc89a..47716ac2eae 100644
--- a/bfd/cofflink.c
+++ b/bfd/cofflink.c
@@ -1501,6 +1501,21 @@ _bfd_coff_link_input_bfd (finfo, input_bfd)
}
}
+#ifndef COFF_WITH_PE
+ /* Skip section symbols for sections which are not going to be
+ emitted, or which belong to linkonce sections that are going
+ to be discarded. */
+ if (!skip
+ && isym.n_sclass == C_STAT
+ && isym.n_type == T_NULL
+ && isym.n_numaux > 0)
+ {
+ if ((*secpp)->output_section == bfd_abs_section_ptr
+ || (*secpp)->kept_section)
+ skip = true;
+ }
+#endif
+
/* If we stripping debugging symbols, and this is a debugging
symbol, then skip it. FIXME: gas sets the section to N_ABS
for some types of debugging symbols; I don't know if this is