lists.zerezo.com
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
***BOGO*** Re: [Mingw-users] Installation trouble with 4.3 Alpha
- Date: Sat, 21 Jun 2008 13:11:12 -0500
- From: "Aaron W. LaFramboise" <aaron77thyme@xxxxxxxxxxx>
- Subject: ***BOGO*** Re: [Mingw-users] Installation trouble with 4.3 Alpha
Hi Dave,
Dave Korn wrote:
> Aaron W. LaFramboise wrote on 08 June 2008 20:43:
>
>> The main blocker, in case anyone is wondering, is trying to fix the
>> exception foreign frames issue, which has been a object of concern for
>> many people.
>
> How are you approaching this? I looked on the GSoC page but couldn't find
> any description of the strategy. (I could test patches on cygwin for you,
> if that would help any.)
Not very well. :)
Details of the various approaches I attempted will be forthcoming soon
on the Wiki page, as I have not been able to reach a satisfactory
solution here.
Presently, the unsatisfactory but serendipitous solution to this issue I
am pursuing is adding partial SEH support to GCC, then adding special
annotations to prototypes of functions we'd like to unwind through
(specifically DispatchMessage()), and allow DW2 exceptions to land at
these special SEH landing pads.
Sorry, I'm too busy trying to get everything on my short TODO list out
(like the overdue MinGW release) to explain further at this time. :(
One side note: I've discovered that this is definitely invalid. As part
of the research I've done on this issue, I've found two separate places
in official Microsoft documentation that states throwing through foreign
frames is not valid. Additionally, on at least one implementation of
Windows (older WinCE on Palm), exceptions don't even propagate through
DispatchMessage()).
As another data point, other DW2 targets do not allow this sort of
unwinding through foreign frames.
This is in addition to the obvious reason that this is invalid: it
asynchronously blows away frames that weren't expecting to be blown away.
For this reason, and the fact that this is holding up other things, I
believe I'll be proceeding without this. We'll fix it for
DispatchMessage(), call it a special MinGW extension, and give
instructions on how to do it on other functions 'at your own risk.' A
general solution will not happen, because this is probably impossible in
the general case, and this is probably a good thing, for the above reasons.
-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
MinGW-users mailing list
MinGW-users@xxxxxxxxxxxxxxxxxxxxx
You may change your MinGW Account Options or unsubscribe at:
https://lists.sourceforge.net/lists/listinfo/mingw-users