diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 82f6b3d72c7..09feedc7964 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2009-07-24 Kai Tietz + + * config/i386/cygming.h (DWARF2_UNWIND_INFO): Error build when + TARGET_BI_ARCH is specified without enabling SJLJ. + * config/i386/mingw32.h (MD_UNWIND_SUPPORT): Define MD_UNWIND_SUPPORT, + if TARGET_64BIT and TARGET_BI_ARCH aren't defined. + 2009-07-26 Mikael Pettersson * arm.md (negdi2): Use DImode if forcing a value into a register. diff --git a/gcc/config/i386/cygming.h b/gcc/config/i386/cygming.h index bc81554a3dd..5fc0c1d41c5 100644 --- a/gcc/config/i386/cygming.h +++ b/gcc/config/i386/cygming.h @@ -287,6 +287,10 @@ do { \ /* The logic of this #if must be kept synchronised with the logic for selecting the tmake_eh_file fragment in config.gcc. */ #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 diff --git a/gcc/config/i386/mingw32.h b/gcc/config/i386/mingw32.h index a5657c083c0..e856ecdbc97 100644 --- a/gcc/config/i386/mingw32.h +++ b/gcc/config/i386/mingw32.h @@ -207,7 +207,9 @@ __enable_execute_stack (void *addr) \ #include #endif -#if !TARGET_64BIT +/* For 64-bit Windows we can't use DW2 unwind info. Also for multilib + builds we can't use it, too. */ +#if !TARGET_64BIT && !defined (TARGET_BI_ARCH) #define MD_UNWIND_SUPPORT "config/i386/w32-unwind.h" #endif