Date: Thu, 12 Oct 2017 21:53:17 +0200 From: Roman Divacky <rdivacky@freebsd.org> To: Justin Hibbits <jhibbits@FreeBSD.org> Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r324511 - head/contrib/binutils/bfd Message-ID: <20171012195317.GA3199@vlakno.cz> In-Reply-To: <201710110239.v9B2dKlx022588@repo.freebsd.org> References: <201710110239.v9B2dKlx022588@repo.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
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@freebsd.org mailing list > https://lists.freebsd.org/mailman/listinfo/svn-src-head > To unsubscribe, send any mail to "svn-src-head-unsubscribe@freebsd.org"
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20171012195317.GA3199>