<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
                      "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  <link rel="stylesheet" href="llvm.css" type="text/css" media="screen">
  <title>Bootstrapping the LLVM C/C++ Front-End</title>
</head>
<body>

<div class="doc_title">
  Bootstrapping the LLVM C/C++ Front-End
</div>

<ol>
  <li><a href="#cautionarynote">A Cautionary Note</a>
    <ul>
      <li><a href="#cygwin">Building under Cygwin</a></li>
      <li><a href="#aix">Building under AIX</a></li>
    </ul>
  </li>
  <li><a href="#instructions">Instructions</a></li>
  <li><a href="#license">License Information</a></li>
</ol>

<div class="doc_author">    
  <p>Written by Brian R. Gaeke and 
     <a href="http://nondot.org/sabre">Chris Lattner</a></p>
</div>

<!-- *********************************************************************** -->
<div class="doc_section">
  <a name="cautionarynote">A Cautionary Note</a>
</div>
<!-- *********************************************************************** -->

<div class="doc_text">
<p>This document is intended to explain the process of building the
LLVM C/C++ front-end, based on GCC 3.4, from its source code. You
would have to do this, for example, if you are porting LLVM to a new
architecture or operating system.</p>

<p><b>NOTE:</b> This is currently a somewhat fragile, error-prone
process, and you should <b>only</b> try to do it if:</p>

<ol>
  <li>you really, really, really can't use the binaries we distribute</li>
  <li>you need GCC to fix some of the header files on your system</li>
  <li>you are an elite GCC hacker.</li>
</ol>

<p>We welcome patches to help make this process simpler.</p>
</div>

<!--=========================================================================-->
<div class="doc_subsection">
  <a name="cygwin">Building under Cygwin</a>
</div>
<!--=========================================================================-->

<div class="doc_text">
<p>If you are building LLVM and the C front-end under Cygwin, please note that
the LLVM and GCC makefiles do not correctly handle spaces in paths.  To deal
with this issue, make sure that your LLVM and GCC source and build trees are 
located in a top-level directory (like <tt>/cygdrive/c/llvm</tt> and 
<tt>/cygdrive/c/llvm-cfrontend</tt>), not in a directory that contains a space
(which includes your "home directory", because it lives under the "Documents 
and Settings" directory).  We welcome patches to fix this issue.
</p>
</div>

<!--=========================================================================-->
<div class="doc_subsection">
  <a name="aix">Building under AIX</a>
</div>
<!--=========================================================================-->

<div class="doc_text">
<p>If you are building LLVM and the C front-end under AIX, do NOT use GNU
Binutils.  They are not stable under AIX and may produce incorrect and/or
invalid code.  Instead, use the system assembler and linker.
</p>
</div>

<!-- *********************************************************************** -->
<div class="doc_section">
  <a name="instructions">Instructions</a>
</div>
<!-- *********************************************************************** -->

<div class="doc_text">
<p>
<ol>
<li><p>Configure and build the LLVM libraries and tools using:</p>
<pre>
 % cd llvm
 % ./configure [options...]
 % gmake tools-only
</pre>
    <p>This will build all of the LLVM tools and libraries.</p></li>

<li><p>Add the directory containing the tools to your PATH.</p>
<pre>
 % set path = ( `cd llvm/tools/Debug &amp;&amp; pwd` $path )
</pre></li>

<li><p>Unpack the C/C++ front-end source into cfrontend/src.</p></li>

<li><p>Make "build" and "install" directories as siblings of the "src" tree.</p>
<pre>
 % pwd
 /usr/local/example/cfrontend/src
 % cd ..
 % mkdir build install
 % set CFEINSTALL = `pwd`/install
</pre></li>


<li><p>Configure, build, and install the C front-end:</p>

<p>
<b>Linux/x86:</b><br>
<b>MacOS X/PowerPC</b> (requires dlcompat library):<br>
<b>AIX/PowerPC:</b>
</p>

<pre>
 % cd build
 % ../src/configure --prefix=$CFEINSTALL --disable-threads --disable-nls \
   --disable-shared --enable-languages=c,c++
 % gmake
 % setenv LLVM_LIB_SEARCH_PATH `pwd`/gcc 
 % gmake all; gmake install
</pre>

<p><b>Cygwin/x86:</b></p>

<pre>
 % cd build
 % ../src/configure --prefix=$CFEINSTALL --disable-threads --disable-nls \
   --disable-shared --enable-languages=c,c++ --disable-c-mbchar
 % gmake
 % setenv LLVM_LIB_SEARCH_PATH `pwd`/gcc 
 % gmake all; gmake install
</pre>

<p><b>Solaris/SPARC:</b></p>

<p>
For Solaris/SPARC, LLVM only supports the SPARC V9.  Therefore, the
configure command line should specify sparcv9, as shown below. Also,
note that Solaris has trouble with various wide (multibyte) character
functions from C as referenced from C++, so we typically configure with
--disable-c-mbchar (cf. <a href="http://llvm.cs.uiuc.edu/PR206">Bug 206</a>).
</p>

<pre>
 % cd build
 % ../src/configure --prefix=$CFEINSTALL --disable-threads --disable-nls \
   --disable-shared --enable-languages=c,c++ --host=sparcv9-sun-solaris2.8 \
   --disable-c-mbchar
 % gmake
 % setenv LLVM_LIB_SEARCH_PATH `pwd`/gcc 
 % gmake all; gmake install
</pre>

 <p><b>Common Problem:</b> You may get error messages regarding the fact
 that LLVM does not support inline assembly. Here are two common
 fixes:</p>

 <ul>
  <li><p><b>Fix 1:</b> If you have system header files that include
   inline assembly, you may have to modify them to remove the inline
   assembly, and install the modified versions in
   <code>$CFEINSTALL/lib/gcc/<i>target-triplet</i>/3.4-llvm/include</code>.</li>

  <li><b>Fix 2:</b> If you are building the C++ front-end on a CPU we
   haven't tried yet, you will probably have to edit the appropriate
   version of atomicity.h under
   <code>src/libstdc++-v3/config/cpu/<i>name-of-cpu</i>/atomicity.h</code>
   and apply a patch so that it does not use inline assembly.</li>
 </ul>

 <p><b>Porting to a new architecture:</b> If you are porting the new front-end
 to a new architecture, or compiling in a different configuration that we have
 previously, there are probably several changes you will have to make to the GCC
 target to get it to work correctly.  These include:<p>

 <ul>
  <li>Often targets include special or assembler linker flags which
      <tt>gccas</tt>/<tt>gccld</tt> does not understand.  In general, these can
      just be removed.</li>
  <li>LLVM currently does not support any floating point values other than 
      32-bit and 64-bit IEEE floating point.  The primary effect of this is
      that you may have to map "long double" onto "double".</li>
  <li>The profiling hooks in GCC do not apply at all to the LLVM front-end.
      These may need to be disabled.</li>
  <li>No inline assembly for position independent code.  At the LLVM level,
      everything is position independent.</li>
  <li>We handle <tt>.init</tt> and <tt>.fini</tt> differently.</li>
  <li>You may have to disable multilib support in your target.  Using multilib
      support causes the GCC compiler driver to add a lot of "<tt>-L</tt>"
      options to the link line, which do not relate to LLVM and confuse
      <tt>gccld</tt>.  To disable multilibs, delete any
      <tt>MULTILIB_OPTIONS</tt> lines from your target files.</li>
  <li>Did we mention that we don't support inline assembly?  You'll probably
      have to add some fixinclude hacks to disable it in the system
      headers.</li>
 </ul>
</li>

<li><p>Go back into the LLVM source tree proper.  Rerun configure, using
the <code>--with-llvmgccdir=$CFEINSTALL</code> option to specify the path
to the newly built C front-end.</p></li>

<li><p>If you edited header files during the C/C++ front-end build as
described in "Fix 1" above, you must now copy those header files from
<code>$CFEINSTALL/<i>target-triplet</i>/sys-include</code> to
<code>$CFEINSTALL/lib/gcc/<i>target-triplet</i>/3.4-llvm/include</code>.
(This should be the "include" directory in the same directory as the
libgcc.a library, which you can find by running
<code>$CFEINSTALL/bin/gcc --print-libgcc-file-name</code>.)</p></li>

<li><p>Rebuild your CVS tree.  This shouldn't cause the whole thing to be
  rebuilt, but it should build the runtime libraries.  After the tree is
  built, install the runtime libraries into your C front-end build tree.
  These are the commands you need.</p>
<pre>
 % gmake
 % mkdir $CFEINSTALL/bytecode-libs
 % gmake -C runtime install-bytecode
 % setenv LLVM_LIB_SEARCH_PATH $CFEINSTALL/bytecode-libs
</pre></li>

<li><p>Test the newly-installed C frontend by one or more of the
following means:</p>
 <ul>
  <li> compiling and running a "hello, LLVM" program in C and C++.</li>
  <li> running the tests under <tt>test/Programs</tt> using <code>gmake -C
   test/Programs</code></li>
 </ul></li>
</ol>
</div>

<!-- *********************************************************************** -->
<div class="doc_section">
  <a name="license">License Information</a>
</div>

<div class="doc_text">
<p>
The LLVM GCC frontend is licensed to you under the GNU General Public License
and the GNU Lesser General Public License.  Please see the files COPYING and
COPYING.LIB for more details.
</p>

<p>
The software also has the following additional copyrights:
</p>

<pre>

Copyright (c) 2003, 2004 University of Illinois at Urbana-Champaign.
All rights reserved.

Developed by:

    LLVM Team

    University of Illinois at Urbana-Champaign

    http://llvm.cs.uiuc.edu

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE
SOFTWARE.

Copyright (c) 1994
Hewlett-Packard Company

Permission to use, copy, modify, distribute and sell this software
and its documentation for any purpose is hereby granted without fee,
provided that the above copyright notice appear in all copies and
that both that copyright notice and this permission notice appear
in supporting documentation.  Hewlett-Packard Company makes no
representations about the suitability of this software for any
purpose.  It is provided "as is" without express or implied warranty.

Copyright (c) 1996, 1997, 1998, 1999
Silicon Graphics Computer Systems, Inc.

Permission to use, copy, modify, distribute and sell this software
and its documentation for any purpose is hereby granted without fee,
provided that the above copyright notice appear in all copies and
that both that copyright notice and this permission notice appear
in supporting documentation.  Silicon Graphics makes no
representations about the suitability of this software for any
purpose.  It is provided "as is" without express or implied warranty.
</pre>
</div>

<!-- *********************************************************************** -->

<hr>
<address>
  <a href="http://jigsaw.w3.org/css-validator/check/referer"><img
  src="http://jigsaw.w3.org/css-validator/images/vcss" alt="Valid CSS!"></a>
  <a href="http://validator.w3.org/check/referer"><img
  src="http://www.w3.org/Icons/valid-html401" alt="Valid HTML 4.01!"></a>

  Brian Gaeke<br>
  <a href="http://llvm.cs.uiuc.edu">LLVM Compiler Infrastructure</a><br>
  Last modified: $Date$
</address>

</body>
</html>
