Crossbuild patch, appropriate for wine?

Robert Shearman rob at codeweavers.com
Fri Apr 4 08:35:34 CDT 2008


Alexandre Julliard wrote:
> Robert Shearman <rob at 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.

-- 
Rob Shearman




More information about the wine-devel mailing list