mirror of
https://github.com/RPCSX/llvm.git
synced 2025-02-02 18:42:36 +00:00
Sphinxify the outdated Packaging documentation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158901 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
8ef0968dc2
commit
1d4e62878e
@ -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
docs/Packaging.rst
Normal file
75
docs/Packaging.rst
Normal 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.
|
@ -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.
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user