Re: [Development] Choosing a new MinGW for Qt 5

2012-09-09 Thread niXman
Jonathan Liu:
 Also, GCC 4.7.x has problem where it runs out of
 memory in some cases (https://bugs.archlinux.org/task/28329).

I just checked for the i686 and x86_64 - all ok.


-- 
Regards,
niXman
___
Dual-target(32  64 bit) MinGW compilers for 32 and 64 bit Windows:
http://sourceforge.net/projects/mingwbuilds/
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Choosing a new MinGW for Qt 5

2012-09-04 Thread Jonathan Liu
On 31/08/2012 2:16 AM, 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)
I had a problem with MinGW-builds GCC 4.7.1 32-bit. Qt Creator would 
crash if I opened the Qt resource editor if Qt 4.8.2 and Qt Creator 
2.5.2 were compiled with it. MinGW-builds GCC 4.7.1 64-bit didn't crash.

I switched to MinGW-builds 4.6.3 for both 32-bit and 64-bit and it seems 
to be working fine. Also, GCC 4.7.x has problem where it runs out of 
memory in some cases (https://bugs.archlinux.org/task/28329).

   - make with -j support

Patch for that here: 
http://www.mail-archive.com/make-w32@gnu.org/msg02283.html. I use this 
regularly with 8 threads (set MAKEFLAGS=-j8).

It is also in GNU Make CVS.

   - if this exists: can link to .dll directly, instead of import libs

I've done this before linking to some proprietary C dlls created by 
Visual C++. YMMV.


 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.

I agree.

Some other MinGW-related notes follow.

Compiling WebKit fails due to mingw32-make using temporary batch files 
which are subject to 8191 character limit per line. Can be fixed using 
instructions at: 
http://old.nabble.com/Re%3A-command-line-limit-in-mingw-make-p33909533.html

ICU can be compiled with MinGW-w64 after applying:
http://bugs.icu-project.org/trac/changeset/31770/icu/trunk/source/tools/toolutil/pkg_genc.c?format=diffnew=31770

Regards,
Jonathan
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Choosing a new MinGW for Qt 5

2012-09-03 Thread Tr3wory
On Sat, Sep 1, 2012 at 1:58 PM, Peter Kümmel syntheti...@gmx.net wrote:
 What is the problem with the current thread support in mingw?

When you compile the gcc, you can choose which thread model do you
want to use: win32 or pthread.
In case of pthread the gcc will use the winpthreads package for
threading, and the new c++11 threading facilities will work.
In case of win32 it will use the native threading functions but it is
not fully implemented yet, so the std::thread, std::future, etc. won't
work. As far as I know the win32 is the default, and used by MinGW and
TDM-mingw.

tr3w
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Choosing a new MinGW for Qt 5

2012-09-03 Thread kai.koehne
Hi there,

First of all it's great that so many people care about Qt on MinGW :) 

I think I got now a better understanding of what mingw-64 really is: The 
project itself is only about providing the bits' and pieces for gcc compiling 
for win32 64 bit. It does _not_ provide official binaries: If you don't want to 
configure  compile a toolchain on your own you've to either resort to personal 
builds, or related projects. For the personal builds, the packages by rubenv 
seem to be the most popular. The mingw-builds project is also largely based on 
mingw-64, and is actually also driven by 'just' one developer (niXman). tdm-gcc 
is another popular package, but actually by now rather outdated, which is why 
didn't have a closer look ...

About the different criteria Thiago proposed:

 -Original Message-
 From: development-bounces+kai.koehne=nokia@qt-project.org
 [mailto:development-bounces+kai.koehne=nokia@qt-project.org] On
 Behalf Of ext Thiago Macieira
 Sent: Thursday, August 30, 2012 6:17 PM
 To: development@qt-project.org
 Subject: Re: [Development] Choosing a new MinGW for Qt 5
 
 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)

Latest mingw-builds and latest rubenv packages both provide 4.7.1

  - *working* GDB and tested with Creator, with Python support

A quick test didn't show any problems with either gdb (7.5.0 in both cases, 
with python on board)

  - large file support

Both check for _FILE_OFFSET_BITS in headers, and also have lseek64 symbol 
defined.

 -threading

mingw-builds: gcc -v says 'posix'
rubenv: gcc -v says 'win32' . There's extra packages labeled 
gcc-4.7-experimental-stdthread/

  - zero-overhead exceptions (no SJLJ exceptions)

At the moment both use  SJLJ. SEH (zero overhead) exceptions for 64 bit will 
come with 4.7.2, I assume.

  - standard win32 headers, if possible using the Platform SDK headers

I don't think that's offered by either one at the moment (and actually would be 
harmful, given that Microsoft won't ship a full platform sdk any more outside 
of Visual Studio ...)

  - large set of win32 import libraries

I just compared the list of .a files they offer in addition to each other:
rubenv: libgfortran, libgomp, libquadmath, libssp, libstdc++, libsupc++
mingw-builds: libcharset, libiconv, libksguid, libportabledeviceguids, 
libsensorsapi, libwindowscodecs, libwinhttp

  - 32 and 64-bit in one package

That's the biggest difference between the packages: mingw-builds offer a 32 bit 
and a 64 compiler (host) generating either 32 bit or 64 bit programs. For 
rubenv you've to select the host/target architecture by downloading the right 
package ...

  - make with -j support

mingw32-make is broken in the rubenv packages I tested. Mingw32-make -j 2 from 
mingw-builds worked for me (though I didn't check whether they truly 
parallelized... but my machine was quite busy ;)

  - if this exists: can link to .dll directly, instead of import libs

No idea about this one .
 
 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.

I had two issues with the rubenv packages: mingw32-make didn't work, and ld.exe 
crashing for me in the x86_64-w64-mingw32-gcc-4.7.1-2-release-win64_rubenvb 
package . That's why I personally will  stick to the mingw-builds package. But 
then again things might easily change in the near future: Both are updated 
quite frequently, and I don't think either of the packages get a lot of testing 
before being released ... Maybe we have to bite the bullet and provide our own, 
'official' packages with a future Qt 5.0 SDK. 

Regards

Kai

 --
 Thiago Macieira - thiago.macieira (AT) intel.com
   Software Architect - Intel Open Source Technology Center
  Intel Sweden AB - Registration Number: 556189-6027
  Knarrarnäsgatan 15, 164 40 Kista, Stockholm, Sweden
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Choosing a new MinGW for Qt 5

2012-09-03 Thread Peter Kümmel
On 03.09.2012 16:10, kai.koe...@nokia.com wrote:

 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)

 Latest mingw-builds and latest rubenv packages both provide 4.7.1

   - *working* GDB and tested with Creator, with Python support

 A quick test didn't show any problems with either gdb (7.5.0 in both cases, 
 with python on board)

   - large file support

 Both check for _FILE_OFFSET_BITS in headers, and also have lseek64 symbol 
 defined.

 -threading

 mingw-builds: gcc -v says 'posix'
 rubenv: gcc -v says 'win32' . There's extra packages labeled 
 gcc-4.7-experimental-stdthread/

Maybe the reason way mingw32-amke is broken in rubenv's build.


   - zero-overhead exceptions (no SJLJ exceptions)

 At the moment both use  SJLJ. SEH (zero overhead) exceptions for 64 bit will 
 come with 4.7.2, I assume.

   - standard win32 headers, if possible using the Platform SDK headers

 I don't think that's offered by either one at the moment (and actually would 
 be harmful, given that Microsoft won't ship a full platform sdk any more 
 outside of Visual Studio ...)

   - large set of win32 import libraries

 I just compared the list of .a files they offer in addition to each other:
 rubenv: libgfortran, libgomp, libquadmath, libssp, libstdc++, libsupc++
 mingw-builds: libcharset, libiconv, libksguid, libportabledeviceguids, 
 libsensorsapi, libwindowscodecs, libwinhttp

   - 32 and 64-bit in one package

 That's the biggest difference between the packages: mingw-builds offer a 32 
 bit and a 64 compiler (host) generating either 32 bit or 64 bit programs. For 
 rubenv you've to select the host/target architecture by downloading the right 
 package ...

   - make with -j support

 mingw32-make is broken in the rubenv packages I tested. Mingw32-make -j 2 
 from mingw-builds worked for me (though I didn't check whether they truly 
 parallelized... but my machine was quite busy ;)

   - if this exists: can link to .dll directly, instead of import libs

 No idea about this one .

 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.

 I had two issues with the rubenv packages: mingw32-make didn't work, and 
 ld.exe crashing for me in the 
 x86_64-w64-mingw32-gcc-4.7.1-2-release-win64_rubenvb package . That's why I 
 personally will  stick to the mingw-builds package. But then again things 
 might easily change in the near future: Both are updated quite frequently, 
 and I don't think either of the packages get a lot of testing before being 
 released ... Maybe we have to bite the bullet and provide our own, 'official' 
 packages with a future Qt 5.0 SDK.

 Regards

 Kai


So our wishlist looks like this:

- winthreads
- 32 bit target: dwarf2
- 64 bit target: SEH with 4.7.2 or also dwarf2
- multilib


Mingwbuilds http://sourceforge.net/projects/mingwbuilds/  also mentions
- OpenMP
- LTO
- Graphite
- std Concurrency
- Native TLS Callbacks
- Wide-Character Startup (-municode)

something we should also care about?


And yes, it looks like we have to build it by our own mingw.
(But it seems to be straightforward)

Peter
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Choosing a new MinGW for Qt 5

2012-09-01 Thread Peter Kümmel
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=detailaid=3019861group_id=202880atid=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
SEH32 : patented by MSFT
SEH64 : 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@qt-project.org
 http://lists.qt-project.org/mailman/listinfo/development

___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Choosing a new MinGW for Qt 5

2012-09-01 Thread Pau Garcia i Quiles
 SEH32 : patented by MSFT

It's actually Borland's patent and Borland said they only patented
that to defend themselves from third-party attacks, they have no
interest in attacking gcc:

http://web.archive.org/web/20070818053531/blogs.codegear.com/dcc/archive/2005/05/12/4294.aspx

I wonder if anybody rang the doorbell and asked as Danny Thorpe proposed.

-- 
Pau Garcia i Quiles
http://www.elpauer.org
(Due to my workload, I may need 10 days to answer)
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Choosing a new MinGW for Qt 5

2012-09-01 Thread Thiago Macieira
On sábado, 1 de setembro de 2012 12.23.31, Peter Kümmel wrote:
  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.

We don't need that.

Unwinding the stack through C functions and code that isn't exception-safe in
the first place is stupid. The only sane outcome of doing that is a crash.

What's more, all Qt libraries aside from QtCore and QtXmlPatterns are built
with exceptions disabled. That means that if your code leaks an exception
through a GUI event loop or a signal from one of those classes, the
application will crash.

So we don't need SJLJ.
--
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center
 Intel Sweden AB - Registration Number: 556189-6027
 Knarrarnäsgatan 15, 164 40 Kista, Stockholm, Sweden


signature.asc
Description: This is a digitally signed message part.
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Choosing a new MinGW for Qt 5

2012-09-01 Thread Peter Kümmel
On 01.09.2012 12:39, Thiago Macieira wrote:
 On sábado, 1 de setembro de 2012 12.23.31, Peter Kümmel wrote:
   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.

 We don't need that.

 Unwinding the stack through C functions and code that isn't exception-safe in
 the first place is stupid. The only sane outcome of doing that is a crash.

 What's more, all Qt libraries aside from QtCore and QtXmlPatterns are built
 with exceptions disabled. That means that if your code leaks an exception
 through a GUI event loop or a signal from one of those classes, the
 application will crash.

 So we don't need SJLJ.


So you think it is possible to use DW2 for 32 bit binaries?

What happens if a binary compiled with GCC/DW2 calls a
C++ function in a Dll compiled with MSVC and this function
throws an exception?



 ___
 Development mailing list
 Development@qt-project.org
 http://lists.qt-project.org/mailman/listinfo/development

___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Choosing a new MinGW for Qt 5

2012-09-01 Thread Peter Kümmel
On 01.09.2012 12:47, Peter Kümmel wrote:
 On 01.09.2012 12:39, Thiago Macieira wrote:
 On sábado, 1 de setembro de 2012 12.23.31, Peter Kümmel wrote:
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.

 We don't need that.

 Unwinding the stack through C functions and code that isn't exception-safe in
 the first place is stupid. The only sane outcome of doing that is a crash.

 What's more, all Qt libraries aside from QtCore and QtXmlPatterns are built
 with exceptions disabled. That means that if your code leaks an exception
 through a GUI event loop or a signal from one of those classes, the
 application will crash.

 So we don't need SJLJ.


 So you think it is possible to use DW2 for 32 bit binaries?

 What happens if a binary compiled with GCC/DW2 calls a
 C++ function in a Dll compiled with MSVC and this function
 throws an exception?

The exception could not be catched?

But is this a valid scenario? Catching exceptions
from a 3rd party C++ library compiled with a
different compiler?

 ___
 Development mailing list
 Development@qt-project.org
 http://lists.qt-project.org/mailman/listinfo/development

___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Choosing a new MinGW for Qt 5

2012-09-01 Thread Peter Kümmel
On 01.09.2012 12:52, Thiago Macieira wrote:
 On sábado, 1 de setembro de 2012 12.47.15, Peter Kümmel wrote:
 So you think it is possible to use DW2 for 32 bit binaries?

 Yes.

 What happens if a binary compiled with GCC/DW2 calls a
 C++ function in a Dll compiled with MSVC and this function
 throws an exception?

 First of all, how did you manage to compile that call?

 Remember that the C++ ABIs are incompatible. That means you made the call
 through an extern C function. Assume that all C functions do not throw.

Yes, that's the reason why I assume such is not a real-world setup, one
had to translate the msvc mangling into the gcc one's.


 [For now; on Linux and some other systems, exceptions in C are used to mark
 thread cancellation points]



 ___
 Development mailing list
 Development@qt-project.org
 http://lists.qt-project.org/mailman/listinfo/development

___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Choosing a new MinGW for Qt 5

2012-09-01 Thread Peter Kümmel
On 31.08.2012 09:02, Pau Garcia i Quiles wrote:

 All those MinGW and forks contain mingw32-make.exe util which does have -j
 option, but in fact this option doesn't make the real parallel build. Maybe
 sh.exe is needed, but this shell util will pass the incompatible path string
 so that the build process will be interrupted.

 Are you sure of that? I remember reading a thread in the mingw.org
 mailing list in which Earnie Boyd explained MSYS did the path string
 translation and in most cases it worked fine. Or are you talking about
 the cases where it fails? (recursive spawns, overinterpretation of the
 path string, etc)


I'm not 100% sure, but only for a mingw-w64 version using the new 'winpthreads'
instead of 'pthreads-win32' library '-j N' did work.

Peter
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Choosing a new MinGW for Qt 5

2012-09-01 Thread Peter Kümmel
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

What is the problem with the current thread support in mingw?

   - zero-overhead exceptions (no SJLJ exceptions)
   - standard win32 headers, if possible using the Platform SDK headers

Is this possible? Aren't these headers full with MS's extensions to C++?

   - large set of win32 import libraries

Has nothing to do with the compiler.
But maybe we could work together with KDE on Windows.

   - 32 and 64-bit in one package

Not released by mingw-w64.

   - 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@qt-project.org
 http://lists.qt-project.org/mailman/listinfo/development

___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Choosing a new MinGW for Qt 5

2012-08-31 Thread Pau Garcia i Quiles
Hi,

On Fri, Aug 31, 2012 at 3:34 AM, Yang Fan missd...@gmail.com wrote:
 Currently, official MinGW project provides GCC 4.7, but it uses SJLJ
 exception mode when TDM/MinGW-w64/MinGW-build projects use Dwarf2 exception
 mode which is known as zero-overhead exception.

I forgot to say we now have SEH exception support, which is the best
solution. See this thread in mingw-w64

http://sourceforge.net/mailarchive/message.php?msg_id=29641656


 All those MinGW and forks contain mingw32-make.exe util which does have -j
 option, but in fact this option doesn't make the real parallel build. Maybe
 sh.exe is needed, but this shell util will pass the incompatible path string
 so that the build process will be interrupted.

Are you sure of that? I remember reading a thread in the mingw.org
mailing list in which Earnie Boyd explained MSYS did the path string
translation and in most cases it worked fine. Or are you talking about
the cases where it fails? (recursive spawns, overinterpretation of the
path string, etc)

-- 
Pau Garcia i Quiles
http://www.elpauer.org
(Due to my workload, I may need 10 days to answer)
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Choosing a new MinGW for Qt 5

2012-08-31 Thread Yang Fan
Yes, I was trying make -j option under the msys environment one or two
weeks ago, and it gave incompatible path string and broke my building
process. My msys was installed through official MinGW installer or from the
Git for Windows project, both have the same problem.


On Fri, Aug 31, 2012 at 3:02 PM, Pau Garcia i Quiles
pgqui...@elpauer.orgwrote:

 Hi,

 On Fri, Aug 31, 2012 at 3:34 AM, Yang Fan missd...@gmail.com wrote:
  Currently, official MinGW project provides GCC 4.7, but it uses SJLJ
  exception mode when TDM/MinGW-w64/MinGW-build projects use Dwarf2
 exception
  mode which is known as zero-overhead exception.

 I forgot to say we now have SEH exception support, which is the best
 solution. See this thread in mingw-w64

 http://sourceforge.net/mailarchive/message.php?msg_id=29641656


  All those MinGW and forks contain mingw32-make.exe util which does have
 -j
  option, but in fact this option doesn't make the real parallel build.
 Maybe
  sh.exe is needed, but this shell util will pass the incompatible path
 string
  so that the build process will be interrupted.

 Are you sure of that? I remember reading a thread in the mingw.org
 mailing list in which Earnie Boyd explained MSYS did the path string
 translation and in most cases it worked fine. Or are you talking about
 the cases where it fails? (recursive spawns, overinterpretation of the
 path string, etc)

 --
 Pau Garcia i Quiles
 http://www.elpauer.org
 (Due to my workload, I may need 10 days to answer)




-- 
Regards,
Fan Yang
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Choosing a new MinGW for Qt 5

2012-08-31 Thread kai.koehne
 -Original Message-
 From: development-bounces+kai.koehne=nokia@qt-project.org
 [mailto:development-bounces+kai.koehne=nokia@qt-project.org] On
 Behalf Of ext Thiago Macieira
 Sent: Thursday, August 30, 2012 6:17 PM
 To: development@qt-project.org
 Subject: Re: [Development] Choosing a new MinGW for Qt 5
 
 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)
  - 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

Alright, since there are people both in favor of mingw-builds and mingw-64 I 
guess we have to do a proper comparison :) Question to the mingw-64 supporters: 
Which exact package should we evaluate? http://mingw-w64.sourceforge.net/ talks 
about Version 2.0 [...] been released and is considered stable. But I 
couldn't find any pre-build toolchain with -2.0 in the file name under 
http://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/
  ...

Kai

PS: I started already adding my personal experiences on 
http://qt-project.org/wiki/MinGW-64-bit .

 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.
 
 --
 Thiago Macieira - thiago.macieira (AT) intel.com
   Software Architect - Intel Open Source Technology Center
  Intel Sweden AB - Registration Number: 556189-6027
  Knarrarnäsgatan 15, 164 40 Kista, Stockholm, Sweden
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Choosing a new MinGW for Qt 5

2012-08-31 Thread Peter Kümmel
On 30.08.2012 18:16, Thiago Macieira wrote:

 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)
   - 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

 - should be also available in common distros as cross-compiler


In Ubuntu 12.04 we have this:
$ apt-cache search mingw
gcc-mingw-w64-i686 - GNU C compiler for MinGW-w64 targeting Win32
gcc-mingw-w64-x86-64 - GNU C compiler for MinGW-w64 targeting Win64
gcc-mingw32 - GNU Compiler Collection for MinGW32 (transition package)

I assume gcc-mingw32 is the official mingw32, it is only 32bit.

Fedora uses mingw-w64:
https://fedoraproject.org/wiki/MinGW/CrossCompilerFramework

So I would say mingw-w64 is the choice.

And if the Windows mingw-w64 setup misses some features we
should ask if this could be changed by the mingw-w64 project.

Peter






___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Choosing a new MinGW for Qt 5

2012-08-31 Thread Pau Garcia i Quiles
On Fri, Aug 31, 2012 at 3:00 PM,  kai.koe...@nokia.com wrote:


 Alright, since there are people both in favor of mingw-builds and mingw-64 I 
 guess we have to do a proper comparison :)
 Question to the mingw-64 supporters: Which exact package should we evaluate? 
 http://mingw-w64.sourceforge.net/ talks about
 Version 2.0 [...] been released and is considered stable. But I couldn't 
 find any pre-build toolchain with -2.0 in the file name
 under 
 http://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/
   ...

 PS: I started already adding my personal experiences on 
 http://qt-project.org/wiki/MinGW-64-bit .

I forwarded your mail to the mingw-w64-public mailing list and got a
couple of answers:

--8---
MinGW-builds gcc-4.7.1-release will be rebuilt this weekend for use
GDB-7.5.0 and binutils-2.22.90.
--8---

--8---
Ray Donnelly mingw.andr...@gmail.com via lists.sourceforge.net
4:36 PM (30 minutes ago)
to mingw-w64-publ.

Hi Pau,

The Android Necessitas Qt project moved from MinGW to MinGW-w64 for
our A4 release.

As we also build our own version of the Android NDK for Necessitas, we
used (improved and merged back into) their mingw-w64 build script also
build our cross MinGW compilers:

https://android.googlesource.com/platform/ndk/+/5d6dd385bd9814e8da832c70a598a729b9172585/build/tools/build-mingw64-toolchain.sh

For the released Windows version I used ruben's 4.7.0 GCC (the cross
compile did work fine for Qt and Qt Creator actually, but we never got
the packaging side of things finished)

We've run into just one bug so far in the Qt Creator we released with
it (and it's unlikely the compiler's fault).
--8---

Using the same compiler in Necessitas and in Qt Project looks like a
good idea to me.

-- 
Pau Garcia i Quiles
http://www.elpauer.org
(Due to my workload, I may need 10 days to answer)
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Choosing a new MinGW for Qt 5

2012-08-31 Thread Thiago Macieira
On sexta-feira, 31 de agosto de 2012 16.05.14, Peter Kümmel wrote:
 On 30.08.2012 18:16, Thiago Macieira wrote:
  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)
- 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

  - should be also available in common distros as cross-compiler

That's secondary, like the import libraries (they can be recreated) and make -
j support.

It needs to work on Windows, first and foremost. And if the one that we find to
work best doesn't have standard cross-compilation packages... well, no big
loss.

 So I would say mingw-w64 is the choice.

 And if the Windows mingw-w64 setup misses some features we
 should ask if this could be changed by the mingw-w64 project.

True, like zero-overhead exceptions, GCC 4.7 and a working GDB. Those are a
must.

--
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center
 Intel Sweden AB - Registration Number: 556189-6027
 Knarrarnäsgatan 15, 164 40 Kista, Stockholm, Sweden


signature.asc
Description: This is a digitally signed message part.
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


[Development] Choosing a new MinGW for Qt 5

2012-08-30 Thread kai.koehne
Hi,

I'd like to get this on the table again: What is the MinGW package that we want 
to support officially? The matrix for Qt 5.0 right now says MinGW gcc 4.5 32 
bit [1]. Note that when you're installing latest mingw from mingw.org it's 
already installing gcc 4.7, and I guess you'd need to dig into the archive to 
get gcc 4.5 ... But anyway, it's still 32 bit only.

In the last days I gave the following packages that also support both 32 bit 
and 64 bit a try:

TDM-GCC: Nice installer, but somewhat stale (gcc 4.6.1 / gdb 7.3.1) + not much 
(visible) activity
Mingw-64: last official 1.0 build is from a year ago (gcc 4.5.4). There are 
popular, 'semi-official' personal builds with 4.7.1 though ...
Mingw-builds: gcc-4.7.1, gdb 7.4.1.  packages for gcc-7.4.2 are already in the 
prerelease directory ...

One might think that the only difference in these packages is the gcc version, 
but this isn't the truth. They also deviate e.g. in the COM headers, which can 
easily lead to build breakages ... That's why I think it's important to promote 
_one_ mingw 64 bit package as the officially supported one, and ideally even 
get it CI tested.

After trying all, I agree with Marius that mingw-builds seems a good choice. Qt 
5 beta compiled out of the box for me with one minor patch [3] ...

So, I think we have a couple of choices here:

 * We could just add mingw-builds gcc 4.7.1 64 bit to the list of tier 1 
configurations, keeping mingw gcc 4.5 32 bit as reference platform.
+ no changes after beta for reference platforms
- two different compilers are more work to test
 * We could try to make both mingw-builds gcc 4.7.1 64 bit and 32 bit a tier 
one platform, and get rid of the Mingw from http://www.mingw.org/
+ The same toolchain can be tested for 32 bit and 64 bit
- 5.0 beta is already out
- gcc from mingw.org is probably more wide spread/better tested than 
mingw-builds
* We could leave it as it is, with no recent mingw compiler to easily install, 
and no 64 bit one

Opinions? Note that at the moment we don't test MinGW at all in the CI system 
[2].

Regards

Kai 

[1]: Official platform matrix: 
http://qt-project.org/wiki/Qt_5.0#ed49a36c4fd547e5e2ace11bef4f21cf
[2]: CI system needs to build with MinGW on Windows: 
https://bugreports.qt-project.org/browse/QTQAINFRA-549
[3]: Codecs: Fix compilation on MinGW if configure detects iconv: 
https://codereview.qt-project.org/#change,33936


 -Original Message-
 From: development-bounces+kai.koehne=nokia@qt-project.org
 [mailto:development-bounces+kai.koehne=nokia@qt-project.org] On
 Behalf Of Storm-Olsen Marius (Nokia-MP/Austin)
 Sent: Friday, April 20, 2012 1:54 PM
 To: pgqui...@elpauer.org
 Cc: development@qt-project.org
 Subject: Re: [Development] Choosing a new MinGW for Qt/Qt Creator/Qt SDK
 
 Now wait a minute, I never said such a thing.
 
 I said that the MinGW-w64 binaries are Cygwin-based now. Meaning, the
 MinGW they release needs Cygwin DLLs to run.
 
 The output they generate is still native Win32 binaries, which does _not_
 require Cygwin. (Anything else would be silly, since you could then just use
 the normal Cygwin-provided gcc, and not MinGW.)
 
 Now, I do see that the latest official release actually comes from the
 personal(!) build directory of a Ray Linn, and does not require Cygwin.
 (I only noticed it when looking at the files page, and it says Looking for 
 the
 latest version? Download mingw-w64-gcc-4.6.3-runtime-2.0.1-static-ada-
 20120321.7z (28.2 MB), which happens to point to
 http://sourceforge.net/projects/mingw-
 w64/files/Toolchains%20targetting%20Win64/Personal%20Builds/ray_linn/)
 
 But personally I much better like the structure, consistency, and variety of 
 the
 mingwbuilds project. You have to admit looking at
 http://sourceforge.net/projects/mingwbuilds/files/windows-host/ it feels
 much cleaner and professional. The MinGW-w64 project _feels_ as if it
 doesn't have a clear mission. (I'm not saying they don't have one.)
 
 --
 .marius
 
 On 20/04/2012 06:09, ext Pau Garcia i Quiles wrote:
  Hi,
 
  I'd say you are confusing mingw-w64 is available in Cygwin (like
  mingw.org is) with mingw-w64-produced binaries need Cygwin DLLs.
 
  I've been using mingw-w64 for zsync on Windows (
  https://www.assembla.com/spaces/zsync-windows ) for quite some time
  and the zsync.exe and zysncmake.exe binaries work without Cygwin DLLs.
 
 
 
  On Fri, Apr 20, 2012 at 12:46 PM,marius.storm-ol...@nokia.com  wrote:
  Take another look. They haven't produced pure MinGW binary releases
  since the end of 2011. The front page says The mingw-w64 toolchain has
  been officially added to Cygwin mirrors, and when you look under the
  Releases (and then under Automated Builds) section to the left on
  the front page, you will see that only Cygwin-based binaries (and
  linux-based cross-compilers) are now being produced. And yes, if you run
  'depends' on those binaries, they do require the Cygwin DLLs.
 
  I'm sure you 

Re: [Development] Choosing a new MinGW for Qt 5

2012-08-30 Thread kai.koehne
Sorry people, my email got  a bit convoluted. This happens when you add stuff 
over time ... The gist is:

You can't get MinGW gcc 4.5 bit 32 bit easily anymore. We could upgrade the 
reference platform to gcc 4.7 32 bit. Can we do this even after the beta?  If 
so, can we also add a mingw 64 bit (e.g. from mingw-builds), be it as a 
reference or tier 1 platform?

Regards

Kai

 -Original Message-
 From: development-bounces+kai.koehne=nokia@qt-project.org
 [mailto:development-bounces+kai.koehne=nokia@qt-project.org] On
 Behalf Of Koehne Kai (Nokia-MP/Berlin)
 Sent: Thursday, August 30, 2012 4:57 PM
 To: Storm-Olsen Marius (Nokia-MP/Austin); pgqui...@elpauer.org
 Cc: development@qt-project.org
 Subject: [Development] Choosing a new MinGW for Qt 5
 
 Hi,
 
 I'd like to get this on the table again: What is the MinGW package that we 
 want
 to support officially? The matrix for Qt 5.0 right now says MinGW gcc 4.5 32
 bit [1]. Note that when you're installing latest mingw from mingw.org it's
 already installing gcc 4.7, and I guess you'd need to dig into the archive to 
 get
 gcc 4.5 ... But anyway, it's still 32 bit only.
 
 In the last days I gave the following packages that also support both 32 bit 
 and
 64 bit a try:
 
 TDM-GCC: Nice installer, but somewhat stale (gcc 4.6.1 / gdb 7.3.1) + not
 much (visible) activity
 Mingw-64: last official 1.0 build is from a year ago (gcc 4.5.4). There are
 popular, 'semi-official' personal builds with 4.7.1 though ...
 Mingw-builds: gcc-4.7.1, gdb 7.4.1.  packages for gcc-7.4.2 are already in the
 prerelease directory ...
 
 One might think that the only difference in these packages is the gcc version,
 but this isn't the truth. They also deviate e.g. in the COM headers, which can
 easily lead to build breakages ... That's why I think it's important to 
 promote
 _one_ mingw 64 bit package as the officially supported one, and ideally even
 get it CI tested.
 
 After trying all, I agree with Marius that mingw-builds seems a good choice. 
 Qt
 5 beta compiled out of the box for me with one minor patch [3] ...
 
 So, I think we have a couple of choices here:
 
  * We could just add mingw-builds gcc 4.7.1 64 bit to the list of tier 1
 configurations, keeping mingw gcc 4.5 32 bit as reference platform.
 + no changes after beta for reference platforms
 - two different compilers are more work to test
  * We could try to make both mingw-builds gcc 4.7.1 64 bit and 32 bit a tier
 one platform, and get rid of the Mingw from http://www.mingw.org/
 + The same toolchain can be tested for 32 bit and 64 bit
 - 5.0 beta is already out
 - gcc from mingw.org is probably more wide spread/better tested than
 mingw-builds
 * We could leave it as it is, with no recent mingw compiler to easily 
 install, and
 no 64 bit one
 
 Opinions? Note that at the moment we don't test MinGW at all in the CI system
 [2].
 
 Regards
 
 Kai
 
 [1]: Official platform matrix: http://qt-
 project.org/wiki/Qt_5.0#ed49a36c4fd547e5e2ace11bef4f21cf
 [2]: CI system needs to build with MinGW on Windows: https://bugreports.qt-
 project.org/browse/QTQAINFRA-549
 [3]: Codecs: Fix compilation on MinGW if configure detects iconv:
 https://codereview.qt-project.org/#change,33936
 
 
  -Original Message-
  From: development-bounces+kai.koehne=nokia@qt-project.org
  [mailto:development-bounces+kai.koehne=nokia@qt-project.org] On
  Behalf Of Storm-Olsen Marius (Nokia-MP/Austin)
  Sent: Friday, April 20, 2012 1:54 PM
  To: pgqui...@elpauer.org
  Cc: development@qt-project.org
  Subject: Re: [Development] Choosing a new MinGW for Qt/Qt Creator/Qt
  SDK
 
  Now wait a minute, I never said such a thing.
 
  I said that the MinGW-w64 binaries are Cygwin-based now. Meaning, the
  MinGW they release needs Cygwin DLLs to run.
 
  The output they generate is still native Win32 binaries, which does
  _not_ require Cygwin. (Anything else would be silly, since you could
  then just use the normal Cygwin-provided gcc, and not MinGW.)
 
  Now, I do see that the latest official release actually comes from
  the
  personal(!) build directory of a Ray Linn, and does not require Cygwin.
  (I only noticed it when looking at the files page, and it says
  Looking for the latest version? Download
  mingw-w64-gcc-4.6.3-runtime-2.0.1-static-ada-
  20120321.7z (28.2 MB), which happens to point to
  http://sourceforge.net/projects/mingw-
  w64/files/Toolchains%20targetting%20Win64/Personal%20Builds/ray_linn/)
 
  But personally I much better like the structure, consistency, and
  variety of the mingwbuilds project. You have to admit looking at
  http://sourceforge.net/projects/mingwbuilds/files/windows-host/ it
  feels much cleaner and professional. The MinGW-w64 project _feels_ as
  if it doesn't have a clear mission. (I'm not saying they don't have
  one.)
 
  --
  .marius
 
  On 20/04/2012 06:09, ext Pau Garcia i Quiles wrote:
   Hi,
  
   I'd say you are confusing mingw-w64 is available

Re: [Development] Choosing a new MinGW for Qt 5

2012-08-30 Thread Pau Garcia i Quiles
Hi,



On Thu, Aug 30, 2012 at 4:56 PM,  kai.koe...@nokia.com wrote:
 Hi,

 I'd like to get this on the table again: What is the MinGW package that we 
 want to support officially? The matrix for Qt 5.0 right now says MinGW gcc 
 4.5 32 bit [1]. Note that when you're installing latest mingw from mingw.org 
 it's already installing gcc 4.7, and I guess you'd need to dig into the 
 archive to get gcc 4.5 ... But anyway, it's still 32 bit only.

 In the last days I gave the following packages that also support both 32 bit 
 and 64 bit a try:

 TDM-GCC: Nice installer, but somewhat stale (gcc 4.6.1 / gdb 7.3.1) + not 
 much (visible) activity
 Mingw-64: last official 1.0 build is from a year ago (gcc 4.5.4). There are 
 popular, 'semi-official' personal builds with 4.7.1 though ...
 Mingw-builds: gcc-4.7.1, gdb 7.4.1.  packages for gcc-7.4.2 are already in 
 the prerelease directory ...

[...]

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.

-- 
Pau Garcia i Quiles
http://www.elpauer.org
(Due to my workload, I may need 10 days to answer)
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Choosing a new MinGW for Qt 5

2012-08-30 Thread marius.storm-olsen
Rubens release is currently broken, and there shouldn't be a need for a 
separate package for 32bit vs 64bit really.

-- 
.marius

On 30/08/2012 10:05, ext Loaden wrote:
 I want to say, mingw-w64 is the best choice.
 I am using ruben's personally build to compilation Qt5/QtCreator on both
 Windows and Linux OS, and it works well!

 2012/8/30 kai.koe...@nokia.com mailto:kai.koe...@nokia.com

 Hi,

 I'd like to get this on the table again: What is the MinGW package
 that we want to support officially? The matrix for Qt 5.0 right now
 says MinGW gcc 4.5 32 bit [1]. Note that when you're installing
 latest mingw from mingw.org http://mingw.org it's already
 installing gcc 4.7, and I guess you'd need to dig into the archive
 to get gcc 4.5 ... But anyway, it's still 32 bit only.

 In the last days I gave the following packages that also support
 both 32 bit and 64 bit a try:

 TDM-GCC: Nice installer, but somewhat stale (gcc 4.6.1 / gdb 7.3.1)
 + not much (visible) activity
 Mingw-64: last official 1.0 build is from a year ago (gcc 4.5.4).
 There are popular, 'semi-official' personal builds with 4.7.1 though ...
 Mingw-builds: gcc-4.7.1, gdb 7.4.1.  packages for gcc-7.4.2 are
 already in the prerelease directory ...

 One might think that the only difference in these packages is the
 gcc version, but this isn't the truth. They also deviate e.g. in the
 COM headers, which can easily lead to build breakages ... That's why
 I think it's important to promote _one_ mingw 64 bit package as the
 officially supported one, and ideally even get it CI tested.

 After trying all, I agree with Marius that mingw-builds seems a good
 choice. Qt 5 beta compiled out of the box for me with one minor
 patch [3] ...

 So, I think we have a couple of choices here:

   * We could just add mingw-builds gcc 4.7.1 64 bit to the list of
 tier 1 configurations, keeping mingw gcc 4.5 32 bit as reference
 platform.
  + no changes after beta for reference platforms
  - two different compilers are more work to test
   * We could try to make both mingw-builds gcc 4.7.1 64 bit and 32
 bit a tier one platform, and get rid of the Mingw from
 http://www.mingw.org/
  + The same toolchain can be tested for 32 bit and 64 bit
  - 5.0 beta is already out
  - gcc from mingw.org http://mingw.org is probably more wide
 spread/better tested than mingw-builds
 * We could leave it as it is, with no recent mingw compiler to
 easily install, and no 64 bit one

 Opinions? Note that at the moment we don't test MinGW at all in the
 CI system [2].

 Regards

 Kai

 [1]: Official platform matrix:
 http://qt-project.org/wiki/Qt_5.0#ed49a36c4fd547e5e2ace11bef4f21cf
 [2]: CI system needs to build with MinGW on Windows:
 https://bugreports.qt-project.org/browse/QTQAINFRA-549
 [3]: Codecs: Fix compilation on MinGW if configure detects iconv:
 https://codereview.qt-project.org/#change,33936


   -Original Message-
   From: development-bounces+kai.koehne=nokia@qt-project.org
 mailto:nokia@qt-project.org
   [mailto:development-bounces+kai.koehne
 mailto:development-bounces%2Bkai.koehne=nokia@qt-project.org
 mailto:nokia@qt-project.org] On
   Behalf Of Storm-Olsen Marius (Nokia-MP/Austin)
   Sent: Friday, April 20, 2012 1:54 PM
   To: pgqui...@elpauer.org mailto:pgqui...@elpauer.org
   Cc: development@qt-project.org mailto:development@qt-project.org
   Subject: Re: [Development] Choosing a new MinGW for Qt/Qt
 Creator/Qt SDK
  
   Now wait a minute, I never said such a thing.
  
   I said that the MinGW-w64 binaries are Cygwin-based now. Meaning, the
   MinGW they release needs Cygwin DLLs to run.
  
   The output they generate is still native Win32 binaries, which
 does _not_
   require Cygwin. (Anything else would be silly, since you could
 then just use
   the normal Cygwin-provided gcc, and not MinGW.)
  
   Now, I do see that the latest official release actually comes
 from the
   personal(!) build directory of a Ray Linn, and does not require
 Cygwin.
   (I only noticed it when looking at the files page, and it says
 Looking for the
   latest version? Download
 mingw-w64-gcc-4.6.3-runtime-2.0.1-static-ada-
   20120321.7z (28.2 MB), which happens to point to
   http://sourceforge.net/projects/mingw-
  
 w64/files/Toolchains%20targetting%20Win64/Personal%20Builds/ray_linn/)
  
   But personally I much better like the structure, consistency, and
 variety of the
   mingwbuilds project. You have to admit looking at
   http://sourceforge.net/projects/mingwbuilds/files/windows-host/
 it feels
   much cleaner and professional. The MinGW-w64 project _feels_ as if it
   

Re: [Development] Choosing a new MinGW for Qt 5

2012-08-30 Thread Loaden
It's can be fixed just replace the mingw32-make.exe.
And it's the best choice to separate package for 32bit vs 64bit really.
-m32 and -m64 will possible can't works well on Windows.

2012/8/30 marius.storm-ol...@nokia.com

 Rubens release is currently broken, and there shouldn't be a need for a
 separate package for 32bit vs 64bit really.




-- 
Best Regards
Yuchen
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Choosing a new MinGW for Qt 5

2012-08-30 Thread marius.storm-olsen
On 8/30/12 6:16 PM, ext Thiago Macieira thiago.macie...@intel.com
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)
 - 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.

Very ambitious! :)

Linking directly with DLLs is only possible for MinGW if the DLLs were
created by MinGW, for all other DLLs you need to create an import library
(.lib) with the 'dlltool' provided with any MinGW installation (perhaps as
mingw32-dlltool or similar). Always using Import Libraries ensures that
the link process is always the same, no matter if the libraries are static
or dynamic. If you want to link directly with DLLs you would also need
changes in qmake, most likely, which I think you'd want to avoid.

Most of the GNU makes released *do* support -j, but they often need sh.exe
in the PATH to enable the functionality for some reason.

To satisfy all the requirements above, we might need to compile MinGW
ourselves. While not impossible, I suggest we actively participate with
the MinGW community instead to make sure that this is what is released
naturally from its community.

-- 
.marius

___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Choosing a new MinGW for Qt 5

2012-08-30 Thread Yang Fan
Currently, official MinGW project provides GCC 4.7, but it uses SJLJ
exception mode when TDM/MinGW-w64/MinGW-build projects use Dwarf2 exception
mode which is known as zero-overhead exception.
All those MinGW and forks contain mingw32-make.exe util which does have -j
option, but in fact this option doesn't make the real parallel build. Maybe
sh.exe is needed, but this shell util will pass the incompatible path
string so that the build process will be interrupted.
TDM/MinGW-builds projects provide -m32/-m64 option to generate 32bit/64bit
binaries using the same package, I don't know if qmake supports it.

On Fri, Aug 31, 2012 at 2:30 AM, marius.storm-ol...@nokia.com wrote:

 On 8/30/12 6:16 PM, ext Thiago Macieira thiago.macie...@intel.com
 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)
  - 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.

 Very ambitious! :)

 Linking directly with DLLs is only possible for MinGW if the DLLs were
 created by MinGW, for all other DLLs you need to create an import library
 (.lib) with the 'dlltool' provided with any MinGW installation (perhaps as
 mingw32-dlltool or similar). Always using Import Libraries ensures that
 the link process is always the same, no matter if the libraries are static
 or dynamic. If you want to link directly with DLLs you would also need
 changes in qmake, most likely, which I think you'd want to avoid.

 Most of the GNU makes released *do* support -j, but they often need sh.exe
 in the PATH to enable the functionality for some reason.

 To satisfy all the requirements above, we might need to compile MinGW
 ourselves. While not impossible, I suggest we actively participate with
 the MinGW community instead to make sure that this is what is released
 naturally from its community.

 --
 .marius

 ___
 Development mailing list
 Development@qt-project.org
 http://lists.qt-project.org/mailman/listinfo/development




-- 
Regards,
Fan Yang
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development