分类: LINUX
2012-02-10 12:53:37
Windows apps are mostly compiled for x86 and they won't run on ARM with bare Wine, so this is not our motivation. The main goal of porting Wine to ARM is to be able to compile it and run winelib-apps. There are also other possible goals, but they need some more brainstorming:
use the finished port as a base for something like a WineCE, which might be able to run PocketPC/WinCE/WinMob apps. Actual Problem is that all CE apps come along without relocation table, so they should be loaded at their baseaddress or we have to do some relocation magic.
run the assembler parts of x86 in qemu and call function in Wine compiled for ARM, which might speed up some things (darwine tried that before, but they stopped because the byteswapping (big endian <-> little endian) was too much work, but ARM is mostly little endian, so we have a chance if everything works fine with packed structures. I already gathered some information how darwine tried to do it)
Todo
libs/port/interlocked.c: get multiarch ready
libs/wine/port.c: add assembler parts
add assembler parts in winebuild
find the problem with wineboot
rebase the patches to current git
make some tools and dlls ARM ready (step by step, mostly easy so will do it when its time has come)
turn the debugger stuff in windbg and dbghelp.dll from stubs to implementation for ARM (mostly done)
Status
Wine on ARM already get's packaged:
Crosscompiling
Better compile directly on the target device if possible, otherwise use
News Issues
Since Wine-1.3.4 there are much news around, which partially have issues:
Wine supports WinCE
thats wrong. You cannot run WinCE Apps with Wine, even if i got some success locally with much modifications it is still not in git and might never get in.
the WineARM-TeamThere is no WineARM-Team, I () worked on it alone, but special thanks goes to Colin Fowler for making the interlocked stuff multi-arch ready and to for writing me some "distcc with qemu" scripts, which speed up my compiling.
What means "Winelib now supports the ARM platform"?You can port a Windows App to ARM using Winelib if you got the source of the App. You cannot run "normal" Windows Apps on ARM yet.
x86 per qemu
If you want to try running x86 apps on ARM then the old qemu manual had that hint:
qemu-XXX-i386-wine.tar.gz seems not to be available anymore and actually there is a bug in qemu, so it can't work ().
See also
in Wine
Example use of for running x86 code:
Much earlier, there was some experience using Qemu to run the WINE x86 binary under Zaurus's ARM Debian:
Qemu Backend success story: and
Mixed topic, including ARM discussions:
Some x86-to-ARM translation strategies were also discussed:
Replacing X11 backend driver with SDL (mostly for Android):