Hi!
When I try to build gcc from trunk with mingw-w64 I successfully build
only 64bit with seh exceptions. Other builds stop on error
../../../../../../mingw-sources/gcc-trunk/libgcc/unwind-c.c:238:1:
warning: no previous prototype for '__gcc_personality_seh0'
[-Wmissing-prototypes]
__gcc_personality_seh0 (PEXCEPTION_RECORD ms_exc, void *this_frame,
^
../../../../../../mingw-sources/gcc-trunk/libgcc/unwind-c.c: In
function '__gcc_personality_seh0':
../../../../../../mingw-sources/gcc-trunk/libgcc/unwind-c.c:242:14:
error: '__gcc_personality_imp' undeclared (first use in this function)
ms_disp, __gcc_personality_imp);
^
../../../../../../mingw-sources/gcc-trunk/libgcc/unwind-c.c:242:14:
note: each undeclared identifier is reported only once for each
function it appears in
../../../../../../mingw-sources/gcc-trunk/libgcc/unwind-c.c: At top level:
../../../../../../mingw-sources/gcc-trunk/libgcc/unwind-c.c:94:33:
warning: '__gcc_personality_sj0' defined but not used
[-Wunused-function]
#define PERSONALITY_FUNCTION __gcc_personality_sj0
^
../../../../../../mingw-sources/gcc-trunk/libgcc/unwind-c.c:120:1:
note: in expansion of macro 'PERSONALITY_FUNCTION'
PERSONALITY_FUNCTION (int version,
^
../../../../../../mingw-sources/gcc-trunk/libgcc/unwind-c.c: In
function '__gcc_personality_seh0':
../../../../../../mingw-sources/gcc-trunk/libgcc/unwind-c.c:243:1:
warning: control reaches end of non-void function [-Wreturn-type]
}
^
make[4]: *** [unwind-c.o] Error 1
make[4]: *** Waiting for unfinished jobs....
I find that __SEH__ defined in gcc/config/i386/cygming.h as
.....
#undef TARGET_SEH
#define TARGET_SEH (TARGET_64BIT_MS_ABI && flag_unwind_tables)
....
#define TARGET_OS_CPP_BUILTINS() \
do \
{ \
if (!TARGET_64BIT) \
builtin_define ("_X86_=1"); \
if (TARGET_SEH) \
builtin_define ("__SEH__");
.....
As I think __SEH__ is always defined that leads to error.