* elf32-mips.c (mips_elf_relocate_section): If we issue an
authorIan Lance Taylor <ian@airs.com>
Tue, 2 Jun 1998 19:30:09 +0000 (19:30 +0000)
committerIan Lance Taylor <ian@airs.com>
Tue, 2 Jun 1998 19:30:09 +0000 (19:30 +0000)
undefined symbol error, don't also issue an overflow error.

bfd/ChangeLog
bfd/elf32-mips.c

index 30b719b0bb2536b9937bac60499225984ac8dab3..794b4c19f1f22f9a94e9b2572588b0687e64bde2 100644 (file)
@@ -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
index b503c4f77778f8833e23cd9e23ef9eaaaaec1fa3..854fa275839d67bc592a1859c0089ff2376d706f 100644 (file)
@@ -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)