Constants never get names.
[oota-llvm.git] / docs / GettingStarted.html
index df1a7d6d15c69d56790c2b900fafeb432df0d053..dbb8dfacaf64fab80e32ab7c92ddd00593f847ac 100644 (file)
@@ -213,7 +213,7 @@ software you will need.</p>
 </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>
@@ -223,27 +223,27 @@ software you will need.</p>
 </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>
@@ -258,39 +258,36 @@ software you will need.</p>
 </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 @&lt;ordinal&gt; 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
@@ -331,7 +328,7 @@ href="CFEBuildInstrs.html">try to compile it</a> on your platform.</p>
     <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>
@@ -346,79 +343,80 @@ href="CFEBuildInstrs.html">try to compile it</a> on your platform.</p>
       <td>YACC compiler</td>
     </tr>
 
+    <tr>
+      <td><a href="https://www.cvshome.org/downloads.html">CVS</a></td>
+      <td>&ge;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>&ge;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>&ge;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>&ge;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>
@@ -460,7 +458,8 @@ href="CFEBuildInstrs.html">try to compile it</a> on your platform.</p>
 <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
@@ -477,6 +476,14 @@ problems in the STL that effectively prevent it from compiling LLVM.
 <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>
 
 
@@ -579,7 +586,7 @@ compressed with the gzip program.
   <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>