* elflink.c (_bfd_elf_add_default_symbol): Preserve section
authorAlan Modra <amodra@gmail.com>
Tue, 26 Mar 2013 07:02:52 +0000 (07:02 +0000)
committerAlan Modra <amodra@gmail.com>
Tue, 26 Mar 2013 07:02:52 +0000 (07:02 +0000)
over _bfd_elf_merge_symbol calls.

bfd/ChangeLog
bfd/elflink.c

index 30e64ba..e6e6c77 100644 (file)
@@ -1,5 +1,10 @@
 2013-03-26  Alan Modra  <amodra@gmail.com>
 
+       * elflink.c (_bfd_elf_add_default_symbol): Preserve section
+       over _bfd_elf_merge_symbol calls.
+
+2013-03-26  Alan Modra  <amodra@gmail.com>
+
        * elflink.c (elf_link_add_object_symbols): Add assertion for
        common override alignment check code.  Formatting.
 
index 15909c2..bb98138 100644 (file)
@@ -1600,6 +1600,7 @@ _bfd_elf_add_default_symbol (bfd *abfd,
   bfd_boolean override;
   char *p;
   size_t len, shortlen;
+  asection *tmp_sec;
 
   /* If this symbol has a version, and it is the default version, we
      create an indirect symbol from the default name to the fully
@@ -1626,7 +1627,8 @@ _bfd_elf_add_default_symbol (bfd *abfd,
      actually going to define an indirect symbol.  */
   type_change_ok = FALSE;
   size_change_ok = FALSE;
-  if (!_bfd_elf_merge_symbol (abfd, info, shortname, sym, &sec, &value,
+  tmp_sec = sec;
+  if (!_bfd_elf_merge_symbol (abfd, info, shortname, sym, &tmp_sec, &value,
                              &hi, poldbfd, NULL, NULL, &skip, &override,
                              &type_change_ok, &size_change_ok))
     return FALSE;
@@ -1734,7 +1736,8 @@ nondefault:
   /* Once again, merge with any existing symbol.  */
   type_change_ok = FALSE;
   size_change_ok = FALSE;
-  if (!_bfd_elf_merge_symbol (abfd, info, shortname, sym, &sec, &value,
+  tmp_sec = sec;
+  if (!_bfd_elf_merge_symbol (abfd, info, shortname, sym, &tmp_sec, &value,
                              &hi, NULL, NULL, NULL, &skip, &override,
                              &type_change_ok, &size_change_ok))
     return FALSE;