3. What machines GHC runs on
Prev |  | Next

## 3. What machines GHC runs on

A “platform” is a architecture/manufacturer/operating-system combination, such as `sparc-sun-solaris2`. Other common ones are `alpha-dec-osf2`, `hppa1.1-hp-hpux9`, `i386-unknown-linux`, `i386-unknown-solaris2`, `i386-unknown-freebsd`, `i386-unknown-cygwin32`, `m68k-sun-sunos4`, `mips-sgi-irix5`, `sparc-sun-sunos4`, `sparc-sun-solaris2`, `powerpc-ibm-aix`.

Some libraries may only work on a limited number of platforms; for example, a sockets library is of no use unless the operating system supports the underlying BSDisms.

The GHC hierarchy of Porting Goodness: (a) Best is a native-code generator; (b) next best is a “registerised” port; (c) the bare minimum is an “unregisterised” port. (“Unregisterised” is so terrible that we won't say more about it).

Here's everything that's known about GHC ports. We identify platforms by their “canonical” CPU/Manufacturer/OS triple.

alpha-dec-{osf,linux,freebsd,openbsd,netbsd}:

  The OSF port is currently working (as of GHC version 5.02.1) and well supported. The native code generator is currently non-working. Other operating systems will require some minor porting.

sparc-sun-sunos4

  Probably works with minor tweaks, hasn't been tested for a while.

sparc-sun-solaris2

  Fully supported (at least for Solaris 2.7 and 2.6), including native-code generator.

sparc-unknown-openbsd

  Supported, including native-code generator. The same should also be true of NetBSD

hppa1.1-hp-hpux (HP-PA boxes running HPUX 9.x)

  A registerised port is available for version 4.08, but GHC hasn't been built on that platform since (as far as we know). No native-code generator.

i386-unknown-linux (PCs running Linux, ELF binary format)

  GHC works registerised and has a native code generator. You must have GCC 2.7.x or later. NOTE about `glibc` versions: GHC binaries built on a system running `glibc 2.0` won't work on a system running `glibc 2.1`, and vice versa. In general, don't expect compatibility between `glibc` versions, even if the shared library version hasn't changed.

i386-unknown-freebsd (PCs running FreeBSD 2.2 or higher)

  GHC works registerised. Pre-built packages are available in the native package format, so if you just need binaries you're better off just installing the package (it might even be on your installation CD!).

i386-unknown-openbsd (PCs running OpenBSD)

  Supported, with native code generator. Packages are available through the ports system in the native package format.

i386-unknown-netbsd (PCs running NetBSD)

  Will require some minor porting effort, but should work registerised.

i386-unknown-mingw32 (PCs running Windows)

  Fully supported under Win9x, WinNT, Win2k, and WinXP. Includes a native code generator. Building from source requires a recent Cygwin distribution to be installed.

ia64-unknown-linux

  Supported, except there is no native code generator.

x86_64-unknown-linux , amd64-unknown-openbsd

  Fully supported, with a native code generator and GHCi.

mips-sgi-irix5

  Port has worked in the past, but hasn't been tested for some time (and will certainly have rotted in various ways). As usual, we don't have access to machines and there hasn't been an overwhelming demand for this port, but feel free to get in touch.

mips64-sgi-irix6

  GHC currently works unregisterised.

powerpc-ibm-aix

  Port currently doesn't work, needs some minimal porting effort. As usual, we don't have access to machines and there hasn't been an overwhelming demand for this port, but feel free to get in touch.

powerpc-apple-darwin

  Supported registerised. Native code generator is almost working.

powerpc-apple-linux

  Not supported (yet).

Various other systems have had GHC ported to them in the distant past, including various Motorola 68k boxes. The 68k support still remains, but porting to one of these systems will certainly be a non-trivial task.

Prev |  | Next
2. Things to check before you start | Home | 4. Installing pre-supposed utilities