WineHQ
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

ARM support

Motivation

Windows apps are mostly compiled for x86 and they won't run on ARM with bare Wine, likewise ARM applications won't run on x86(_64) with bare Wine, so this is not our motivation.

The original Motivation was to be able to run winelib-apps on ARM, that even was before it got public that win8 will run on ARM devices. Meanwhile we support these new ARM PEs for win8!

Status

  • Yes, It works! (TM)
  • Running win8 ARM PEs also works.
  • Already ported Putty to ARM as winelib application.
  • First patch was September 18. 2009, final patchset sent September 18. 2010 and they got in Wine-1.3.4
  • Wine on ARM already gets packaged by Debian (since 1.7.35), Fedora, Maemo and openSUSE.
  • Good debugger/disassembler support.
  • Relay tracing.
  • Relocation.
  • Linux Kernel patched upstream for running Windows RT applications see Bug 31322

Todo

  • libs/port/interlocked.c: maybe native operations.
  • wine-gecko ARM port (waiting for mingw-w64-arm).
  • wine-mono ARM port (requires JIT/seh code modification, and a few non-essential support libraries fail to build).
  • DCOM

How to help

  • Fix compiler warnings.
  • Run winetest and report your results.
  • Fix test failures or analyse them, see below.
  • Report bugs with winelib or Windows RT applications.
  • Write tests for missing functions.

Compiling

Toolchains: Every toolchain with Thumb support should work as we are independent from the crti.o mode since wine-1.5.8

Compiling on the ARM Device is recommended:

../configure && make

Anyway here is a crosscompiling example:

../configure --host=arm-linux-gnueabihf host_alias=arm-linux-gnueabihf --with-wine-tools=../path/to/your/native/wine/build && make

Maybe you also should append something like:

CFLAGS="-mcpu=yourcpu -g -O2" LDFLAGS="-mcpu=yourcpu"

Fixme/Todo: Compiling inside a chroot

Running Windows RT Applications

You can find a list of such ported applications at forum.xda-developers.com. To run them you'll need a recent Wine and a Linux Kernel with the tpidrurw patch, it's included since Kernel 3.11-rc1. When you're unsure if the Kernel you are using supports it, you can clone, make and run tpidrurw-test, it'll tell you if your Kernel is suitable.

Running Windows CE Applications

That's still pre-alpha/proof-of-concept and not part of official Wine, don't expect any success. WineCE can be found at github.

Running Windows/x86 Applications

See Emulation

Analyzed/Known Test Failures

Wine and Valgrind

Currently a work in progress - Austin English

See also

André Hentschel

Wine On Android

ARM commits in Wine (and the Thumb ones)

ARM Bugs

AArch64: ARM64

My and Vincents slides can be found here: FOSDEM2013

For Windows RT recompiled applications check: at xda-developers

Examples of Winelib ports: - on OpenPandora

Example use of Qemu for running x86 code: Wine for PPC (per qemu usermode emulation)

There was some experience using Qemu to run the WINE x86 binary under Zaurus's ARM Debian: http://www.oesf.org/forum/index.php?showtopic=14829

Qemu Backend success story: http://forum.winehq.org/viewtopic.php?t=13286 and http://forum.winehq.org/viewtopic.php?t=13330

Mixed topic, including ARM discussions: http://forum.winehq.org/viewtopic.php?p=67218

Some x86-to-ARM translation strategies were also discussed: http://forum.openhandhelds.org/viewtopic.php?f=16&t=1088

Android running x86 wine and solitaire (by using ubuntu hack and binfmt) : http://forum.xda-developers.com/showthread.php?t=1258506

Winulator (Android APP) claims it is not wine-based, but does somewhat the same a Wine x86_2_ARM would do: http://docs.winulator.com/faq

win86emu is Bochs and DOSBox based and run x86 Applications on Windows RT

Limbo is an Intel x86 PC Emulator for Android based on QEMU,also uses code from android-vnc-viewer and glib among others: https://code.google.com/p/limbo-android/

Eltechs' ExaGear RPG ([1]) allows x86 applications to run on Android using wine.


This page was last edited on 30 October 2023, at 15:08.