diff options
-rw-r--r-- | bfd/ChangeLog | 5 | ||||
-rw-r--r-- | bfd/elf32-mips.c | 9 |
2 files changed, 14 insertions, 0 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 30b719b..794b4c1 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +Tue Jun 2 15:29:35 1998 Ian Lance Taylor <ian@cygnus.com> + + * elf32-mips.c (mips_elf_relocate_section): If we issue an + undefined symbol error, don't also issue an overflow error. + Tue Jun 2 13:51:00 1998 Geoff Keating <geoffk@ozemail.com.au> * elf32-ppc.c (ppc_elf_relocate_section): The target of an diff --git a/bfd/elf32-mips.c b/bfd/elf32-mips.c index b503c4f..854fa27 100644 --- a/bfd/elf32-mips.c +++ b/bfd/elf32-mips.c @@ -4988,8 +4988,10 @@ mips_elf_relocate_section (output_bfd, info, input_bfd, input_section, { bfd_vma relocation; boolean local; + boolean undefined_error; /* This is a final link. */ + undefined_error = false; sym = NULL; if (r_symndx < extsymoff || (elf_bad_symtab (input_bfd) @@ -5084,6 +5086,7 @@ mips_elf_relocate_section (output_bfd, info, input_bfd, input_section, (info, h->root.root.string, input_bfd, input_section, rel->r_offset))) return false; + undefined_error = true; relocation = 0; } } @@ -5573,6 +5576,12 @@ mips_elf_relocate_section (output_bfd, info, input_bfd, input_section, && h->root.type == bfd_link_hash_undefweak) r = bfd_reloc_ok; + /* If we've already issued an error for an undefined symbol, + don't issue another useless error. */ + if (undefined_error + && (r == bfd_reloc_undefined || r == bfd_reloc_overflow)) + r = bfd_reloc_ok; + if (SGI_COMPAT (abfd) && scpt != NULL && (input_section->flags & SEC_ALLOC) != 0) |