diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 7ff3959115a..4d339aa979a 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,8 @@
+2010-02-20  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elf64-x86-64.c (elf64_x86_64_add_symbol_hook): Don't check
+	STT_GNU_IFUNC on large common symbol.
+
 2010-02-18  H.J. Lu  <hongjiu.lu@intel.com>
 
 	* elf32-i386.c (elf_i386_add_symbol_hook): Don't set
diff --git a/bfd/elf64-x86-64.c b/bfd/elf64-x86-64.c
index 373a8da1c0b..82a869a2161 100644
--- a/bfd/elf64-x86-64.c
+++ b/bfd/elf64-x86-64.c
@@ -4254,7 +4254,7 @@ elf64_x86_64_add_symbol_hook (bfd *abfd,
 	}
       *secp = lcomm;
       *valp = sym->st_size;
-      break;
+      return TRUE;
     }
 
   if ((abfd->flags & DYNAMIC) == 0