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] [call for review UPDATED] Qt 4.7-beta1


From: Mark Brand
Subject: Re: [Mingw-cross-env-list] [call for review UPDATED] Qt 4.7-beta1
Date: Thu, 20 May 2010 00:48:18 +0200
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.5pre) Gecko/20100430 SUSE/3.1b2-7.1 Thunderbird/3.1b2

 I posted yet another update. Explanation below.

http://www.xs4all.nl/~brandm/mingw-cross-env/qt-1-win32.patch
http://www.xs4all.nl/~brandm/mingw-cross-env/qt.mk

I like the out-of-tree build.

The original motivation for building out-of-tree was to be able to use the same source tree for both host and target. Only later did I discover that the target build now also takes care of the necessary bits for the host.


Although I kind of liked it too, I decided to go back to the "in-tree" build. Reasons:

Keeping the source tree pristine has little benefit for us. There is only one build now and we just delete the source tree when we're done.

The "out-of-tree" build has to shadow (via proxy headers) a lot of files and that takes some time and clutters the log.

The shadowing itself requires perl. Perl is already a requirement for mingw-cross-env, but it's still a potentially complicating factor.

One still open issue, albeit not pressing, is that when a 64 bit host is detected, the *target* stage of the build fails later on:

{standard input}: Assembler messages:
{standard input}:217: Error: suffix or operands invalid for `cmpxchg

That's why we still use "-host-arch i386" which also works on 64 bit systems.


I think I've solved this. The trick was to set the architecture of the target platform explicitly with "-arch windows" in addition to "-xplatform" when invoking configure. The configure script itself also needed a change for this to be respected on a MAC host.

Now automatic detection of the host platform architecture works as expected and the build succeeds. For the first time we have 64 bit qmake, moc, etc.

This is a case of a problem that seems easy to ignore with a workaround but actually is a symptom of a serious problem not solved by the workaround. Now, apparently for the first time, the target architecture is set correctly!

regards,

Mark





reply via email to

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