Add to the packaging advice.
authorJeffrey Yasskin <jyasskin@google.com>
Fri, 26 Feb 2010 18:03:43 +0000 (18:03 +0000)
committerJeffrey Yasskin <jyasskin@google.com>
Fri, 26 Feb 2010 18:03:43 +0000 (18:03 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97229 91177308-0d34-0410-b5e6-96231b3b80d8

docs/Packaging.html

index c6eea38ed6d6d81e4f6423da03e409f9ecd53f33..2d6d0861826b071a0d5f6c4adef3e9bd3d4da576 100644 (file)
 <div class="doc_title">Advice on Packaging LLVM</div>
 <ol>
   <li><a href="#overview">Overview</a></li>
+  <li><a href="#compilation">Compile Flags</a></li>
   <li><a href="#cxx-features">C++ Features</a></li>
   <li><a href="#shared-library">Shared Library</a></li>
+  <li><a href="#deps">Dependencies</a></li>
 </ol>
 
 <!--=========================================================================-->
@@ -24,6 +26,42 @@ break things for constrained platforms.  These settings are not optimal for most
 desktop systems, and we hope that packagers (i.e., Redhat, Debian, MacPorts,
 etc.) will tweak them.  This document lists settings we suggest you tweak.
 </p>
+
+<p>LLVM's API changes with each release, so users are likely to want, for
+example, both LLVM-2.6 and LLVM-2.7 installed at the same time to support apps
+developed against each.
+</p>
+</div>
+
+<!--=========================================================================-->
+<div class="doc_section"><a name="compilation">Compile Flags</a></div>
+<!--=========================================================================-->
+<div class="doc_text">
+
+<p>LLVM runs much more quickly when it's optimized and assertions are removed.
+However, such a build is currently incompatible with users who build without
+defining NDEBUG, and the lack of assertions makes it hard to debug problems in
+user code.  We recommend allowing users to install both optimized and debug
+versions of LLVM in parallel.  The following configure flags are relevant:
+</p>
+
+<dl>
+  <dt><tt>--disable-assertions</tt></dt><dd>Builds LLVM with <tt>NDEBUG</tt>
+  defined.  Changes the LLVM ABI.  Also available by setting
+  <tt>DISABLE_ASSERTIONS=0|1</tt> in <tt>make</tt>'s environment.  This defaults
+  to enabled regardless of the optimization setting, but it slows things
+  down.</dd>
+
+  <dt><tt>--enable-debug-symbols</tt></dt><dd>Builds LLVM with <tt>-g</tt>.
+  Also available by setting <tt>DEBUG_SYMBOLS=0|1</tt> in <tt>make</tt>'s
+  environment.  This defaults to disabled when optimizing, so you should turn it
+  back on to let users debug their programs.</dd>
+
+  <dt><tt>--enable-optimized</tt></dt><dd>(For svn checkouts) Builds LLVM with
+  <tt>-O2</tt> and, by default, turns off debug symbols.  Also available by
+  setting <tt>ENABLE_OPTIMIZED=0|1</tt> in <tt>make</tt>'s environment.  This
+  defaults to enabled when not in a checkout.</dd>
+</dl>
 </div>
 
 <!--=========================================================================-->
@@ -53,6 +91,22 @@ against it.  This saves lots of binary size at the cost of some startup time.
 </p>
 </div>
 
+<!--=========================================================================-->
+<div class="doc_section"><a name="deps">Dependencies</a></div>
+<!--=========================================================================-->
+<div class="doc_text">
+
+<dl>
+<dt><tt>--enable-libffi</tt></dt><dd>Depend on <a
+href="http://sources.redhat.com/libffi/">libffi</a> to allow the LLVM
+interpreter to call external functions.</dd>
+<dt><tt>--with-oprofile</tt></dt><dd>Depend on <a
+href="http://oprofile.sourceforge.net/doc/devel/index.html">libopagent</a>
+(>=version 0.9.4) to let the LLVM JIT tell oprofile about function addresses and
+line numbers.</dd>
+</dl>
+</div>
+
 <!-- *********************************************************************** -->
 <hr>
 <address>