* elf32-xtensa.c (elf_xtensa_relocate_section): Don't continue to the
authorBob Wilson <bob.wilson@acm.org>
Thu, 10 Apr 2003 19:19:02 +0000 (19:19 +0000)
committerBob Wilson <bob.wilson@acm.org>
Thu, 10 Apr 2003 19:19:02 +0000 (19:19 +0000)
        next relocation on an undefined symbol.

bfd/ChangeLog
bfd/elf32-xtensa.c

index 2396d5b72edb7604c6a844ef6f8e5c4cc4dfdbb2..ac7503ec433b14407c5c7ee64a74a685c1ad02a2 100644 (file)
@@ -1,3 +1,8 @@
+2003-04-10  Bob Wilson  <bob.wilson@acm.org>
+
+       * elf32-xtensa.c (elf_xtensa_relocate_section): Don't continue to the
+       next relocation on an undefined symbol.
+
 2003-04-09  Richard Henderson  <rth@redhat.com>
 
        * elf64-alpha.c (elf64_alpha_relocate_section) <R_ALPHA_GPREL32>:
index 92fb98c77219fc9e5a80e84c349eeab361183915..b991df4f792edc7c40f723e4654470f9af0667ef 100644 (file)
@@ -1893,6 +1893,7 @@ elf_xtensa_relocate_section (output_bfd, info, input_bfd,
       bfd_reloc_status_type r;
       bfd_boolean is_weak_undef;
       bfd_boolean unresolved_reloc;
+      bfd_boolean warned;
 
       r_type = ELF32_R_TYPE (rel->r_info);
       if (r_type == (int) R_XTENSA_GNU_VTINHERIT
@@ -1983,6 +1984,7 @@ elf_xtensa_relocate_section (output_bfd, info, input_bfd,
       sec = NULL;
       is_weak_undef = FALSE;
       unresolved_reloc = FALSE;
+      warned = FALSE;
 
       if (howto->partial_inplace)
        {
@@ -2039,10 +2041,7 @@ elf_xtensa_relocate_section (output_bfd, info, input_bfd,
                      (!info->shared || info->no_undefined
                       || ELF_ST_VISIBILITY (h->other)))))
                return FALSE;
-
-             /* To avoid any more warning messages, like "call out of
-                range", we continue immediately to the next relocation.  */
-             continue;
+             warned = TRUE;
            }
        }
 
@@ -2171,7 +2170,7 @@ elf_xtensa_relocate_section (output_bfd, info, input_bfd,
                               contents, rel->r_offset, is_weak_undef,
                               &error_message);
       
-      if (r != bfd_reloc_ok)
+      if (r != bfd_reloc_ok && !warned)
        {
          const char *name;