Liviu Ionescu
2015-04-07 21:21:05 UTC
I was too optimistic, my 64-bit Windows build of the ARM emulator is not functional. :-(
I also tested other 64-bit builds of qemu-system-arm made with mingw-w64 and they are also not functional, they generally crash with some nasty DLL errors when emulation is about to start (for example 0xc0000028, which is a stack error).
I tried the following:
- the 64-bit qemu-system-arm that comes with MSYS2 as a binary package,
- a source build on Arch (Arch because it already has mingw-w64 packages for all needed libs)
- my source build on Ubuntu 14 LTS, with all libraries built by my script and the result as static.
the result is the same, i.e. starting the program with -version works (so no missing DLLs), but when trying to start emulation, with -kernel test.elf, the program crashes.
for comparison, on the same machine, in the same testing conditions, with the same image, but executed with the 32-bit version of the emulator, everything works just fine.
I could not identify if the problem is within qemu or mingw-w64, but I would not rule out a problem in qemu. I would first suspect a customisation made especially for mingw-w32, which is not appropriate for the 64-bit version of mingw-w64.
unfortunately my testing capabilities on Windows are limited, and cannot go much further.
it would be great if someone could investigate this problem, mingw-w64 seems a promising building tool. as development platform I would recommend Arch for Linux users or MSYS2 for Windows users.
regards,
Liviu
I also tested other 64-bit builds of qemu-system-arm made with mingw-w64 and they are also not functional, they generally crash with some nasty DLL errors when emulation is about to start (for example 0xc0000028, which is a stack error).
I tried the following:
- the 64-bit qemu-system-arm that comes with MSYS2 as a binary package,
- a source build on Arch (Arch because it already has mingw-w64 packages for all needed libs)
- my source build on Ubuntu 14 LTS, with all libraries built by my script and the result as static.
the result is the same, i.e. starting the program with -version works (so no missing DLLs), but when trying to start emulation, with -kernel test.elf, the program crashes.
for comparison, on the same machine, in the same testing conditions, with the same image, but executed with the 32-bit version of the emulator, everything works just fine.
I could not identify if the problem is within qemu or mingw-w64, but I would not rule out a problem in qemu. I would first suspect a customisation made especially for mingw-w32, which is not appropriate for the 64-bit version of mingw-w64.
unfortunately my testing capabilities on Windows are limited, and cannot go much further.
it would be great if someone could investigate this problem, mingw-w64 seems a promising building tool. as development platform I would recommend Arch for Linux users or MSYS2 for Windows users.
regards,
Liviu