* elf32-bfin.c (bfinfdpic_relocate_section): Clear reloc for

deteted entries in .eh_frame section.
This commit is contained in:
Jie Zhang 2006-05-23 05:45:22 +00:00
parent aaceb81c03
commit 8aafe8b463
2 changed files with 24 additions and 9 deletions

View file

@ -1,3 +1,8 @@
2006-05-23 Jie Zhang <jie.zhang@analog.com>
* elf32-bfin.c (bfinfdpic_relocate_section): Clear reloc for
deteted entries in .eh_frame section.
2006-05-23 Jie Zhang <jie.zhang@analog.com>
* elf32-bfin.c (bfin_check_relocs): Use __GLOBAL_OFFSET_TABLE_

View file

@ -2435,6 +2435,8 @@ bfinfdpic_relocate_section (bfd * output_bfd,
input_section->output_section)
& (SEC_ALLOC | SEC_LOAD)) == (SEC_ALLOC | SEC_LOAD))
{
bfd_vma offset;
if (_bfinfdpic_osec_readonly_p (output_bfd,
input_section
->output_section))
@ -2445,15 +2447,23 @@ bfinfdpic_relocate_section (bfd * output_bfd,
name, input_bfd, input_section, rel->r_offset);
return FALSE;
}
_bfinfdpic_add_dyn_reloc (output_bfd,
bfinfdpic_gotrel_section (info),
_bfd_elf_section_offset
(output_bfd, info,
input_section, rel->r_offset)
+ input_section
->output_section->vma
+ input_section->output_offset,
r_type, dynindx, addend, picrel);
offset = _bfd_elf_section_offset (output_bfd, info,
input_section, rel->r_offset);
/* Only output a reloc for a not deleted entry. */
if (offset >= (bfd_vma) -2)
_bfinfdpic_add_dyn_reloc (output_bfd,
bfinfdpic_gotrel_section (info),
0,
R_unused0,
dynindx, addend, picrel);
else
_bfinfdpic_add_dyn_reloc (output_bfd,
bfinfdpic_gotrel_section (info),
offset + input_section
->output_section->vma
+ input_section->output_offset,
r_type,
dynindx, addend, picrel);
}
else
addend += bfinfdpic_got_section (info)->output_section->vma;