2002-08-12 H.J. Lu <hjl@gnu.org>
authorH.J. Lu <hjl.tools@gmail.com>
Mon, 12 Aug 2002 19:23:33 +0000 (19:23 +0000)
committerH.J. Lu <hjl.tools@gmail.com>
Mon, 12 Aug 2002 19:23:33 +0000 (19:23 +0000)
* elflink.h (elf_add_default_symbol): Preserve section across
elf_merge_symbol.

bfd/ChangeLog
bfd/elflink.h

index a8f1a49e0eddaf655a5ef4bb6afc26c0da8a18e3..c88e5ff0c5bca2363b64ddf47c8a8393a6567c56 100644 (file)
@@ -1,3 +1,8 @@
+2002-08-12  H.J. Lu <hjl@gnu.org>
+
+       * elflink.h (elf_add_default_symbol): Preserve section across
+       elf_merge_symbol.
+
 2002-08-09  Graeme Peterson  <gp@qnx.com>
 
        * Makefile.am: Add entries for elf32-ppcqnx.c, and add 
index d849478a8af54bf3e049086e17f9e9025b563f10..0840f8ea977e7aa95920471e81327c02ba5aec7e 100644 (file)
@@ -899,19 +899,19 @@ elf_merge_symbol (abfd, info, name, sym, psec, pvalue, sym_hash,
 
 /* This function is called to create an indirect symbol from the
    default for the symbol with the default version if needed. The
-   symbol is described by H, NAME, SYM, SEC, VALUE, and OVERRIDE.  We
+   symbol is described by H, NAME, SYM, PSEC, VALUE, and OVERRIDE.  We
    set DYNSYM if the new indirect symbol is dynamic. DT_NEEDED
    indicates if it comes from a DT_NEEDED entry of a shared object.  */
 
 static boolean
-elf_add_default_symbol (abfd, info, h, name, sym, sec, value,
+elf_add_default_symbol (abfd, info, h, name, sym, psec, value,
                        dynsym, override, dt_needed)
      bfd *abfd;
      struct bfd_link_info *info;
      struct elf_link_hash_entry *h;
      const char *name;
      Elf_Internal_Sym *sym;
-     asection **sec;
+     asection **psec;
      bfd_vma *value;
      boolean *dynsym;
      boolean override;
@@ -926,6 +926,7 @@ elf_add_default_symbol (abfd, info, h, name, sym, sec, value,
   boolean dynamic;
   char *p;
   size_t len, shortlen;
+  asection *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
@@ -970,7 +971,8 @@ elf_add_default_symbol (abfd, info, h, name, sym, sec, value,
      actually going to define an indirect symbol.  */
   type_change_ok = false;
   size_change_ok = false;
-  if (! elf_merge_symbol (abfd, info, shortname, sym, sec, value,
+  sec = *psec;
+  if (! elf_merge_symbol (abfd, info, shortname, sym, &sec, value,
                          &hi, &override, &type_change_ok,
                          &size_change_ok, dt_needed))
     return false;
@@ -1077,7 +1079,8 @@ elf_add_default_symbol (abfd, info, h, name, sym, sec, value,
   /* Once again, merge with any existing symbol.  */
   type_change_ok = false;
   size_change_ok = false;
-  if (! elf_merge_symbol (abfd, info, shortname, sym, sec, value,
+  sec = *psec;
+  if (! elf_merge_symbol (abfd, info, shortname, sym, &sec, value,
                          &hi, &override, &type_change_ok,
                          &size_change_ok, dt_needed))
     return false;
This page took 0.031612 seconds and 4 git commands to generate.