diff options
author | Ulrich Weigand <uweigand@de.ibm.com> | 2009-05-14 14:42:36 +0000 |
---|---|---|
committer | Ulrich Weigand <uweigand@de.ibm.com> | 2009-05-14 14:42:36 +0000 |
commit | d342a8b15740545c4584db1957abaf12040ba646 (patch) | |
tree | ede1f671564ec4762c7f47774c3eee8117cb0180 /bfd | |
parent | cc210763ce675cfdc6bbf9fc1f98dd121cdf24ce (diff) | |
download | gdb-d342a8b15740545c4584db1957abaf12040ba646.zip gdb-d342a8b15740545c4584db1957abaf12040ba646.tar.gz gdb-d342a8b15740545c4584db1957abaf12040ba646.tar.bz2 |
* elf32-spu.c (spu_elf_relocate_section): Only encode overlay index
into addresses for relocation types that look at high bits. Remove
special handling of relocation overflow warnings.
Diffstat (limited to 'bfd')
-rw-r--r-- | bfd/ChangeLog | 6 | ||||
-rw-r--r-- | bfd/elf32-spu.c | 10 |
2 files changed, 8 insertions, 8 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 2af36be..edaf9c8 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,5 +1,11 @@ 2009-05-14 Ulrich Weigand <uweigand@de.ibm.com> + * elf32-spu.c (spu_elf_relocate_section): Only encode overlay index + into addresses for relocation types that look at high bits. Remove + special handling of relocation overflow warnings. + +2009-05-14 Ulrich Weigand <uweigand@de.ibm.com> + * elf32-spu.c (mark_functions_via_relocs): Handle cycles in the control flow graph between fragments of a function. diff --git a/bfd/elf32-spu.c b/bfd/elf32-spu.c index 13bf5e2..838f6fc 100644 --- a/bfd/elf32-spu.c +++ b/bfd/elf32-spu.c @@ -4705,7 +4705,6 @@ spu_elf_relocate_section (bfd *output_bfd, bfd_reloc_status_type r; bfd_boolean unresolved_reloc; bfd_boolean warned; - bfd_boolean overlay_encoded; enum _stub_type stub_type; r_symndx = ELF32_R_SYM (rel->r_info); @@ -4790,7 +4789,6 @@ spu_elf_relocate_section (bfd *output_bfd, is_ea_sym = (ea != NULL && sec != NULL && sec->output_section == ea); - overlay_encoded = FALSE; /* If this symbol is in an overlay area, we may need to relocate to the overlay stub. */ @@ -4828,6 +4826,8 @@ spu_elf_relocate_section (bfd *output_bfd, { /* For soft icache, encode the overlay index into addresses. */ if (htab->params->ovly_flavour == ovly_soft_icache + && (r_type == R_SPU_ADDR16_HI + || r_type == R_SPU_ADDR32 || r_type == R_SPU_REL32) && !is_ea_sym) { unsigned int ovl = overlay_index (sec); @@ -4835,7 +4835,6 @@ spu_elf_relocate_section (bfd *output_bfd, { unsigned int set_id = ((ovl - 1) >> htab->num_lines_log2) + 1; relocation += set_id << 18; - overlay_encoded = TRUE; } } } @@ -4888,11 +4887,6 @@ spu_elf_relocate_section (bfd *output_bfd, switch (r) { case bfd_reloc_overflow: - /* FIXME: We don't want to warn on most references - within an overlay to itself, but this may silence a - warning that should be reported. */ - if (overlay_encoded && sec == input_section) - break; if (!((*info->callbacks->reloc_overflow) (info, (h ? &h->root : NULL), sym_name, howto->name, (bfd_vma) 0, input_bfd, input_section, rel->r_offset))) |