diff --git a/bfd/ChangeLog b/bfd/ChangeLog index efc68a3be23..7e858e2d7a6 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,10 @@ +2011-10-05 Kai Tietz + + * coffgen.c (coff_write_alien_symbol): Don't write + symbol for discarded sections, if strip_discarded isn't + explicit set to false. + (coff_write_native_symbol): Likewise. + 2011-10-05 DJ Delorie Nick Clifton diff --git a/bfd/coffgen.c b/bfd/coffgen.c index 2508b519334..87a3bfaff84 100644 --- a/bfd/coffgen.c +++ b/bfd/coffgen.c @@ -996,7 +996,15 @@ coff_write_alien_symbol (bfd *abfd, asection *output_section = symbol->section->output_section ? symbol->section->output_section : symbol->section; + struct bfd_link_info *link_info = coff_data (abfd)->link_info; + if ((!link_info || link_info->strip_discarded) + && !bfd_is_abs_section (symbol->section) + && symbol->section->output_section == bfd_abs_section_ptr) + { + symbol->name = ""; + return TRUE; + } native = &dummy; native->u.syment.n_type = T_NULL; native->u.syment.n_flags = 0; @@ -1061,6 +1069,15 @@ coff_write_native_symbol (bfd *abfd, { combined_entry_type *native = symbol->native; alent *lineno = symbol->lineno; + struct bfd_link_info *link_info = coff_data (abfd)->link_info; + + if ((!link_info || link_info->strip_discarded) + && !bfd_is_abs_section (symbol->symbol.section) + && symbol->symbol.section->output_section == bfd_abs_section_ptr) + { + symbol->symbol.name = ""; + return TRUE; + } /* If this symbol has an associated line number, we must store the symbol index in the line number field. We also tag the auxent to