On 4/19/2010 2:18 PM, Ehsan Azarnasab wrote:
> On Mon, Apr 19, 2010 at 12:45 PM, John E. / TDM<tdragon@...> wrote:
>
>> Everything works fine in my multithreaded exceptions testcase (as long
>> as, per the notes, -Wl,--enable-auto-import is used, but that's not
>> related).
>>
> Does this mean that we do not need any SJLJ version anymore? And as a
> result for example TDM might change the default binaries to DW2 while
> maybe keeping the SJLJ version with a suffix (i.e. g++-SJLJ.exe)? I
> have seen this confuses people who want to link against a library
> build with a different unwinding.
>
The question of DWARF-2 versus SJLJ unwinding has little to do with
multithreading, and additionally TDM-GCC isn't supported by this mailing
list or by the MinGW project in general, but I'll answer your question
anyway.
The consensus among those responsible for the official MinGW GCC
releases? No, SJLJ isn't needed anymore. That's why every official
release since 4.4.0, including this one, has been DWARF-2 unwinding only.
My opinion? Well, there is still code out there that relies on unwinding
through frames in system DLLs, and that still breaks with DWARF-2. So in
TDM-GCC I elect to stick with SJLJ unwinding as a reasonable default.
Since you bring it up, however, I may add some additional language on
the TDM-GCC site that explains why mixing object code from different GCC
releases using different unwind mechanisms breaks exceptions.
-John E.
|