Sphinxify the outdated Packaging documentation.

llvm-svn: 158901
This commit is contained in:
Bill Wendling 2012-06-21 06:09:37 +00:00
parent 8c2ad81238
commit 5b26461e09
3 changed files with 77 additions and 120 deletions

View File

@ -1,119 +0,0 @@
<!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">
<title>Advice on Packaging LLVM</title>
<link rel="stylesheet" href="_static/llvm.css" type="text/css">
</head>
<body>
<h1>Advice on Packaging LLVM</h1>
<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>
<!--=========================================================================-->
<h2><a name="overview">Overview</a></h2>
<!--=========================================================================-->
<div>
<p>LLVM sets certain default configure options to make sure our developers don't
break things for constrained platforms. These settings are not optimal for most
desktop systems, and we hope that packagers (e.g., 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>
<!--=========================================================================-->
<h2><a name="compilation">Compile Flags</a></h2>
<!--=========================================================================-->
<div>
<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>
<!--=========================================================================-->
<h2><a name="cxx-features">C++ Features</a></h2>
<!--=========================================================================-->
<div>
<dl>
<dt>RTTI</dt><dd>LLVM disables RTTI by default. Add <tt>REQUIRES_RTTI=1</tt>
to your environment while running <tt>make</tt> to re-enable it. This will
allow users to build with RTTI enabled and still inherit from LLVM
classes.</dd>
</dl>
</div>
<!--=========================================================================-->
<h2><a name="shared-library">Shared Library</a></h2>
<!--=========================================================================-->
<div>
<p>Configure with <tt>--enable-shared</tt> to build
<tt>libLLVM-<var>major</var>.<var>minor</var>.(so|dylib)</tt> and link the tools
against it. This saves lots of binary size at the cost of some startup time.
</p>
</div>
<!--=========================================================================-->
<h2><a name="deps">Dependencies</a></h2>
<!--=========================================================================-->
<div>
<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>
<a href="http://jigsaw.w3.org/css-validator/check/referer"><img
src="http://jigsaw.w3.org/css-validator/images/vcss-blue" alt="Valid CSS"></a>
<a href="http://validator.w3.org/check/referer"><img
src="http://www.w3.org/Icons/valid-html401-blue" alt="Valid HTML 4.01"></a>
<a href="http://llvm.org/">The LLVM Compiler Infrastructure</a><br>
Last modified: $Date$
</address>
</body>
</html>

75
llvm/docs/Packaging.rst Normal file
View File

@ -0,0 +1,75 @@
.. _packaging:
========================
Advice on Packaging LLVM
========================
.. contents::
:local:
Overview
========
LLVM sets certain default configure options to make sure our developers don't
break things for constrained platforms. These settings are not optimal for most
desktop systems, and we hope that packagers (e.g., Redhat, Debian, MacPorts,
etc.) will tweak them. This document lists settings we suggest you tweak.
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.
Compile Flags
=============
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:
``--disable-assertions``
Builds LLVM with ``NDEBUG`` defined. Changes the LLVM ABI. Also available
by setting ``DISABLE_ASSERTIONS=0|1`` in ``make``'s environment. This
defaults to enabled regardless of the optimization setting, but it slows
things down.
``--enable-debug-symbols``
Builds LLVM with ``-g``. Also available by setting ``DEBUG_SYMBOLS=0|1`` in
``make``'s environment. This defaults to disabled when optimizing, so you
should turn it back on to let users debug their programs.
``--enable-optimized``
(For svn checkouts) Builds LLVM with ``-O2`` and, by default, turns off
debug symbols. Also available by setting ``ENABLE_OPTIMIZED=0|1`` in
``make``'s environment. This defaults to enabled when not in a
checkout.
C++ Features
============
RTTI
LLVM disables RTTI by default. Add ``REQUIRES_RTTI=1`` to your environment
while running ``make`` to re-enable it. This will allow users to build with
RTTI enabled and still inherit from LLVM classes.
Shared Library
==============
Configure with ``--enable-shared`` to build
``libLLVM-<major>.<minor>.(so|dylib)`` and link the tools against it. This
saves lots of binary size at the cost of some startup time.
Dependencies
============
``--enable-libffi``
Depend on `libffi <http://sources.redhat.com/libffi/>`_ to allow the LLVM
interpreter to call external functions.
``--with-oprofile``
Depend on `libopagent
<http://oprofile.sourceforge.net/doc/devel/index.html>`_ (>=version 0.9.4)
to let the LLVM JIT tell oprofile about function addresses and line
numbers.

View File

@ -10,6 +10,7 @@ User Guides
DeveloperPolicy
FAQ
Lexicon
Packaging
* `The LLVM Getting Started Guide <GettingStarted.html>`_
@ -67,7 +68,7 @@ User Guides
Instructions for building the clang front-end from source.
* `Packaging guide <Packaging.html>`_
* :ref:`packaging`
Advice on packaging LLVM into a distribution.