diff options
-rw-r--r-- | bfd/ChangeLog | 5 | ||||
-rw-r--r-- | bfd/elfxx-mips.c | 5 |
2 files changed, 9 insertions, 1 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 86517d6..f23d35b 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -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. diff --git a/bfd/elfxx-mips.c b/bfd/elfxx-mips.c index f917ba5..5a65d42 100644 --- a/bfd/elfxx-mips.c +++ b/bfd/elfxx-mips.c @@ -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; |