<!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 C/C++ Front-End</title>
</head>
<body>

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

<p>This document is intended to explain the process of building the LLVM
C/C++ front-end, based on GCC 3.4, from source.</p>

<p><b>NOTE:</b> This is currently a somewhat fragile, error-prone
process, and you should only try to do it if
<ul>
  <li>(A) you really, really, really can't use the binaries we distribute
  <li>(B) you need GCC to fix some of the header files on your system
  <li>(C) you are an elite GCC hacker.</p>
</ul>

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

<!-- *********************************************************************** -->
<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>
<pre>
 % cd build
 % ../src/configure --prefix=$CFEINSTALL --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>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
 % 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>

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

<hr><font size="-1">
<address><a href="mailto:gaeke -at- uiuc.edu">Brian Gaeke</a></address>
<a href="http://llvm.cs.uiuc.edu">The LLVM Compiler Infrastructure</a>
<br>
Last modified: $Date$
</font>

</body>
</html>
