From 09a2991c77a4a51448e71d8bf8e598e71d89aed3 Mon Sep 17 00:00:00 2001 From: Hans-Peter Nilsson Date: Tue, 27 Jan 2009 06:07:54 +0000 Subject: * elf32-cris.c (cris_elf_relocate_section) : Don't call BFD_ASSERT for weak undefined symbols with non-default visibility. --- bfd/elf32-cris.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'bfd/elf32-cris.c') diff --git a/bfd/elf32-cris.c b/bfd/elf32-cris.c index 4b59d33e03..6b71ee47b9 100644 --- a/bfd/elf32-cris.c +++ b/bfd/elf32-cris.c @@ -1528,7 +1528,16 @@ cris_elf_relocate_section (output_bfd, info, input_bfd, input_section, rel->r_offset); if (outrel.r_offset == (bfd_vma) -1) skip = TRUE; - else if (outrel.r_offset == (bfd_vma) -2) + else if (outrel.r_offset == (bfd_vma) -2 + /* For now, undefined weak symbols with non-default + visibility (yielding 0), like exception info for + discarded sections, will get a R_CRIS_NONE + relocation rather than no relocation, because we + notice too late that the symbol doesn't need a + relocation. */ + || (h != NULL + && h->root.type == bfd_link_hash_undefweak + && ELF_ST_VISIBILITY (h->other) != STV_DEFAULT)) skip = TRUE, relocate = TRUE; outrel.r_offset += (input_section->output_section->vma + input_section->output_offset); -- cgit v1.2.1