</tr>
<tr>
<td>Linux</td>
- <td>x86<sup>1</sup></td>
+ <td>x86<sup><a href="#pf_1">1</a></sup></td>
<td>GCC</td>
</tr>
<tr>
</tr>
<tr>
<td>FreeBSD</td>
- <td>x86<sup>1</sup></td>
+ <td>x86<sup><a href="#pf_1">1</a></sup></td>
<td>GCC</td>
</tr>
<tr>
- <td>MacOS X<sup>2</sup></td>
+ <td>MacOS X<sup><a href="#pf_2">2</a></sup></td>
<td>PowerPC</td>
<td>GCC</td>
</tr>
<tr>
<td>Cygwin/Win32</td>
- <td>x86<sup>1</sup></td>
+ <td>x86<sup><a href="#pf_1">1</a></sup></td>
<td>GCC 3.4.X, binutils 2.15</td>
</tr>
<tr>
<td>MinGW/Win32</td>
- <td>x86<sup>1</sup><sup>6</sup></td>
+ <td>x86<sup><a href="#pf_1">1</a>,<a href="#pf_6">6</a></sup></td>
<td>GCC 3.4.X, binutils 2.15</td>
</tr>
<tr>
<td>Linux</td>
- <td>amd64<sup>3</sup></td>
+ <td>amd64<sup><a href="#pf_3">3</a></sup></td>
<td>GCC</td>
</tr>
</table>
</tr>
<tr>
<td>Windows</td>
- <td>x86<sup>1</sup></td>
- <td>Visual Studio .NET<sup>4,5</sup></td>
+ <td>x86<sup><a href="#pf_1">1</a></sup></td>
+ <td>Visual Studio .NET<sup><a href="#pf_4">4</a>,<a href="#pf_5">5</a></sup></td>
<tr>
- <td>AIX<sup>3,4</sup></td>
+ <td>AIX<sup><a href="#pf_3">3</a>,<a href="#pf_4">4</a></sup></td>
<td>PowerPC</td>
<td>GCC</td>
</tr>
<tr>
- <td>Linux<sup>3,5</sup></td>
+ <td>Linux<sup><a href="#pf_3">3</a>,<a href="#pf_5">5</a></sup></td>
<td>PowerPC</td>
<td>GCC</td>
</tr>
</table>
-<p>
-Notes:<br>
-<sup>1</sup> Code generation supported for Pentium processors and up<br>
-<sup>2</sup> Code generation supported for 32-bit ABI only<br>
-<sup>3</sup> No native code generation<br>
-<sup>4</sup> Build is not complete: one or more tools don't link<br>
-<sup>5</sup> The GCC-based C/C++ frontend does not build<br>
-<sup>6</sup> The port is done using the MSYS shell.
-Download (from http://www.mingw.org/MinGWiki/) and install
-bison (excl. M4.exe) and flex in that order.
-Build binutils 2.15 from source if necessary.
-If you want to compile the Cfrontend then upgrade to texinfo 4.5+ from source.
-If you need to create a library for an MS dll do these three steps:
-1) pexports /C/WINNT/SYSTEM32/file.dll | sed "s/^_//" > /C/MinGW/lib/file.def
-2) Edit file and append @<ordinal> to the missing function name
-3) dlltool.exe -k -d /C/MinGW/lib/file.def -l /C/MinGW/lib/libfile.a.
-Add in .profile: export CPPFLAGS="-D__MINGW -DLLVM_ON_WIN32=1"
-<br>
-</p>
+<p><b>Notes:</b></p>
+
+<div class="doc_notes">
+<ol>
+<li><a name="pf_1">Code generation supported for Pentium processors and
+up</a></li>
+<li><a name="pf_2">Code generation supported for 32-bit ABI only</a></li>
+<li><a name="pf_3">No native code generation</a></li>
+<li><a name="pf_4">Build is not complete: one or more tools don't link</a></li>
+<li><a name="pf_5">The GCC-based C/C++ frontend does not build</a></li>
+<li><a name="pf_6">The port is done using the MSYS shell.
+<a href="http://www.mingw.org/MinGWiki/">Download</a> and install
+bison (excl. M4.exe) and flex in that order. Build binutils-2.15 from source,
+if necessary.</li>
+</ol>
+</div>
<p>Note that you will need about 1-3 GB of space for a full LLVM build in Debug
mode, depending on the system (because of all the debug info), and the libraries
<tr>
<td><a href="http://gcc.gnu.org">GCC</a></td>
<td>3.4.2</td>
- <td>C/C++ compiler (<a href="#Note3">Note 3</a>)</td>
+ <td>C/C++ compiler<sup><a href="#sf1">1</a></sup></td>
</tr>
<tr>
<td>YACC compiler</td>
</tr>
+ <tr>
+ <td><a href="https://www.cvshome.org/downloads.html">CVS</a></td>
+ <td>≥1.11</td>
+ <td>CVS access to LLVM<sup><a href="#sf2">2</a></sup></td>
+ </tr>
+
<tr>
<td><a href="http://savannah.gnu.org/projects/dejagnu">DejaGnu</a></td>
<td>1.4.2</td>
- <td>Automated test suite (<a href="#Note2">Note 2</a>)</td>
+ <td>Automated test suite<sup><a href="#sf3">3</a></sup></td>
</tr>
<tr>
<td><a href="http://www.tcl.tk/software/tcltk/">tcl</a></td>
<td>8.3, 8.4</td>
- <td>Automated test suite (<a href="#Note2">Note 2</a>)</td>
+ <td>Automated test suite<sup><a href="#sf3">3</a></sup></td>
</tr>
<tr>
<td><a href="http://expect.nist.gov/">expect</a></td>
<td>5.38.0</td>
- <td>Automated test suite (<a href="#Note2">Note 2</a>)</td>
+ <td>Automated test suite<sup><a href="#sf3">3</a></sup></td>
+ </tr>
+
+ <tr>
+ <td><a href="http://www.perl.com/download.csp">perl</a></td>
+ <td>≥5.6.0</td>
+ <td>Nightly tester, utilities</td>
</tr>
<tr>
<td><a href="http://savannah.gnu.org/projects/m4">GNU M4</a>
<td>1.4</td>
- <td>Macro processor for configuration (<a href="#Note1">Note 1</a>)</td>
+ <td>Macro processor for configuration<sup><a href="#sf4">4</a></sup></td>
</tr>
<tr>
<td><a href="http://www.gnu.org/software/autoconf">GNU Autoconf</a></td>
<td>2.59</td>
- <td>Configuration script builder (<a href="#Note1">Note 1</a>)</td>
+ <td>Configuration script builder<sup><a href="#sf4">4</a></sup></td>
</tr>
<tr>
<td><a href="http://www.gnu.org/software/automake">GNU Automake</a></td>
<td>1.9.2</td>
- <td>aclocal macro generator (<a href="#Note1">Note 1</a>)</td>
- </tr>
-
- <tr>
- <td><a href="http://www.perl.com/download.csp">perl</a></td>
- <td>≥5.6.0</td>
- <td>Nightly tester, utilities</td>
+ <td>aclocal macro generator<sup><a href="#sf4">4</a></sup></td>
</tr>
<tr>
<td><a href="http://savannah.gnu.org/projects/libtool">libtool</a></td>
<td>1.5.10</td>
- <td>Shared library manager (<a href="#Note1">Note 1</a>)</td>
- </tr>
-
- <tr>
- <td><a href="https://www.cvshome.org/downloads.html">CVS</a></td>
- <td>≥1.11</td>
- <td>CVS access to LLVM (<a href="#Note4">Note 4</a>)</td>
+ <td>Shared library manager<sup><a href="#sf4">4</a></sup></td>
</tr>
</table>
- <p>Notes:</p>
+ <p><b>Notes:</b></p>
+ <div class="doc_notes">
<ol>
- <li><a name="Note1">If you want to make changes to the configure scripts,
- you will need GNU autoconf (2.59), and consequently, GNU M4 (version 1.4
- or higher). You will also need automake (1.9.2). We only use aclocal
- from that package.</a></li>
- <li><a name="Note2">Only needed if you want to run the automated test
- suite in the <tt>test</tt> directory.</a></li>
- </li>
- <li><a name="Note3">Only the C and C++ languages are needed so there's no
+ <li><a name="sf3">Only the C and C++ languages are needed so there's no
need to build the other languages for LLVM's purposes.</a> See
- <a href="#brokengcc">below</a> for specific version info.
- </li>
- <li><a name="Note4">You only need CVS if you intend to build from the
+ <a href="#brokengcc">below</a> for specific version info.</li>
+ <li><a name="sf2">You only need CVS if you intend to build from the
latest LLVM sources. If you're working from a release distribution, you
don't need CVS.</a></li>
+ <li><a name="sf3">Only needed if you want to run the automated test
+ suite in the <tt>llvm/test</tt> directory.</a></li>
+ <li><a name="sf4">If you want to make changes to the configure scripts,
+ you will need GNU autoconf (2.59), and consequently, GNU M4 (version 1.4
+ or higher). You will also need automake (1.9.2). We only use aclocal
+ from that package.</a></li>
</ol>
+ </div>
+
<p>Additionally, your compilation host is expected to have the usual
plethora of Unix utilities. Specifically:</p>
<ul>
<p>LLVM is very demanding of the host C++ compiler, and as such tends to expose
bugs in the compiler. In particular, several versions of GCC crash when trying
to compile LLVM. We routinely use GCC 3.3.3 and GCC 3.4.0 and have had success
-with them. Other versions of GCC will probably work as well. GCC versions listed
+with them (however, see below). Other versions of GCC will probably
+work as well. GCC versions listed
here are known to not work. If you are using one of these versions, please try
to upgrade your GCC to something more recent. If you run into a problem with a
version of GCC not listed here, please <a href="mailto:llvmdev@cs.uiuc.edu">let
<p><b>GCC 3.3.2</b>: This version of GCC suffered from a <a
href="http://gcc.gnu.org/PR13392">serious bug</a> which causes it to crash in
the "<tt>convert_from_eh_region_ranges_1</tt>" GCC function.</p>
+
+<p><b>Cygwin GCC 3.3.3</b>: The version of GCC 3.3.3 commonly shipped with
+ Cygwin does not work. Please <a href="CFEBuildInstrs.html#cygwin">upgrade
+ to a newer version</a> if possible.</p>
+<p><b>SuSE GCC 3.3.3</b>: The version of GCC 3.3.3 shipped with SuSE 9.1 (and
+ possibly others) does not compile LLVM correctly (it appears that exception
+ handling is broken in some cases). Please download the FSF 3.3.3 or upgrade
+ to a newer version of GCC.</p>
</div>
<dd>Source release for the LLVM libraries and tools.<br/></dd>
<dt><tt>llvm-test-x.y.tar.gz</tt></dt>
- <dd>Source release for the LLVM test suite.</tt></dd>
+ <dd>Source release for the LLVM test suite.</dd>
<dt><tt>cfrontend-x.y.source.tar.gz</tt></dt>
<dd>Source release of the GCC front end.<br/></dd>