* 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 30e64ba3623c18273c3ce7bd664f989183fabbcb..e6e6c771d0a9783e7a7b71172a1ec5ae223fb6d4 100644 (file)
@@ -1,3 +1,8 @@
+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
index 15909c205d514ca98ea7fa380787fd9b8f52074b..bb981388c66e8f6dee5586fc582ec0a91ef338db 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;