2009-08-30 H.J. Lu <hongjiu.lu@intel.com>
authorH.J. Lu <hjl.tools@gmail.com>
Sun, 30 Aug 2009 18:31:53 +0000 (18:31 +0000)
committerH.J. Lu <hjl.tools@gmail.com>
Sun, 30 Aug 2009 18:31:53 +0000 (18:31 +0000)
* elf32-i386.c (elf_i386_finish_dynamic_symbol): Revert the
accidental checkin.
* elf64-x86-64.c (elf64_x86_64_finish_dynamic_symbol): Likwise.

bfd/ChangeLog
bfd/elf32-i386.c
bfd/elf64-x86-64.c

index 9ace58eb9012cd73ae11a98463ad79e445a119a8..b29d8504976d07cb8e5661db07d8967c7654163d 100644 (file)
@@ -1,3 +1,9 @@
+2009-08-30  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * elf32-i386.c (elf_i386_finish_dynamic_symbol): Revert the
+       accidental checkin.
+       * elf64-x86-64.c (elf64_x86_64_finish_dynamic_symbol): Likwise.
+
 2009-08-30  Alan Modra  <amodra@bigpond.net.au>
 
        PR ld/10569
index 462e0e854f476ee5e5c4681c999f88850572b9a9..c8e018a6cbdb4b70a36590ed339902f2dfa6d8d9 100644 (file)
@@ -4045,23 +4045,6 @@ elf_i386_finish_dynamic_symbol (bfd *output_bfd,
 {
   struct elf_i386_link_hash_table *htab;
 
-  /* PR 10433: STT_GNU_IFUNC symbols must go through the PLT
-     only when they are referenced, not when they are defined.  */
-  if (h->type == STT_GNU_IFUNC
-      && h->def_regular
-      && ! h->ref_regular
-      && ! info->relocatable)
-    {
-      if (! ((h->dynindx != -1
-             || h->forced_local)
-            && ((info->shared
-                 && (ELF_ST_VISIBILITY (h->other) == STV_DEFAULT
-                     || h->root.type != bfd_link_hash_undefweak))
-                || ! h->forced_local)
-            && elf_hash_table (info)->dynamic_sections_created))
-       return TRUE;
-    }
-
   htab = elf_i386_hash_table (info);
 
   if (h->plt.offset != (bfd_vma) -1)
index 6db647207b4b19a6e25cf899e5a9cfdf17fad730..de6f6ecd242a2735dda536e73698b8e51e85bde5 100644 (file)
@@ -3716,23 +3716,6 @@ elf64_x86_64_finish_dynamic_symbol (bfd *output_bfd,
 {
   struct elf64_x86_64_link_hash_table *htab;
 
-  /* PR 10433: STT_GNU_IFUNC symbols must go through the PLT
-     only when they are referenced, not when they are defined.  */
-  if (h->type == STT_GNU_IFUNC
-      && h->def_regular
-      && ! h->ref_regular
-      && ! info->relocatable)
-    {
-      if (! ((h->dynindx != -1
-             || h->forced_local)
-            && ((info->shared
-                 && (ELF_ST_VISIBILITY (h->other) == STV_DEFAULT
-                     || h->root.type != bfd_link_hash_undefweak))
-                || ! h->forced_local)
-            && elf_hash_table (info)->dynamic_sections_created))
-       return TRUE;
-    }
-
   htab = elf64_x86_64_hash_table (info);
 
   if (h->plt.offset != (bfd_vma) -1)