| Version 4 (modified by guest, 7 years ago) |
|---|
Platforms
The following table describes to what extent GHC currently supports various platforms. Definitions:
Registerised
A catch-all term for a number of optimisations, which collectively require the mangler (a Perl script that post-processes the assembly output from gcc). Unregisterised builds require only a working C compiler and are hence far more portable. The registerised optimisations include: direct tail calls (as opposed to using the "mini-interpreter"), info-tables adjacent to entry code, and virtual machine registers mapped to real machine registers.
GHCi
The interactive environment, including dynamic linking of object code and dynamic generation of FFI calls.
NCG
Native code generator: GHC can generate assemply code directly for this platform, bypassing gcc.
f.i. wrapper
Support for foreign import "wrapper" (ghc/rts/Adjustor.c).
Dynamic libraries
Support for generating dynamically-linked sharable libraries from Haskell code.
Platforms that work in the current release
| Architecture | OS | Build name | Registerised | GHCi | NCG | f.i. wrapper | Dynamic libraries |
| x86 | Windows (MinGW) | i386-unknown-mingw32 | Yes | Yes | Yes | Yes | No(*2) |
| x86 | Linux | i386-unknown-{linux,gnu} | Yes | Yes | Yes | Yes | No |
| x86 | FreeBSD | i386-unknown-freebsd | Yes | Yes | Yes | Yes | No |
| x86 | OpenBSD | i386-unknown-openbsd | Yes | Yes | Yes | Yes | No |
| x86 | NetBSD | i386-unknown-netbsd | Yes | Yes | Yes | Yes | No |
| x86 | MacOS X | i386-apple-darwin | Yes | Yes | Yes | Yes | No |
| PowerPC | AIX | powerpc-ibm-aix | Yes | Yes | Yes | No | |
| PowerPC | Linux | powerpc-unknown-linux | Yes | Yes | Yes | Yes | No |
| PowerPC | MacOS X | powerpc-apple-darwin | Yes | Yes | Yes | Yes | Yes |
| PowerPC64 | Linux | powerpc64-unknown-linux | Yes | No | Yes | No | |
| Sparc | Solaris | sparc-sun-solaris2 | Yes | Yes | No(*1) | Yes | No |
| Sparc | Linux | sparc-unknown-linux | Yes | Yes | No(*1) | Yes | No |
| Sparc | OpenBSD | sparc-unknown-openbsd | Yes | Yes | No(*1) | Yes | No |
| x86-64 | Linux | x86_64-unknown-linux | Yes | Yes | Yes | Yes | No |
| x86-64 | OpenBSD | amd64-unknown-openbsd | Yes | Yes | Yes | Yes | No |
| Mips64 | Irix | mips-unknown-linux | No | No | No | No | No |
| IA-64 | Linux | ia64-unknown-linux | Yes | Yes | No | Yes | No |
| Alpha | Linux | alpha-unknown-linux | No | No | No | Yes | No |
| HPPA | Linux | hppa-unknown-linux | No | No | No | No | No |
| S/390 | Linux | s390-ibm-linux | No | No | No | No | No |
| m68k | Linux | m68k-unknown-linux | No | No | No | No | No |
*1 Sparc NCG bitrotted, but still in the tree
*2 Win32 DLL support bitrotted
Platforms that worked in the past
| Architecture | OS | Build name | Registerised | GHCi | NCG | f.i. wrapper | Dynamic libraries |
| x86 | Windows (Cygwin) | i386-unknown-cygwin32 | Yes | No | Yes | Yes | No(*2) |
| x86 | Solaris | i386-unknown-solaris2 | Yes | No | Yes | Yes | No |
| Alpha | Dec OSF | alpha-dec-osf3 | No | No | No | Yes | No |
Platforms currently being ported
| Architecture | OS | Build name | Registerised | GHCi | NCG | f.i. wrapper | Dynamic libraries | WikiPage? |
| ARM | Maemo (Linux) | arm-unknown-linux-gnu | No | No | No | No | No | ArmLinuxGhc |
