Portability

From WineHQ Wiki
(Redirected from OtherPlatforms)
Jump to: navigation, search

Making Wine Portable

We aim to make Wine portable, running and building on as many systems and configurations as possible. Whether you want to port Wine to a new architecture or OS, build it with a different toolchain, or solve some other platform-specific quirk, we always appreciate the help. These kinds of improvements tend to provide secondary benefits too, maturing our code and making it more robust on any platform.

If you're interested, try Building Wine with your specific configuration, keeping and sharing careful notes of your results. Don't be shy about letting other Developers know about your goals and progress either. There's a good chance that at least one developer has tested the same configuration some; if so, they can give you a headstart and possibly point you towards trial patches or bug reports.

Tango-style info icon.svg To narrow down problems, try varying as few parameters as possible from our "control" case: vanilla 32-bit Wine, Linux or FreeBSD kernel, x86 or amd64 arch, GCC / GNU build tools, and Wine header files.

Dialog-warning.svg The Clang compiler has come a long way; it can build the 32-bit version of Wine without problems and could be considered a control in the near future. However it still lacks a couple features that certain DLLs and 64-bit support depend on (see below for details).

Different Options

Operating Systems

OS Compiles? Runs? Supports 64-bit Wine? Notes
FreeBSD FreeBSD wiki's page on Wine
MacOSX Also see MacOSX/Building for a couple idiosyncrasies
DragonFlyBSD Wine should still mostly work as on FreeBSD
GNU Hurd See page for details
Android Cross-compiled Partially  ? Still in progress; see Alexandre Julliard's slides from FOSDEM2014
OpenIndiana Last packaged in Dec 2013 (in the sfe-encumbered repo)
Cygwin Partially Hasn't been tested in a while
Haiku See page for details
NetBSD Packaged as recently as Dec 2015
OpenBSD Was packaged before; Wine & OpenBSD code have since drifted apart (irreconcilably for the foreseeable future)
AIX Only DLLs & wineserver were built & it hasn't been tested in a while; see [1]
HP/UX Not all components were built & it hasn't been tested in a while; see [2]

Architectures

Architecture Compiles? Runs? Notes
ARM
ARM64
PowerPC Hasn't been tested in a while

Compilers

Compiler Finishes building? Runs correctly? Notes
Clang Almost Just can't build 64-bit Wine (Bug #8851, fixed in Clang v3.7.1) or expose certain APIs (Bug #10212)
icc Partially Hasn't been tested in a while; building required some workarounds
pcc N/A Hasn't been tested in a while
tcc N/A Hasn't been tested in a while

Alternative Headers

Header Collection Compiles? Runs? Notes
mingw-w64  ?  ?
MS Visual C  ?  ?

Risky Bitness

In theory, 32-bit programs should run exactly the same, whether you're using a vanilla 32-bit build of Wine or a WoW64-capable version. Unfortunately, we still can't guarantee this is always the case. If you come across a program that behaves differently between the two builds, don't hesitate to file a bug mentioning the discrepancy in detail.

Tango-style info icon.svg The AMD64 page has more ideas about testing for these differences; there are also useful tips for anyone interested in porting Wine to their favorite OS on AMD64 hardware.

Legacy Systems

The Wine project has been around in one form or another for over 20 years now. In that time, systems have come and gone, but some of them are still used in niche situations or maintained by dedicated users. Here is a list of some systems wine was at least tested on in the past.

Older Compilers

  • Open64 (it and most of its derivatives have been discontinued; there are still 1 or 2 small forks like OpenUH by universities though)
  • MinGW/MSYS (project is still active but struggles to stay up-to-date; consider using mingw-w64 instead)

Platforms

  • SCO OpenServer 5 (based on AT&T SysV Release 3)
  • AT&T SysV Release 4
  • SCO OpenServer 6 (based on AT&T SysV Release 5)
  • Sun Solaris & OpenSolaris (superseded by FOSS OpenIndiana & commercial Oracle Solaris)

Architectures