mingw-cross-env-list
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Mingw-cross-env-list] Mingw64


From: Tony Theodore
Subject: Re: [Mingw-cross-env-list] Mingw64
Date: Fri, 17 Sep 2010 13:54:20 +1000

On 27 August 2010 22:37, Volker Grabsch <address@hidden> wrote:
> Martin Gerhardy <address@hidden> schrieb:
>> are there any plans to support mingw64, too?
>
> There is a plan to switch to MinGW-w64 in the future. MinGW-w64
> is a clone of MinGW that provides 32-bit as well as 64-bit
> support: http://mingw-w64.sourceforge.net/
>
> That way, switching to 64-bit would be just a question of switching
> the TARGET in our main Makefile. Or, even better, we could cross
> build the 32-bit and 64-bit variants at once.
>
> (The tools would have different prefixes and the libraries would
>  be installed into different subdirectories, which is BTW already
>  the case, so there shouldn't be any conflicts.)

The last time I looked closely at it, multilib won't be fully
supported until GCC 4.6, even though it's the current default. Having
said that, it seems to work well enough for packages that can be built
with a 64-bit target.

> However, nobody got MinGW-w64 working yet. I think Tony was working
> on that some time ago. Any contribution into that direction is
> welcome.
>
> The first step should be a switch to MinGW-w64, but still producing
> 32-bit binaries.
>
> Only if that works, is well-tested and released, we can start the
> second step. That is, we would integrate 64-bit support.
>
> We would the check which packages are suitable for that. I guess
> that some packages would even need separate build rules to cross-
> compile for a 64-bit platform.

At the moment, a subset of mingw-cross-env packages build
successfully. Boost is now working, but some of the other "big"
packages (gtk, wxwidgets, qt) fail at some point or another.

Qt is a good example of the types of issues. Removing postgres and
disabling the sql* options allows the build to succeed with the
current i686-pc-mingw32 target. With either of the new
i686-w64-mingw32 or x86_64-w64-mingw32 targets, the build fails in
roughly the same place. This would indicate that the issues are in the
build infrastructure, so we'd have to go through and find the things
that are mingw.org related and the ones that are cross-compile
related.

I've been playing with mercurial and thought I'd put my experiments in
a branch on bitbucket. Using development versions of gcc and mingw-w64
seems to be the way to go, though I might try the released gcc in the
future. There was apparently a release of mingw-w64 recently
(according to the front page) but I can't find the file anywhere and
they continue to make checkins against that svn branch.

I've tried to "mingw-cross-env"-ify my experiments as much as
possible, most of what I've done in the past isn't repeatable. If you
do something like:

svn co svn://gcc.gnu.org/svn/gcc/branches/gcc-4_5-branch gcc45-svn
svn co https://mingw-w64.svn.sourceforge.net/svnroot/mingw-w64 mingw-w64
hg clone http://bitbucket.org/tonyt/mce-w64
cd mce-w64 && make qt JOBS=4

you'll end up with a qt that runs the test program successfully, only
the same as the current but it's a start. The targets are in the
Makefile, and the pixman change is an example of some of the small
changes we'll have to slowly work through.

Cheers,

Tony



reply via email to

[Prev in Thread] Current Thread [Next in Thread]