Optimize for add_archive_element.
authorH.J. Lu <hjl.tools@gmail.com>
Sun, 12 Dec 2010 14:52:27 +0000 (14:52 +0000)
committerH.J. Lu <hjl.tools@gmail.com>
Sun, 12 Dec 2010 14:52:27 +0000 (14: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 102e0823120ac054442bb1023021fc27d09bf43c..602c669250a31e70855ed6b5eecabee9271366d7 100644 (file)
@@ -1,3 +1,7 @@
+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_".
index 32575d900f77cb9d657365c393a13c29f3eaba5e..a8aac7ced017c97b8b7188aca5ac85089e500534 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 58b6e82032dd24a034cbcbcc0420d3096fb9e59a..ca9baf83084f8d9a850e834b589125fe5f0e6c0b 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 e804a53b84a0fe4e5905b4ad14aaf841b2fe914f..03a11bd82694961da5948f226485386ead595360 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;