2003-10-16 H.J. Lu <hongjiu.lu@intel.com>
* elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Don't use the last CIE from a different section. (_bfd_elf_write_section_eh_frame): Don't pad beyond the raw size of the output section.
This commit is contained in:
parent
506fb36784
commit
9da84788da
2 changed files with 15 additions and 1 deletions
|
@ -1,3 +1,10 @@
|
|||
2003-10-16 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Don't
|
||||
use the last CIE from a different section.
|
||||
(_bfd_elf_write_section_eh_frame): Don't pad beyond the raw
|
||||
size of the output section.
|
||||
|
||||
2003-10-07 Roland McGrath <roland@redhat.com>
|
||||
|
||||
* elf.c (_bfd_elf_make_section_from_phdr): Set alignment_power of
|
||||
|
|
|
@ -372,6 +372,9 @@ _bfd_elf_discard_section_eh_frame
|
|||
all FDEs. Also, it can be removed if we have removed
|
||||
all FDEs using it. */
|
||||
if ((!info->relocatable
|
||||
&& hdr_info->last_cie_sec
|
||||
&& (sec->output_section
|
||||
== hdr_info->last_cie_sec->output_section)
|
||||
&& cie_compare (&cie, &hdr_info->last_cie) == 0)
|
||||
|| cie_usage_count == 0)
|
||||
{
|
||||
|
@ -1031,7 +1034,11 @@ _bfd_elf_write_section_eh_frame (bfd *abfd,
|
|||
unsigned int alignment = 1 << sec->alignment_power;
|
||||
unsigned int pad = sec->_cooked_size % alignment;
|
||||
|
||||
if (pad)
|
||||
/* Don't pad beyond the raw size of the output section. It
|
||||
can happen at the last input section. */
|
||||
if (pad
|
||||
&& ((sec->output_offset + sec->_cooked_size + pad)
|
||||
<= sec->output_section->_raw_size))
|
||||
{
|
||||
/* Find the last CIE/FDE. */
|
||||
for (i = sec_info->count - 1; i > 0; i--)
|
||||
|
|
Loading…
Reference in a new issue