cygming.h (DWARF2_UNWIND_INFO): Allow --disable-sjlj-exceptions for TARGET_BI_ARCH to select DWARF-2 EH for...

2016-05-19  Sandra Loosemore  <sandra@codesourcery.com>

	gcc/
	* config/i386/cygming.h (DWARF2_UNWIND_INFO): Allow 
	--disable-sjlj-exceptions for TARGET_BI_ARCH to select DWARF-2 EH
	for 32-bit mode and SEH for 64-bit.
	* config/i386/mingw32.h (SHARED_LIBGCC_UNDEFS_SPEC): Handle
	TARGET_64BIT_DEFAULT.

	libgcc/
	* config.host [x86_64-*-cygwin*]: Handle tmake_eh_file for mixed 
	dw2/seh configuration.
	[x86_64-*-mingw*]: Likewise.

From-SVN: r236490
This commit is contained in:
Sandra Loosemore 2016-05-19 17:59:45 -04:00 committed by Sandra Loosemore
parent 8a40fef310
commit 6befaff666
5 changed files with 29 additions and 9 deletions

View File

@ -1,3 +1,11 @@
2016-05-19 Sandra Loosemore <sandra@codesourcery.com>
* config/i386/cygming.h (DWARF2_UNWIND_INFO): Allow
--disable-sjlj-exceptions for TARGET_BI_ARCH to select DWARF-2 EH
for 32-bit mode and SEH for 64-bit.
* config/i386/mingw32.h (SHARED_LIBGCC_UNDEFS_SPEC): Handle
TARGET_64BIT_DEFAULT.
2016-05-16 Ryan Burn <contact@rnburn.com>
* Makefile.in (GTFILES): Add cilk.h and cilk-common.c.

View File

@ -339,16 +339,13 @@ do { \
#define ASM_COMMENT_START " #"
#ifndef DWARF2_UNWIND_INFO
/* If configured with --disable-sjlj-exceptions, use DWARF2, else
default to SJLJ. */
/* If configured with --disable-sjlj-exceptions, use DWARF2 for 32-bit
mode else default to SJLJ. 64-bit code uses SEH unless you request
SJLJ. */
#if (defined (CONFIG_SJLJ_EXCEPTIONS) && !CONFIG_SJLJ_EXCEPTIONS)
/* The logic of this #if must be kept synchronised with the logic
for selecting the tmake_eh_file fragment in config.gcc. */
for selecting the tmake_eh_file fragment in libgcc/config.host. */
#define DWARF2_UNWIND_INFO 1
/* If multilib is selected break build as sjlj is required. */
#if defined (TARGET_BI_ARCH)
#error For 64-bit windows and 32-bit based multilib version of gcc just SJLJ exceptions are supported.
#endif
#else
#define DWARF2_UNWIND_INFO 0
#endif

View File

@ -100,10 +100,12 @@ along with GCC; see the file COPYING3. If not see
#if DWARF2_UNWIND_INFO
/* DW2-unwind is just available for 32-bit mode. */
#if TARGET_64BIT_DEFAULT
#error DW2 unwind is not available for 64-bit.
#endif
#define SHARED_LIBGCC_UNDEFS_SPEC \
"%{m32: %{shared-libgcc: -u ___register_frame_info -u ___deregister_frame_info}}"
#else
#define SHARED_LIBGCC_UNDEFS_SPEC \
"%{shared-libgcc: -u ___register_frame_info -u ___deregister_frame_info}"
#endif
#else
#define SHARED_LIBGCC_UNDEFS_SPEC ""
#endif

View File

@ -1,3 +1,9 @@
2016-05-19 Sandra Loosemore <sandra@codesourcery.com>
* config.host [x86_64-*-cygwin*]: Handle tmake_eh_file for mixed
dw2/seh configuration.
[x86_64-*-mingw*]: Likewise.
2016-05-10 Joel Sherrill <joel@rtems.org>
PR libgcc/70720

View File

@ -678,6 +678,9 @@ x86_64-*-cygwin*)
# This has to match the logic for DWARF2_UNWIND_INFO in gcc/config/i386/cygming.h
if test x$ac_cv_sjlj_exceptions = xyes; then
tmake_eh_file="i386/t-sjlj-eh"
elif test "${host_address}" = 32; then
# biarch -m32 with --disable-sjlj-exceptions
tmake_eh_file="i386/t-dw2-eh"
else
tmake_eh_file="i386/t-seh-eh"
fi
@ -730,6 +733,10 @@ x86_64-*-mingw*)
# This has to match the logic for DWARF2_UNWIND_INFO in gcc/config/i386/cygming.h
if test x$ac_cv_sjlj_exceptions = xyes; then
tmake_eh_file="i386/t-sjlj-eh"
elif test "${host_address}" = 32; then
# biarch -m32 with --disable-sjlj-exceptions
tmake_eh_file="i386/t-dw2-eh"
md_unwind_header=i386/w32-unwind.h
else
tmake_eh_file="i386/t-seh-eh"
fi