<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<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>
  <li><a href="#instructions">Instructions</a>
  <li><a href="#license">License Information</a>
</ol>

<div class="doc_text">    
  <p><b>Written by Brian R. Gaeke</b></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_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>The use of the non-default target "tools-only" means that the
    LLVM tools and libraries will build, and the binaries will be
    deposited in llvm/tools/Debug, but the runtime (bytecode)
    libraries will not build.</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>Edit src/configure.  Change the first line (starting w/ #!) to
       contain the correct full pathname of sh.</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>
</p>

<pre>
 % cd build
 % ../src/configure --prefix=$CFEINSTALL --disable-threads --disable-nls --disable-shared \
   --enable-languages=c,c++
 % gmake all-gcc
 % 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 all-gcc
 % 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/<i>target-triplet</i>/sys-include</code>.</p></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.</p></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. Edit Makefile.config
to redefine <code>LLVMGCCDIR</code> to the full pathname of the
<code>$CFEINSTALL</code> directory, which is the directory you just
installed the C front-end into. (The ./configure script is likely to
have set this to a directory which does not exist on your system.)</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>Build and install the runtime (bytecode) libraries by running:</p>
<pre>
 % gmake -C runtime
 % 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>
  </p>
</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>
<div class="doc_footer">
  <address>Brian Gaeke</address>
  <a href="http://llvm.cs.uiuc.edu">The LLVM Compiler Infrastructure</a>
  <br>
  Last modified: $Date$
</div>

</body>
</html>
