summaryrefslogtreecommitdiff
path: root/bfd/coffgen.c
diff options
context:
space:
mode:
authorKai Tietz <kai.tietz@onevision.com>2011-10-06 08:59:35 +0000
committerKai Tietz <kai.tietz@onevision.com>2011-10-06 08:59:35 +0000
commitceca988473f9a2177b3a7bd8b5ff151c921851b2 (patch)
treedd97ffee834e4b639318691fa0a75d7564165ff9 /bfd/coffgen.c
parent5abffcef5a8d09644c04c6bae3183ab273fc4115 (diff)
downloadbinutils-redhat-ceca988473f9a2177b3a7bd8b5ff151c921851b2.tar.gz
* 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.
Diffstat (limited to 'bfd/coffgen.c')
-rw-r--r--bfd/coffgen.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/bfd/coffgen.c b/bfd/coffgen.c
index 2508b51933..87a3bfaff8 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