[Development] Choosing a new MinGW for Qt 5

Peter Kümmel syntheticpp at gmx.net
Sat Sep 1 12:23:31 CEST 2012


On 30.08.2012 18:16, Thiago Macieira wrote:
> On quinta-feira, 30 de agosto de 2012 17.25.24, Pau Garcia i Quiles wrote:
>> There are more differences than that. There are differences in
>> features, such as threading support, large-file support, etc.
>> Mingw-w64 is usually ahead of any other in terms of features.
>
> My suggestion on how to proceed is to choose one that offers the following or
> most of the following:
>
>   - most recent GCC (4.7 preferably, 4.6 if not)
>   - *working* GDB and tested with Creator, with Python support
>   - large file support, threading
>   - zero-overhead exceptions (no SJLJ exceptions)

Seems to be a complicated topic.
There are three implementations SJLJ, Dwraf-2, SEH (not SEH
support but C++ exceptions implemented with SEH)
and on two systems Win32 and Win64

http://sourceforge.net/mailarchive/message.php?msg_id=29651219
http://www.nynaeve.net/?p=113
http://lists.cs.uiuc.edu/pipermail/llvmdev/2012-August/052339.html
http://gcc.gnu.org/wiki/WindowsGCCImprovements
http://tdm-gcc.tdragon.net/start
http://sourceforge.net/tracker/?func=detail&aid=3019861&group_id=202880&atid=983357
http://sourceforge.net/apps/trac/mingw-w64/wiki/Exception%20Handling

Using Dwarf-2 (a zero-overhead implementation) is problematic:
     "As a general rule, you should choose the default SJLJ packages,
      unless you know you need faster exception handling and can guarantee
      you'll never need to unwind through non-DW2-compiled stack frames
      (such as a Windows callback)"
     Using SJLJ "can work across code that has not been compiled with
     GCC or that does not have call-stack unwinding information."


In summary:

SJLJ  & 32 : to much overhead
SJLJ  & 64 : to much overhead
Dwarf & 32 : no general stack unwinding
Dwarf & 64 : no general stack unwinding
SEH   & 32 : patented by MSFT
SEH   & 64 : only in GCC >= 4.7.2(4.8?)


>   - standard win32 headers, if possible using the Platform SDK headers
>   - large set of win32 import libraries
>   - 32 and 64-bit in one package
>   - make with -j support
>   - if this exists: can link to .dll directly, instead of import libs
>
> We should choose one version to be the reference platform and work on making
> it Tier 1. We shouldn't have two versions, that duplicates work.
>
>
>
> _______________________________________________
> Development mailing list
> Development at qt-project.org
> http://lists.qt-project.org/mailman/listinfo/development
>



More information about the Development mailing list