[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