summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBob Wilson <bob.wilson@acm.org>2003-04-10 19:19:02 +0000
committerBob Wilson <bob.wilson@acm.org>2003-04-10 19:19:02 +0000
commit1fca36998241d048ea95ec56e858f7c4fedcab8c (patch)
tree9fa1d237bfb5949227802d85d58c2a362198138a
parent50b2abe43041deb1ab00277cc6c05d77c5fb3f5b (diff)
downloadbinutils-redhat-1fca36998241d048ea95ec56e858f7c4fedcab8c.tar.gz
* elf32-xtensa.c (elf_xtensa_relocate_section): Don't continue to thecagney_frameaddr-20030409-mergepoint
next relocation on an undefined symbol.
-rw-r--r--bfd/ChangeLog5
-rw-r--r--bfd/elf32-xtensa.c9
2 files changed, 9 insertions, 5 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 2396d5b72e..ac7503ec43 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -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>:
diff --git a/bfd/elf32-xtensa.c b/bfd/elf32-xtensa.c
index 92fb98c772..b991df4f79 100644
--- a/bfd/elf32-xtensa.c
+++ b/bfd/elf32-xtensa.c
@@ -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;