Hi there, I'd like to update the recommended 32 bit MinGW toolchain (that we also ship in binary installers) for 5.1 from
x32-4.7.2-release-posix-sjlj-rev8 to x32-4.8.0-release-posix-dwarf-rev1 The recommended 64 bit toolchain would change accordingly from x64-4.7.2-release-posix-sjlj-rev8 to x64-4.8.0-release-posix-seh-rev1 Download links: http://sourceforge.net/projects/mingwbuilds/files/host-windows/releases/4.8.0/32-bit/threads-posix/dwarf/x32-4.8.0-release-posix-dwarf-rev1.7z/download http://sourceforge.net/projects/mingwbuilds/files/host-windows/releases/4.8.0/64-bit/threads-posix/seh/x64-4.8.0-release-posix-seh-rev1.7z/download Since this is a major upgrade, I'd like to invite anyone interested to give the combination a try early on, preferably before we release 5.1.0 :) The upgrade would however mean that all users would have to re-compile their apps (mixing the old and new toolchain is not supported). REASONS: It turned out that the SJLJ exception model of the existing toolchain has a severe performance penalty for any Qt app, see e.g. http://sourceforge.net/mailarchive/message.php?msg_id=30532139 and https://bugreports.qt-project.org/browse/QTBUG-29653 With gcc 4.8.0 64 bit there's now SEH, which I understood is superior to SJLJ in any way. For 32 bit there's dwarf, which has problems when it comes to throwing exceptions to 'alien' stack frames (think of windows callbacks). There are also issues when using LoadLibrary without FreeLibrary, or mixing static and dynamic libgcc_s_dw2 linkage. Anyhow, I think these issues do not outweigh the heavy performance penalty for SJLJ. Apart from SEH exception handling this gcc 4.8 brings lots of general improvements. If we still however find blockers with gcc 4.8.0 an alternative would be to go for 4.7.2 / 4.7.3, but still switch the exception model to dwarf for 32 bit. Regards Kai _______________________________________________ Development mailing list [email protected] http://lists.qt-project.org/mailman/listinfo/development
