This is the mail archive of the
mailing list for the GCC project.
Re: Mingw-w64 exception handling configuration
- From: Jeff Law <law at redhat dot com>
- To: Sandra Loosemore <sandra at codesourcery dot com>, ktietz70 at googlemail dot com, dave dot korn dot cygwin at gmail dot com
- Cc: "gcc at gcc dot gnu dot org" <gcc at gcc dot gnu dot org>
- Date: Thu, 19 May 2016 11:35:58 -0600
- Subject: Re: Mingw-w64 exception handling configuration
- Authentication-results: sourceware.org; auth=none
- References: <5734A0C4 dot 5070001 at codesourcery dot com> <57368BC9 dot 4030800 at codesourcery dot com>
On 05/13/2016 08:22 PM, Sandra Loosemore wrote:
Unfortunately our maintainer for the Windows targets (Kai Tietz) has
On 05/12/2016 09:27 AM, Sandra Loosemore wrote:
I see that the default EH behavior for a biarch mingw-w64 target GCC is
to use SJLJ for the 32-bit multilib and SEH for the 64-bit one, but that
there are #errors in cygming.h and mingw32.h that prevent you from
configuring a biarch build with --disable-sjlj-exceptions to use DWARF-2
and SEH, respectively. Is there a deep reason for this, or is this just
a case where nobody updated the configuration logic after SEH was
implemented? I understand that before that, you had to use SJLJ for
64-bit targets because the DWARF-2 support is restricted to 32-bit
targets, so it was completely reasonable to error out.
Following up my own post....
I did some experimentation, and it looks like this is indeed just a
result of bit-rotten configuration logic. I hacked up the attached
patch against our local GCC 5.2 branch and built and tested it as a
cross-compiler (C and C++ front ends only). Test results for the
--disable-sjlj-exceptions case have a few differences compared to
--enable-sjlj-exceptions but they're not particularly better or worse.
Maintainers, any guidance on getting this into trunk? E.g. I am not
particularly interested in Cygwin target and have not tried to build
that, but this affects code common to both Cygwin and Mingw-w64.
The patch looks reasonable to me. I'd go with it on the trunk, then
backport to the release branch at a later date.