On 11/30/2009 01:03 PM, Richard W.M. Jones wrote:
> On Mon, Nov 30, 2009 at 12:53:53PM +0200, Kalev Lember wrote:
>> On 11/30/2009 12:19 PM, Richard W.M. Jones wrote:
>>> On Mon, Nov 30, 2009 at 11:56:46AM +0200, Kalev Lember wrote:
>>>> To work around that, upstream mingw has a patch to annotate
>>>> functions which support unwinding with SEH with
>>>> __attribute__((seh_aware)). I've tested that patch and it really
>>>> does fix binary compatibility with binaries produced by Visual
>>>> Studio.
>>>
>>> I'm not quite sure I understand this bit - which functions
>>> need to be annotated?
>>
>> Lets say we have function a() in a.dll (compiled with mingw), b() in 
>> b.dll (compiled with Visual Studio) and main() in c.exe (compiled with 
>> mingw). c.exe is linked against b.dll, and b.dll is linked against 
>> a.dll. Now if an exception is thrown in a() and rethrown in b(), then 
>> b() prototype in header file has to be annotated like this to make it 
>> possible to catch it in main() in c.exe:
>>
>> void b() __attribute__((seh_aware));
>>
>> MinGW unwinder supports unwinding either DWARF2 or SEH, but the runtime 
>> has no way of knowing whether a function supports unwinding with SEH. 
>> The patch is a workaround to add seh_aware attribute to foreign (SEH) 
>> function declarations. MinGW release notes [3] explain that it's only a 
>> temporary measure and future versions of w32api will have a way of doing 
>> it automatically.
>>
>> [3] http://sourceforge.net/project/shownotes.php?release_id=691876
> 
> It certainly sounds like a hack ...  But I know even less about this
> than anyone else on this thread, so I'll shut up.

my question: what is the benefit of change? i can't see any:-(
and until ms change his calling convention in visual studio imho it's
safer to remain and their side...

-- 
  Levente                               "Si vis pacem para bellum!"
_______________________________________________
fedora-mingw mailing list
[email protected]
https://admin.fedoraproject.org/mailman/listinfo/fedora-mingw

Reply via email to