Alexandre Julliard wrote:
Robert Shearman rob@codeweavers.com writes:
Alexandre Julliard wrote:
I don't think we want to disable exceptions, that will just lead to broken builds. It should be possible to make the sigsetjmp variant work for MinGW.
You can make it compile by using sigjmp instead of sigsetjmp, but there's not much point because the code depends on Wine-only functions in ntdll that aren't available on Windows and so would cause the DLLs not to load.
Yes, but the functions could be moved to winecrt0 or something like that and get statically linked into the dll.
In the past, I tried using our implementation of __wine_exception_handler on Windows, but it crashes in these three lines:
RtlUnwind( frame, 0, record, 0 ); __wine_pop_frame( frame ); siglongjmp( wine_frame->jmp, 1 );
The reason is that RtlUnwind clears all general purpose registers (and maybe changes esp/ebp) so that frame is no longer valid. There may be a way to work around this, but I'm not sure.