</listitem>
<listitem>
- <para>Use an appropriate machine / operating system. <xref
- linkend="sec-port-info"/> lists the supported platforms; if
- yours isn't amongst these then you can try porting GHC (see
- <xref linkend="sec-porting-ghc"/>).</para>
- </listitem>
+ <para>Use an appropriate machine / operating system. <ulink
+ url="http://hackage.haskell.org/trac/ghc/wiki/Platforms">GHC
+ Platform Support</ulink> lists the currently supported
+ platforms; if yours isn't amongst these then you can try
+ porting GHC (see <xref linkend="sec-porting-ghc"/>).</para>
+ </listitem>
<listitem>
<para>Be sure that the “pre-supposed” utilities are
</orderedlist>
</sect1>
- <sect1 id="sec-port-info">
- <title>What machines GHC runs on</title>
-
-<indexterm><primary>ports</primary><secondary>GHC</secondary></indexterm>
-<indexterm><primary>GHC</primary><secondary>ports</secondary></indexterm>
-<indexterm><primary>platforms</primary><secondary>supported</secondary></indexterm>
-
- <para>A “platform” is a
- architecture/manufacturer/operating-system combination, such as
- <literal>sparc-sun-solaris2</literal>. Other common ones are
- <literal>alpha-dec-osf2</literal>,
- <literal>hppa1.1-hp-hpux9</literal>,
- <literal>i386-unknown-linux</literal>,
- <literal>i386-unknown-solaris2</literal>,
- <literal>i386-unknown-freebsd</literal>,
- <literal>i386-unknown-cygwin32</literal>,
- <literal>m68k-sun-sunos4</literal>,
- <literal>mips-sgi-irix5</literal>,
- <literal>sparc-sun-sunos4</literal>,
- <literal>sparc-sun-solaris2</literal>,
- <literal>powerpc-ibm-aix</literal>.</para>
-
- <para>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.</para>
-
- <indexterm><primary>fully-supported platforms</primary></indexterm>
- <indexterm><primary>native-code generator</primary></indexterm>
- <indexterm><primary>registerised ports</primary></indexterm>
- <indexterm><primary>unregisterised ports</primary></indexterm>
-
- <para>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).</para>
-
- <para>Here's everything that's known about GHC ports. We
- identify platforms by their “canonical”
- CPU/Manufacturer/OS triple.</para>
-
- <variablelist>
- <varlistentry>
- <term>alpha-dec-{osf,linux,freebsd,openbsd,netbsd}:
- <indexterm><primary>alpha-dec-osf</primary></indexterm>
- <indexterm><primary>alpha-dec-linux</primary></indexterm>
- <indexterm><primary>alpha-dec-freebsd</primary></indexterm>
- <indexterm><primary>alpha-dec-openbsd</primary></indexterm>
- <indexterm><primary>alpha-dec-netbsd</primary></indexterm>
- </term>
- <listitem>
- <para>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.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>sparc-sun-sunos4
- <indexterm><primary>sparc-sun-sunos4</primary></indexterm>
- </term>
- <listitem>
- <para>Probably works with minor tweaks, hasn't been tested
- for a while.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>sparc-sun-solaris2
- <indexterm><primary>sparc-sun-solaris2</primary></indexterm>
- </term>
- <listitem>
- <para>Fully supported (at least for Solaris 2.7 and 2.6),
- including native-code generator.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>sparc-unknown-openbsd
- <indexterm><primary>sparc-unknown-openbsd</primary></indexterm>
- </term>
- <listitem>
- <para>Supported, including native-code generator. The
- same should also be true of NetBSD</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>hppa1.1-hp-hpux (HP-PA boxes running HPUX 9.x)
- <indexterm><primary>hppa1.1-hp-hpux</primary></indexterm>
- </term>
- <listitem>
- <para>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.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>i386-unknown-linux (PCs running Linux, ELF binary format)
- <indexterm><primary>i386-*-linux</primary></indexterm>
- </term>
- <listitem>
- <para>GHC works registerised and has a native code
- generator. You <emphasis>must</emphasis> have GCC 2.7.x
- or later. NOTE about <literal>glibc</literal> versions:
- GHC binaries built on a system running <literal>glibc
- 2.0</literal> won't work on a system running
- <literal>glibc 2.1</literal>, and vice versa. In general,
- don't expect compatibility between
- <literal>glibc</literal> versions, even if the shared
- library version hasn't changed.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>i386-unknown-freebsd (PCs running FreeBSD 2.2 or higher)
- <indexterm><primary>i386-unknown-freebsd</primary></indexterm>
- </term>
- <listitem>
- <para>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!).</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>i386-unknown-openbsd (PCs running OpenBSD)
- <indexterm><primary>i386-unknown-openbsd</primary></indexterm>
- </term>
- <listitem>
- <para>Supported, with native code generator. Packages are
- available through the ports system in the native package
- format.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>i386-unknown-netbsd (PCs running NetBSD)
- <indexterm><primary>i386-unknown-netbsd</primary></indexterm>
- </term>
- <listitem>
- <para>Will require some minor porting effort, but should
- work registerised.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>i386-unknown-mingw32 (PCs running Windows)
- <indexterm><primary>i386-unknown-mingw32</primary></indexterm>
- </term>
- <listitem>
- <para>Fully supported under Win9x, WinNT, Win2k, and
- WinXP. Includes a native code generator. Building from
- source requires a recent <ulink
- url="http://www.cygwin.com/">Cygwin</ulink> distribution
- to be installed.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>ia64-unknown-linux
- <indexterm><primary>ia64-unknown-linux</primary></indexterm>
- </term>
- <listitem>
- <para>Supported, except there is no native code
- generator.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>x86_64-unknown-linux
- <indexterm><primary>x86_64-unknown-linux</primary></indexterm>
- </term>
-<term>amd64-unknown-openbsd
- <indexterm><primary>amd64-unknown-linux</primary></indexterm>
- </term>
- <listitem>
- <para>Fully supported, with a native code generator and GHCi.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>mips-sgi-irix5
- <indexterm><primary>mips-sgi-irix[5-6]</primary></indexterm>
- </term>
- <listitem>
- <para>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.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>mips64-sgi-irix6
- <indexterm><primary>mips-sgi-irix6</primary></indexterm>
- </term>
- <listitem>
- <para>GHC currently works unregisterised.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>powerpc-ibm-aix
- <indexterm><primary>powerpc-ibm-aix</primary></indexterm>
- </term>
- <listitem>
- <para>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.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>powerpc-apple-darwin
- <indexterm><primary>powerpc-apple-darwin</primary></indexterm>
- </term>
- <listitem>
- <para>Supported registerised. Native code generator is
- almost working.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>powerpc-apple-linux
- <indexterm><primary>powerpc-apple-linux</primary></indexterm>
- </term>
- <listitem>
- <para>Not supported (yet).</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>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.</para>
- </sect1>
-
<sect1 id="sec-pre-supposed">
<title>Installing pre-supposed utilities</title>