* elfxx-mips.c (mips_elf_next_relocation): Tighten check to test
authorThiemo Seufer <ths@networkno.de>
Tue, 25 Jul 2006 09:06:05 +0000 (09:06 +0000)
committerThiemo Seufer <ths@networkno.de>
Tue, 25 Jul 2006 09:06:05 +0000 (09:06 +0000)
also for same symbol.

bfd/ChangeLog
bfd/elfxx-mips.c

index 86517d66782bfe7002b556b53f0b814d3433564d..f23d35b85eb81b21d9e5060587645e59993b4d33 100644 (file)
@@ -1,3 +1,8 @@
+2006-07-25  Thiemo Seufer  <ths@networkno.de>
+
+       * elfxx-mips.c (mips_elf_next_relocation): Tighten check to test
+       also for same symbol.
+
 2006-07-25  Thiemo Seufer  <ths@mips.com>
 
        * elfxx-mips.c (mips_elf_calculate_relocation): Remove magic constant.
index f917ba538f2914d8dc0ccb7d6293dc55884c5ee0..5a65d42461e0ce52d004c1d05c7d85a357f70e52 100644 (file)
@@ -3583,9 +3583,12 @@ mips_elf_next_relocation (bfd *abfd ATTRIBUTE_UNUSED, unsigned int r_type,
                          const Elf_Internal_Rela *relocation,
                          const Elf_Internal_Rela *relend)
 {
+  unsigned long r_symndx = ELF_R_SYM (abfd, relocation->r_info);
+
   while (relocation < relend)
     {
-      if (ELF_R_TYPE (abfd, relocation->r_info) == r_type)
+      if (ELF_R_TYPE (abfd, relocation->r_info) == r_type
+         && ELF_R_SYM (abfd, relocation->r_info) == r_symndx)
        return relocation;
 
       ++relocation;