Only redefine ASM_PREFERRED_EH_DATA_FORMAT if necessary on Solaris/x86

Rainer Orth ro@CeBiTec.Uni-Bielefeld.DE
Thu Apr 24 08:51:00 GMT 2014


Currently, Solaris/x86 uses a private version of
ASM_PREFERRED_EH_DATA_FORMAT since older versions of the Solaris
assembler couldn't calculate the difference between labels in different
sections.  This restriction has been lifted in Solaris 10 patch
119961-07 from May 2010.  Since the redefinition causes us to lose
several cases in the i386 default (asm_preferred_eh_data_format) and the
unwinder can easily deal with different encodings, it's best to avoid
the redefinition if possible.

The following patch does just that.  I chose to only test for
!HAVE_AS_IX86_DIFF_SECT_DELTA to enable the redef, not also
HAVE_GAS_CFI_DIRECTIVE, to allow for the (admittedly unlikely) case the
the assembler supports cfi directives, but not inter-section label
diffs.  In this scenario, -fno-dwarf2-cfi-asm would be broken.

Tested on i386-pc-solaris2.1[10] with all different as/ld combos,
installed on mainline.

	Rainer


2014-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config/i386/sol2.h (ASM_PREFERRED_EH_DATA_FORMAT): Only redefine
	if not HAVE_AS_IX86_DIFF_SECT_DELTA.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: solx86-asm_preferred_eh_data_format.patch
Type: text/x-patch
Size: 1056 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20140424/70776dec/attachment.bin>
-------------- next part --------------

-- 
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University


More information about the Gcc-patches mailing list