* elflink.c (fix_syms): Handle symbols defined in input sections.
authorAlan Modra <amodra@gmail.com>
Wed, 27 Jul 2005 08:32:53 +0000 (08:32 +0000)
committerAlan Modra <amodra@gmail.com>
Wed, 27 Jul 2005 08:32:53 +0000 (08:32 +0000)
bfd/ChangeLog
bfd/elflink.c

index 4286fdf..21ab9cc 100644 (file)
@@ -1,3 +1,7 @@
+2005-07-27  Alan Modra  <amodra@bigpond.net.au>
+
+       * elflink.c (fix_syms): Handle symbols defined in input sections.
+
 2005-07-27  Jan Beulich  <jbeulich@novell.com>
 
        * elf64-x86-64.c (R_X86_64_standard, R_X86_64_vt_offset): New.
index 98fee0c..62f80c9 100644 (file)
@@ -9911,10 +9911,11 @@ fix_syms (struct bfd_link_hash_entry *h, void *data)
     {
       asection *s = h->u.def.section;
       if (s != NULL
-         && s == s->output_section
-         && bfd_section_removed_from_list (obfd, s))
+         && s->output_section != NULL
+         && (s->output_section->flags & SEC_EXCLUDE) != 0
+         && bfd_section_removed_from_list (obfd, s->output_section))
        {
-         h->u.def.value += s->vma;
+         h->u.def.value += s->output_offset + s->output_section->vma;
          h->u.def.section = bfd_abs_section_ptr;
        }
     }