qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] 64-bit build of qemu-system-arm with mingw-w64 not func


From: Liviu Ionescu
Subject: Re: [Qemu-devel] 64-bit build of qemu-system-arm with mingw-w64 not functional
Date: Thu, 9 Apr 2015 22:44:00 +0300

> On 09 Apr 2015, at 20:58, Peter Maydell <address@hidden> wrote:
> 
> On 9 April 2015 at 18:41, Stefan Weil <address@hidden> wrote:
>> I think -mthreads is essential (needed for thread local storage),
>> and -D_POSIX=1 is also needed for 64 bit builds.
> 
> My 64-bit builds worked without either of these things...

hmmm... things get complicated, even messier. :-(

first I was confident, I wrote my multi-platform build script that worked for 
all platforms, except win64; then I reverted, trying to build the official 
version, and since you remember having successful win64 builds, I took it as 
reference. unfortunately the build was not successful, due to the missing 
libraries; then I considered Stefan's binaries to be the 'official' QEMU 
releases for windows, just to find out that they are actually based on a fork, 
that I'm invited to check for differences...

it seems to never end...

the fact is: the public version from the project git, cross built for 64-bit on 
a fresh Debian 8, with the (old) packages from Stefan, and with the 
configuration you suggested, builds successfully, but... fails to run. the 
32-bit version, built in the exactly the same conditions, is ok.


I don't exclude a systematic error that I made in my builds, but, from what I 
see, my tests are far more rigorous than what I found up to now, and I'd rather 
suspect the problem to be somewhere else.

it might very well be a problem with the treading support, slightly differently 
implemented on win64.

---

> SDL comes from a locally cross built libSDL. 

ok, I expected this. :-(

> Maybe it is better for your tests to build
without SDL support,

in GNU ARM Eclipse QEMU I do not use SDL, but I just wanted to reproduce the 
exact conditions you use for your builds.

> > - "make installer" did not pack any DLL inside the setup

> It has a built-in magic: all DLL files from $(SRC_PATH)/dll/w64 are
> taken for the 64 bit build (w32 for 32 bit build).

great, I like magic, but what I do not understand is why this magic is not in 
the public git, for us all to use it?

> Get a list of all needed DLL files either by try and error or by using
> tools and copy them (or make symbolic links) to that directory.

I did this for my builds, I just wanted to clarify things for the official 
build.

is it that complicated to share **all** build scripts and related details, 
preferably to contribute them back to the project?

> There is an nsis macro W64 which switches the program directory (see 
> qemu.nsi).

I have a far more elaborate nsis configuration for my builds; the problem is 
that the official 'make install' does not generate a functional setup (the dlls 
are not there, and the setup does not write the program in the proper place), 
and since your setup seems functional, it would be great to update the project.

> Maybe you can try my QEMU fork from http://repo.or.cz/w/qemu/ar7.git
> and see whether it works for you.

are your actual build scripts in the repo? or in some public place?

all my scripts are in the GNU ARM Eclipse QEMU repo, and not only the build 
script is self contained, but all information necessary to run it is public.

even more, now I'm migrating the build processes to using Docker, which is an 
even more reproducible and scriptable solution, exactly to avoid this kind of 
embarrassing situation that we are now in, with the mysterious win64 build.


regards,

Liviu








reply via email to

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