OSDN Git Service

Optimize for add_archive_element.
authorhjl <hjl>
Sun, 12 Dec 2010 23:52:26 +0000 (23:52 +0000)
committerhjl <hjl>
Sun, 12 Dec 2010 23:52:26 +0000 (23:52 +0000)
bfd/

2010-12-12  H.J. Lu  <hongjiu.lu@intel.com>

* elflink.c (elf_link_add_archive_symbols): Remove subsbfd.

ld/

2010-12-12  H.J. Lu  <hongjiu.lu@intel.com>

* ldlang.c (load_symbols): Optimize for add_archive_element.

bfd/ChangeLog
bfd/elflink.c
ld/ChangeLog
ld/ldlang.c

index 102e082..602c669 100644 (file)
@@ -1,5 +1,9 @@
 2010-12-12  H.J. Lu  <hongjiu.lu@intel.com>
 
+       * elflink.c (elf_link_add_archive_symbols): Remove subsbfd.
+
+2010-12-12  H.J. Lu  <hongjiu.lu@intel.com>
+
        * elf.c (special_sections_g): Add ".gnu.lto_".
 
 2010-12-10  Alan Modra  <amodra@gmail.com>
index 32575d9..a8aac7c 100644 (file)
@@ -5011,7 +5011,6 @@ elf_link_add_archive_symbols (bfd *abfd, struct bfd_link_info *info)
        {
          struct elf_link_hash_entry *h;
          bfd *element;
-         bfd *subsbfd = NULL;
          struct bfd_link_hash_entry *undefs_tail;
          symindex mark;
 
@@ -5075,11 +5074,9 @@ elf_link_add_archive_symbols (bfd *abfd, struct bfd_link_info *info)
          undefs_tail = info->hash->undefs_tail;
 
          if (! (*info->callbacks->add_archive_element)
-                               (info, element, symdef->name, &subsbfd))
+                               (info, element, symdef->name, &element))
            goto error_return;
-         /* Potentially, the add_archive_element hook may have set a
-            substitute BFD for us.  */
-         if (! bfd_link_add_symbols (subsbfd ? subsbfd : element, info))
+         if (! bfd_link_add_symbols (element, info))
            goto error_return;
 
          /* If there are any new undefined symbols, we need to make
index 58b6e82..ca9baf8 100644 (file)
@@ -1,3 +1,7 @@
+2010-12-12  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * ldlang.c (load_symbols): Optimize for add_archive_element.
+
 2010-12-09  Mike Frysinger  <vapier@gentoo.org>
 
        * .gitignore: New file.
index e804a53..03a11bd 100644 (file)
@@ -2717,15 +2717,14 @@ load_symbols (lang_input_statement_type *entry,
                  loaded = FALSE;
                }
 
-             subsbfd = NULL;
+             subsbfd = member;
              if (! ((*link_info.callbacks->add_archive_element)
                     (&link_info, member, "--whole-archive", &subsbfd)))
                abort ();
 
              /* Potentially, the add_archive_element hook may have set a
                 substitute BFD for us.  */
-             if (! bfd_link_add_symbols (subsbfd ? subsbfd : member,
-                                       &link_info))
+             if (! bfd_link_add_symbols (member, &link_info))
                {
                  einfo (_("%F%B: could not read symbols: %E\n"), member);
                  loaded = FALSE;