svn commit: r324511 - head/contrib/binutils/bfd
Roman Divacky
rdivacky at freebsd.org
Thu Oct 12 20:04:12 UTC 2017
Note that this allows to use C++ EH on a gcc built PPC64 world for
applications built by clang++.
Roman
On Wed, Oct 11, 2017 at 02:39:20AM +0000, Justin Hibbits wrote:
> Author: jhibbits
> Date: Wed Oct 11 02:39:20 2017
> New Revision: 324511
> URL: https://svnweb.freebsd.org/changeset/base/324511
>
> Log:
> Do exception offset computations in 64 bits, not 32.
>
> This fixes clang-built binaries on a gcc powerpc64 world. Gets us one step
> closer to a clang-built world. The same change was made in later upstream
> binutils.
>
> Submitted by: rdivacky
> MFC after: 2 weeks
>
> Modified:
> head/contrib/binutils/bfd/elf-eh-frame.c
>
> Modified: head/contrib/binutils/bfd/elf-eh-frame.c
> ==============================================================================
> --- head/contrib/binutils/bfd/elf-eh-frame.c Wed Oct 11 00:31:54 2017 (r324510)
> +++ head/contrib/binutils/bfd/elf-eh-frame.c Wed Oct 11 02:39:20 2017 (r324511)
> @@ -1344,7 +1344,7 @@ _bfd_elf_write_section_eh_frame (bfd *abfd,
>
> val = read_value (abfd, buf, per_width,
> get_DW_EH_PE_signed (per_encoding));
> - val += ent->offset - ent->new_offset;
> + val += (bfd_vma)ent->offset - ent->new_offset;
> val -= extra_string + extra_data;
> write_value (abfd, buf, val, per_width);
> action &= ~4;
> @@ -1400,7 +1400,7 @@ _bfd_elf_write_section_eh_frame (bfd *abfd,
> }
> break;
> case DW_EH_PE_pcrel:
> - value += ent->offset - ent->new_offset;
> + value += (bfd_vma)ent->offset - ent->new_offset;
> address += sec->output_section->vma + ent->offset + 8;
> break;
> }
> @@ -1428,7 +1428,7 @@ _bfd_elf_write_section_eh_frame (bfd *abfd,
> if (value)
> {
> if ((ent->lsda_encoding & 0xf0) == DW_EH_PE_pcrel)
> - value += ent->offset - ent->new_offset;
> + value += (bfd_vma)ent->offset - ent->new_offset;
> else if (ent->cie_inf->need_lsda_relative)
> value -= (sec->output_section->vma + ent->new_offset + 8
> + ent->lsda_offset);
> _______________________________________________
> svn-src-head at freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/svn-src-head
> To unsubscribe, send any mail to "svn-src-head-unsubscribe at freebsd.org"
More information about the svn-src-all
mailing list