* elf-eh-frame.c (_bfd_elf_write_section_eh_frame): Don't crash if

CIE at .eh_frame start is removed due to no FDEs referencing it.
This commit is contained in:
Jakub Jelinek 2002-01-04 17:02:30 +00:00
parent 8a8b2d4b4a
commit a3aa38ee6c
2 changed files with 19 additions and 5 deletions

View File

@ -1,3 +1,8 @@
2002-01-04 Jakub Jelinek <jakub@redhat.com>
* elf-eh-frame.c (_bfd_elf_write_section_eh_frame): Don't crash if
CIE at .eh_frame start is removed due to no FDEs referencing it.
2002-01-04 Jason Thorpe <thorpej@wasabisystems.com>
* config.bfd (x86_64-*-netbsd*): New target.

View File

@ -919,14 +919,23 @@ _bfd_elf_write_section_eh_frame (abfd, sec, ehdrsec, contents)
{
if (sec_info->entry[i].cie)
{
cie_offset = sec_info->entry[i].new_offset;
cie_offset += (sec_info->entry[i].sec->output_section->vma
+ sec_info->entry[i].sec->output_offset
- sec->output_section->vma
- sec->output_offset);
/* If CIE is removed due to no remaining FDEs referencing it
and there were no CIEs kept before it, sec_info->entry[i].sec
will be zero. */
if (sec_info->entry[i].sec == NULL)
cie_offset = 0;
else
{
cie_offset = sec_info->entry[i].new_offset;
cie_offset += (sec_info->entry[i].sec->output_section->vma
+ sec_info->entry[i].sec->output_offset
- sec->output_section->vma
- sec->output_offset);
}
}
continue;
}
if (sec_info->entry[i].cie)
{
/* CIE */