* elf32-cris.c (cris_elf_relocate_section) <case R_CRIS_8>

<R_CRIS_16, R_CRIS_32>: Don't call BFD_ASSERT for weak undefined
	symbols with non-default visibility.
This commit is contained in:
Hans-Peter Nilsson
2009-01-27 06:07:54 +00:00
parent eb0d5aa9ea
commit b3bf42d83b
2 changed files with 16 additions and 1 deletions

View File

@ -1,3 +1,9 @@
2009-01-27 Hans-Peter Nilsson <hp@axis.com>
* elf32-cris.c (cris_elf_relocate_section) <case R_CRIS_8>
<R_CRIS_16, R_CRIS_32>: Don't call BFD_ASSERT for weak undefined
symbols with non-default visibility.
2009-01-26 Nathan Sidwell <nathan@codesourcery.com>
* elf32-ppc.c (ppc_elf_relax_section): Add space for relocs

View File

@ -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);