* elf.c (ignore_section_sym): Don't test section sym value here.
authorAlan Modra <amodra@gmail.com>
Wed, 4 Jun 2008 14:24:05 +0000 (14:24 +0000)
committerAlan Modra <amodra@gmail.com>
Wed, 4 Jun 2008 14:24:05 +0000 (14:24 +0000)
(elf_map_symbols): Instead check zero value here as was done prior
to 2006-05-26 change.

bfd/ChangeLog
bfd/elf.c

index 8b315a338b4dd7f6c56067053fadc6dadca4efbe..c61360e4b6adeb94eac9f5fb357f618baea1cc18 100644 (file)
@@ -1,3 +1,9 @@
+2008-06-04  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf.c (ignore_section_sym): Don't test section sym value here.
+       (elf_map_symbols): Instead check zero value here as was done prior
+       to 2006-05-26 change.
+
 2008-06-04  Nick Clifton  <nickc@redhat.com>
 
        PR ld/6019
index 37a150191cf69df7b7f379b552cfd8690ea51a9f..c5da23b2885038e3f73db98e5f5d937bb90a6a04 100644 (file)
--- a/bfd/elf.c
+++ b/bfd/elf.c
@@ -3078,17 +3078,15 @@ sym_is_global (bfd *abfd, asymbol *sym)
 }
 
 /* Don't output section symbols for sections that are not going to be
-   output.  Also, don't output section symbols for reloc and other
-   special sections.  */
+   output.  */
 
 static bfd_boolean
 ignore_section_sym (bfd *abfd, asymbol *sym)
 {
   return ((sym->flags & BSF_SECTION_SYM) != 0
-         && (sym->value != 0
-             || (sym->section->owner != abfd
-                 && (sym->section->output_section->owner != abfd
-                     || sym->section->output_offset != 0))));
+         && !(sym->section->owner == abfd
+              || (sym->section->output_section->owner == abfd
+                  && sym->section->output_offset == 0)));
 }
 
 static bfd_boolean
@@ -3131,6 +3129,7 @@ elf_map_symbols (bfd *abfd)
       asymbol *sym = syms[idx];
 
       if ((sym->flags & BSF_SECTION_SYM) != 0
+         && sym->value == 0
          && !ignore_section_sym (abfd, sym))
        {
          asection *sec = sym->section;