Reid Spencer | cbadf80 | 2004-11-01 09:21:32 +0000 | [diff] [blame] | 1 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> |
Chris Lattner | 6175735 | 2004-02-27 06:28:34 +0000 | [diff] [blame] | 2 | <html> |
| 3 | <head> |
NAKAMURA Takumi | 5c6e4df | 2011-10-31 11:21:59 +0000 | [diff] [blame^] | 4 | <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> |
| 5 | <title>Using The LLVM Libraries</title> |
Chris Lattner | 6175735 | 2004-02-27 06:28:34 +0000 | [diff] [blame] | 6 | <link rel="stylesheet" href="llvm.css" type="text/css"> |
| 7 | </head> |
| 8 | <body> |
NAKAMURA Takumi | 05d0265 | 2011-04-18 23:59:50 +0000 | [diff] [blame] | 9 | <h1>Using The LLVM Libraries</h1> |
Chris Lattner | 6175735 | 2004-02-27 06:28:34 +0000 | [diff] [blame] | 10 | <ol> |
| 11 | <li><a href="#abstract">Abstract</a></li> |
| 12 | <li><a href="#introduction">Introduction</a></li> |
Reid Spencer | 341d714 | 2004-10-31 23:00:25 +0000 | [diff] [blame] | 13 | <li><a href="#descriptions">Library Descriptions</a></li> |
Reid Spencer | e0f33ae | 2004-12-30 23:12:04 +0000 | [diff] [blame] | 14 | <li><a href="#dependencies">Library Dependencies</a></li> |
Chris Lattner | 6175735 | 2004-02-27 06:28:34 +0000 | [diff] [blame] | 15 | <li><a href="#rot">Linkage Rules Of Thumb</a> |
| 16 | <ol> |
Reid Spencer | 4148266 | 2004-10-31 23:24:31 +0000 | [diff] [blame] | 17 | <li><a href="#always">Always link LLVMCore, LLVMSupport, LLVMSystem</a> |
| 18 | <li><a href="#onlyone">Never link both archive and re-linked</a> |
Chris Lattner | 6175735 | 2004-02-27 06:28:34 +0000 | [diff] [blame] | 19 | </ol> |
| 20 | </li> |
| 21 | </ol> |
Chris Lattner | 7911ce2 | 2004-05-23 21:07:27 +0000 | [diff] [blame] | 22 | |
| 23 | <div class="doc_author"> |
| 24 | <p>Written by <a href="mailto:rspencer@x10sys.com">Reid Spencer</a></p> |
Chris Lattner | 6175735 | 2004-02-27 06:28:34 +0000 | [diff] [blame] | 25 | </div> |
Chris Lattner | 7911ce2 | 2004-05-23 21:07:27 +0000 | [diff] [blame] | 26 | |
Oscar Fuentes | d3a0465 | 2010-09-17 00:30:52 +0000 | [diff] [blame] | 27 | <p class="doc_warning">Warning: This document is out of date, for more |
| 28 | information please |
| 29 | see <a href="CommandGuide/html/llvm-config.html">llvm-config</a> or, |
NAKAMURA Takumi | 4d6deb0 | 2011-04-09 09:51:57 +0000 | [diff] [blame] | 30 | if you use CMake, <a href="CMake.html#embedding">the CMake LLVM |
Oscar Fuentes | d3a0465 | 2010-09-17 00:30:52 +0000 | [diff] [blame] | 31 | guide</a>.</p> |
Tanya Lattner | d006d3a | 2006-04-20 04:55:50 +0000 | [diff] [blame] | 32 | |
Chris Lattner | 6175735 | 2004-02-27 06:28:34 +0000 | [diff] [blame] | 33 | <!-- ======================================================================= --> |
NAKAMURA Takumi | 05d0265 | 2011-04-18 23:59:50 +0000 | [diff] [blame] | 34 | <h2><a name="abstract">Abstract</a></h2> |
NAKAMURA Takumi | f5af6ad | 2011-04-23 00:30:22 +0000 | [diff] [blame] | 35 | <div> |
Reid Spencer | 341d714 | 2004-10-31 23:00:25 +0000 | [diff] [blame] | 36 | <p>Amongst other things, LLVM is a toolkit for building compilers, linkers, |
| 37 | runtime executives, virtual machines, and other program execution related |
| 38 | tools. In addition to the LLVM tool set, the functionality of LLVM is |
| 39 | available through a set of libraries. To use LLVM as a toolkit for |
| 40 | constructing tools, a developer needs to understand what is contained in the |
Reid Spencer | e131ec9 | 2006-08-01 07:32:01 +0000 | [diff] [blame] | 41 | various libraries, what they depend on, and how to use them. Fortunately, |
| 42 | there is a tool, <tt>llvm-config</tt> to aid with this. This document |
| 43 | describes the contents of the libraries and how to use <tt>llvm-config</tt> |
| 44 | to generate command line options. |
Chris Lattner | 6175735 | 2004-02-27 06:28:34 +0000 | [diff] [blame] | 45 | </p> |
| 46 | </div> |
Reid Spencer | 341d714 | 2004-10-31 23:00:25 +0000 | [diff] [blame] | 47 | |
Chris Lattner | 6175735 | 2004-02-27 06:28:34 +0000 | [diff] [blame] | 48 | <!-- ======================================================================= --> |
NAKAMURA Takumi | 05d0265 | 2011-04-18 23:59:50 +0000 | [diff] [blame] | 49 | <h2><a name="introduction">Introduction</a></h2> |
NAKAMURA Takumi | f5af6ad | 2011-04-23 00:30:22 +0000 | [diff] [blame] | 50 | <div> |
Reid Spencer | 341d714 | 2004-10-31 23:00:25 +0000 | [diff] [blame] | 51 | <p>If you're writing a compiler, virtual machine, or any other utility based |
| 52 | on LLVM, you'll need to figure out which of the many libraries files you will |
| 53 | need to link with to be successful. An understanding of the contents of these |
Reid Spencer | e131ec9 | 2006-08-01 07:32:01 +0000 | [diff] [blame] | 54 | libraries will be useful in coming up with an optimal specification for the |
| 55 | libraries to link with. The purpose of this document is to reduce some of |
| 56 | the trial and error that the author experienced in using LLVM.</p> |
Reid Spencer | 341d714 | 2004-10-31 23:00:25 +0000 | [diff] [blame] | 57 | <p>LLVM produces two types of libraries: archives (ending in <tt>.a</tt>) and |
| 58 | objects (ending in <tt>.o</tt>). However, both are libraries. Libraries ending |
| 59 | in <tt>.o</tt> are known as re-linked libraries because they contain all the |
| 60 | compilation units of the library linked together as a single <tt>.o</tt> file. |
Reid Spencer | e131ec9 | 2006-08-01 07:32:01 +0000 | [diff] [blame] | 61 | Furthermore, several of the libraries have <em>both</em> forms of library. The |
Reid Spencer | 341d714 | 2004-10-31 23:00:25 +0000 | [diff] [blame] | 62 | re-linked libraries are used whenever you want to include all symbols from the |
| 63 | library. The archive libraries are used whenever you want to only resolve |
| 64 | outstanding symbols at that point in the link without including everything in |
| 65 | the library. </p> |
Reid Spencer | e131ec9 | 2006-08-01 07:32:01 +0000 | [diff] [blame] | 66 | <p>If you're using the LLVM Makefile system to link your tools,you will use |
| 67 | the <tt>LLVMLIBS</tt> make variable. |
Reid Spencer | 341d714 | 2004-10-31 23:00:25 +0000 | [diff] [blame] | 68 | (see the <a href="MakefileGuide.html#LLVMLIBS">Makefile Guide</a> for |
| 69 | details). This variable specifies which LLVM libraries to link into your tool |
| 70 | and the order in which they will be linked. You specify re-linked libraries by |
| 71 | naming the library without a suffix. You specify archive libraries by naming |
| 72 | the library with a <tt>.a</tt> suffix but without the <tt>lib</tt> prefix. The |
| 73 | order in which the libraries appear in the <tt>LLVMLIBS</tt> variable |
| 74 | definition is the order in which they will be linked. Getting this order |
| 75 | correct for your tool can sometimes be challenging. |
Chris Lattner | 6175735 | 2004-02-27 06:28:34 +0000 | [diff] [blame] | 76 | </div> |
| 77 | <!-- ======================================================================= --> |
NAKAMURA Takumi | 05d0265 | 2011-04-18 23:59:50 +0000 | [diff] [blame] | 78 | <h2><a name="descriptions">Library Descriptions</a></h2> |
NAKAMURA Takumi | f5af6ad | 2011-04-23 00:30:22 +0000 | [diff] [blame] | 79 | <div> |
Reid Spencer | 341d714 | 2004-10-31 23:00:25 +0000 | [diff] [blame] | 80 | <p>The table below categorizes each library |
| 81 | <table style="text-align:left"> |
| 82 | <tr><th>Library</th><th>Forms</th><th>Description</th></tr> |
Reid Spencer | 0a4e8b3 | 2004-11-01 09:22:49 +0000 | [diff] [blame] | 83 | <tr><th colspan="3">Core Libraries</th></tr> |
Reid Spencer | 139e166 | 2004-12-31 00:13:14 +0000 | [diff] [blame] | 84 | <tr><td>LLVMArchive</td><td><tt>.a</tt></td> |
| 85 | <td>LLVM archive reading and writing</td></tr> |
Reid Spencer | e131ec9 | 2006-08-01 07:32:01 +0000 | [diff] [blame] | 86 | <tr><td>LLVMAsmParser</td><td><tt>.a</tt></td> |
Reid Spencer | 139e166 | 2004-12-31 00:13:14 +0000 | [diff] [blame] | 87 | <td>LLVM assembly parsing</td></tr> |
Reid Spencer | e131ec9 | 2006-08-01 07:32:01 +0000 | [diff] [blame] | 88 | <tr><td>LLVMBCReader</td><td><tt>.a</tt></td> |
Gabor Greif | 04367bf | 2007-07-06 22:07:22 +0000 | [diff] [blame] | 89 | <td>LLVM bitcode reading</td></tr> |
Reid Spencer | e131ec9 | 2006-08-01 07:32:01 +0000 | [diff] [blame] | 90 | <tr><td>LLVMBCWriter</td><td><tt>.a</tt></td> |
Gabor Greif | 04367bf | 2007-07-06 22:07:22 +0000 | [diff] [blame] | 91 | <td>LLVM bitcode writing</td></tr> |
Reid Spencer | e131ec9 | 2006-08-01 07:32:01 +0000 | [diff] [blame] | 92 | <tr><td>LLVMCore</td><td><tt>.a</tt></td> |
Reid Spencer | 139e166 | 2004-12-31 00:13:14 +0000 | [diff] [blame] | 93 | <td>LLVM core intermediate representation</td></tr> |
Reid Spencer | e131ec9 | 2006-08-01 07:32:01 +0000 | [diff] [blame] | 94 | <tr><td>LLVMDebugger</td><td><tt>.a</tt></td> |
Reid Spencer | 139e166 | 2004-12-31 00:13:14 +0000 | [diff] [blame] | 95 | <td>Source level debugging support</td></tr> |
| 96 | <tr><td>LLVMLinker</td><td><tt>.a</tt></td> |
Gabor Greif | 04367bf | 2007-07-06 22:07:22 +0000 | [diff] [blame] | 97 | <td>Bitcode and archive linking interface</td></tr> |
Reid Spencer | e131ec9 | 2006-08-01 07:32:01 +0000 | [diff] [blame] | 98 | <tr><td>LLVMSupport</td><td><tt>.a</tt></td> |
Reid Spencer | 4148266 | 2004-10-31 23:24:31 +0000 | [diff] [blame] | 99 | <td>General support utilities</td></tr> |
Reid Spencer | e131ec9 | 2006-08-01 07:32:01 +0000 | [diff] [blame] | 100 | <tr><td>LLVMSystem</td><td><tt>.a</tt></td> |
Reid Spencer | 139e166 | 2004-12-31 00:13:14 +0000 | [diff] [blame] | 101 | <td>Operating system abstraction layer</td></tr> |
Reid Spencer | e131ec9 | 2006-08-01 07:32:01 +0000 | [diff] [blame] | 102 | <tr><td>LLVMbzip2</td><td><tt>.a</tt></td> |
| 103 | <td>BZip2 compression library</td></tr> |
Reid Spencer | 341d714 | 2004-10-31 23:00:25 +0000 | [diff] [blame] | 104 | |
Reid Spencer | 0a4e8b3 | 2004-11-01 09:22:49 +0000 | [diff] [blame] | 105 | <tr><th colspan="3">Analysis Libraries</th></tr> |
Reid Spencer | e131ec9 | 2006-08-01 07:32:01 +0000 | [diff] [blame] | 106 | <tr><td>LLVMAnalysis</td><td><tt>.a</tt></td> |
Reid Spencer | 4148266 | 2004-10-31 23:24:31 +0000 | [diff] [blame] | 107 | <td>Various analysis passes.</td></tr> |
Reid Spencer | e131ec9 | 2006-08-01 07:32:01 +0000 | [diff] [blame] | 108 | <tr><td>LLVMDataStructure</td><td><tt>.o</tt></td> |
Reid Spencer | 4148266 | 2004-10-31 23:24:31 +0000 | [diff] [blame] | 109 | <td>Data structure analysis passes.</td></tr> |
Reid Spencer | e131ec9 | 2006-08-01 07:32:01 +0000 | [diff] [blame] | 110 | <tr><td>LLVMipa</td><td><tt>.a</tt></td> |
Reid Spencer | 4148266 | 2004-10-31 23:24:31 +0000 | [diff] [blame] | 111 | <td>Inter-procedural analysis passes.</td></tr> |
Reid Spencer | 341d714 | 2004-10-31 23:00:25 +0000 | [diff] [blame] | 112 | |
Reid Spencer | 0a4e8b3 | 2004-11-01 09:22:49 +0000 | [diff] [blame] | 113 | <tr><th colspan="3">Transformation Libraries</th></tr> |
Reid Spencer | e131ec9 | 2006-08-01 07:32:01 +0000 | [diff] [blame] | 114 | <tr><td>LLVMInstrumentation</td><td><tt>.a</tt></td> |
Reid Spencer | 4148266 | 2004-10-31 23:24:31 +0000 | [diff] [blame] | 115 | <td>Instrumentation passes.</td></tr> |
Reid Spencer | e131ec9 | 2006-08-01 07:32:01 +0000 | [diff] [blame] | 116 | <tr><td>LLVMipo</td><td><tt>.a</tt></td> |
Reid Spencer | 4148266 | 2004-10-31 23:24:31 +0000 | [diff] [blame] | 117 | <td>All inter-procedural optimization passes.</td></tr> |
Reid Spencer | e131ec9 | 2006-08-01 07:32:01 +0000 | [diff] [blame] | 118 | <tr><td>LLVMScalarOpts</td><td><tt>.a</tt></td> |
Reid Spencer | 4148266 | 2004-10-31 23:24:31 +0000 | [diff] [blame] | 119 | <td>All scalar optimization passes.</td></tr> |
Reid Spencer | e131ec9 | 2006-08-01 07:32:01 +0000 | [diff] [blame] | 120 | <tr><td>LLVMTransformUtils</td><td><tt>.a</tt></td> |
Reid Spencer | 006c687 | 2007-02-04 00:17:35 +0000 | [diff] [blame] | 121 | <td>Transformation utilities used by many passes.</td></tr> |
Reid Spencer | 341d714 | 2004-10-31 23:00:25 +0000 | [diff] [blame] | 122 | |
Reid Spencer | 0a4e8b3 | 2004-11-01 09:22:49 +0000 | [diff] [blame] | 123 | <tr><th colspan="3">Code Generation Libraries </th></tr> |
Reid Spencer | 4148266 | 2004-10-31 23:24:31 +0000 | [diff] [blame] | 124 | <tr><td>LLVMCodeGen</td><td><tt>.o</tt></td> |
| 125 | <td>Native code generation infrastructure</td></tr> |
Reid Spencer | e131ec9 | 2006-08-01 07:32:01 +0000 | [diff] [blame] | 126 | <tr><td>LLVMSelectionDAG</td><td><tt>.o</tt></td> |
| 127 | <td>Aggressive instruction selector for directed acyclic graphs</td></tr> |
Reid Spencer | 341d714 | 2004-10-31 23:00:25 +0000 | [diff] [blame] | 128 | |
Reid Spencer | 0a4e8b3 | 2004-11-01 09:22:49 +0000 | [diff] [blame] | 129 | <tr><th colspan="3">Target Libraries</th></tr> |
Reid Spencer | e131ec9 | 2006-08-01 07:32:01 +0000 | [diff] [blame] | 130 | <tr><td>LLVMARM</td><td><tt>.o</tt></td> |
| 131 | <td>Code generation for ARM architecture</td></tr> |
Reid Spencer | 4148266 | 2004-10-31 23:24:31 +0000 | [diff] [blame] | 132 | <tr><td>LLVMCBackend</td><td><tt>.o</tt></td> |
| 133 | <td>'C' language code generator.</td></tr> |
| 134 | <tr><td>LLVMPowerPC</td><td><tt>.o</tt></td> |
Reid Spencer | d42037a | 2006-05-13 02:22:01 +0000 | [diff] [blame] | 135 | <td>Code generation for PowerPC architecture</td></tr> |
Chris Lattner | 029e844 | 2006-02-05 06:40:12 +0000 | [diff] [blame] | 136 | <tr><td>LLVMSparc</td><td><tt>.o</tt></td> |
Reid Spencer | d42037a | 2006-05-13 02:22:01 +0000 | [diff] [blame] | 137 | <td>Code generation for Sparc architecture</td></tr> |
Reid Spencer | e131ec9 | 2006-08-01 07:32:01 +0000 | [diff] [blame] | 138 | <tr><td>LLVMTarget</td><td><tt>.a</tt></td> |
Reid Spencer | 4148266 | 2004-10-31 23:24:31 +0000 | [diff] [blame] | 139 | <td>Generic code generation utilities.</td></tr> |
| 140 | <tr><td>LLVMX86</td><td><tt>.o</tt></td> |
Reid Spencer | d42037a | 2006-05-13 02:22:01 +0000 | [diff] [blame] | 141 | <td>Code generation for Intel x86 architecture</td></tr> |
Reid Spencer | 341d714 | 2004-10-31 23:00:25 +0000 | [diff] [blame] | 142 | |
Reid Spencer | 0a4e8b3 | 2004-11-01 09:22:49 +0000 | [diff] [blame] | 143 | <tr><th colspan="3">Runtime Libraries</th></tr> |
Reid Spencer | 4148266 | 2004-10-31 23:24:31 +0000 | [diff] [blame] | 144 | <tr><td>LLVMInterpreter</td><td><tt>.o</tt></td> |
Gabor Greif | 04367bf | 2007-07-06 22:07:22 +0000 | [diff] [blame] | 145 | <td>Bitcode Interpreter</td></tr> |
Reid Spencer | 4148266 | 2004-10-31 23:24:31 +0000 | [diff] [blame] | 146 | <tr><td>LLVMJIT</td><td><tt>.o</tt></td> |
Gabor Greif | 04367bf | 2007-07-06 22:07:22 +0000 | [diff] [blame] | 147 | <td>Bitcode JIT Compiler</td></tr> |
Reid Spencer | 4148266 | 2004-10-31 23:24:31 +0000 | [diff] [blame] | 148 | <tr><td>LLVMExecutionEngine</td><td><tt>.o</tt></td> |
| 149 | <td>Virtual machine engine</td></tr> |
Chris Lattner | 6175735 | 2004-02-27 06:28:34 +0000 | [diff] [blame] | 150 | </table> |
| 151 | </div> |
Reid Spencer | 341d714 | 2004-10-31 23:00:25 +0000 | [diff] [blame] | 152 | |
Chris Lattner | 6175735 | 2004-02-27 06:28:34 +0000 | [diff] [blame] | 153 | <!-- ======================================================================= --> |
NAKAMURA Takumi | 05d0265 | 2011-04-18 23:59:50 +0000 | [diff] [blame] | 154 | <h2><a name="dependencies">Using llvm-config</a></h2> |
NAKAMURA Takumi | f5af6ad | 2011-04-23 00:30:22 +0000 | [diff] [blame] | 155 | <div> |
Reid Spencer | 704e81f | 2006-08-01 16:23:54 +0000 | [diff] [blame] | 156 | <p>The <tt>llvm-config</tt> tool is a perl script that produces on its output |
Reid Spencer | e131ec9 | 2006-08-01 07:32:01 +0000 | [diff] [blame] | 157 | various kinds of information. For example, the source or object directories |
| 158 | used to build LLVM can be accessed by passing options to <tt>llvm-config</tt>. |
| 159 | For complete details on this tool, please see the |
| 160 | <a href="CommandGuide/html/llvm-config.html">manual page</a>.</p> |
| 161 | <p>To understand the relationships between libraries, the <tt>llvm-config</tt> |
| 162 | can be very useful. If all you know is that you want certain libraries to |
| 163 | be available, you can generate the complete set of libraries to link with |
| 164 | using one of four options, as below:</p> |
| 165 | <ol> |
| 166 | <li><tt>--ldflags</tt>. This generates the command line options necessary to |
| 167 | be passed to the <tt>ld</tt> tool in order to link with LLVM. Most notably, |
| 168 | the <tt>-L</tt> option is provided to specify a library search directory |
Reid Spencer | 704e81f | 2006-08-01 16:23:54 +0000 | [diff] [blame] | 169 | that contains the LLVM libraries.</li> |
Reid Spencer | e131ec9 | 2006-08-01 07:32:01 +0000 | [diff] [blame] | 170 | <li><tt>--libs</tt>. This generates command line options suitable for |
| 171 | use with a gcc-style linker. That is, libraries are given with a -l option |
| 172 | and object files are given with a full path.</li> |
| 173 | <li><tt>--libnames</tt>. This generates a list of just the library file |
| 174 | names. If you know the directory in which these files reside (see --ldflags) |
| 175 | then you can find the libraries there.</li> |
Reid Spencer | 704e81f | 2006-08-01 16:23:54 +0000 | [diff] [blame] | 176 | <li><tt>--libfiles</tt>. This generates the full path names of the |
| 177 | LLVM library files.</li> |
Reid Spencer | e131ec9 | 2006-08-01 07:32:01 +0000 | [diff] [blame] | 178 | </ol> |
| 179 | <p>If you wish to delve further into how <tt>llvm-config</tt> generates the |
| 180 | correct order (based on library dependencies), please see the tool named |
| 181 | <tt>GenLibDeps.pl</tt> in the <tt>utils</tt> source directory of LLVM.</p> |
| 182 | |
Reid Spencer | e0f33ae | 2004-12-30 23:12:04 +0000 | [diff] [blame] | 183 | <!-- =======NOTE: =========================================================--> |
Reid Spencer | 43ff900 | 2005-01-03 05:46:46 +0000 | [diff] [blame] | 184 | <!-- === The following graphs and <dl> list are generated automatically ===--> |
| 185 | <!-- === by the util named GenLibDeps.pl in the llvm/utils directory. ===--> |
| 186 | <!-- === This should be updated whenever new libraries are added, ===--> |
| 187 | <!-- === removed, or changed ===--> |
Reid Spencer | e0f33ae | 2004-12-30 23:12:04 +0000 | [diff] [blame] | 188 | <!-- =======NOTE: =========================================================--> |
NAKAMURA Takumi | 06c6d9a | 2011-04-18 01:17:51 +0000 | [diff] [blame] | 189 | <h3>Dependency Relationships Of Libraries</h3> |
Reid Spencer | 43ff900 | 2005-01-03 05:46:46 +0000 | [diff] [blame] | 190 | <p>This graph shows the dependency of archive libraries on other archive |
| 191 | libraries or objects. Where a library has both archive and object forms, only |
| 192 | the archive form is shown.</p> |
NAKAMURA Takumi | 4d6deb0 | 2011-04-09 09:51:57 +0000 | [diff] [blame] | 193 | <img src="img/libdeps.gif" alt="Library Dependencies"> |
NAKAMURA Takumi | 06c6d9a | 2011-04-18 01:17:51 +0000 | [diff] [blame] | 194 | <h3>Dependency Relationships Of Object Files</h3> |
Reid Spencer | 43ff900 | 2005-01-03 05:46:46 +0000 | [diff] [blame] | 195 | <p>This graph shows the dependency of object files on archive libraries or |
| 196 | other objects. Where a library has both object and archive forms, only the |
| 197 | dependency to the archive form is shown.</p> |
NAKAMURA Takumi | 4d6deb0 | 2011-04-09 09:51:57 +0000 | [diff] [blame] | 198 | <img src="img/objdeps.gif" alt="Object File Dependencies"> |
Reid Spencer | 43ff900 | 2005-01-03 05:46:46 +0000 | [diff] [blame] | 199 | <p>The following list shows the dependency relationships between libraries in |
| 200 | textual form. The information is the same as shown on the graphs but arranged |
| 201 | alphabetically.</p> |
Reid Spencer | e0f33ae | 2004-12-30 23:12:04 +0000 | [diff] [blame] | 202 | <dl> |
Dan Gohman | 364a39f | 2008-10-14 17:00:38 +0000 | [diff] [blame] | 203 | <dt><b>libLLVMAnalysis.a</b></dt><dd><ul> |
Reid Spencer | e131ec9 | 2006-08-01 07:32:01 +0000 | [diff] [blame] | 204 | <li>libLLVMCore.a</li> |
Reid Spencer | e0f33ae | 2004-12-30 23:12:04 +0000 | [diff] [blame] | 205 | <li>libLLVMSupport.a</li> |
| 206 | <li>libLLVMSystem.a</li> |
Reid Spencer | e131ec9 | 2006-08-01 07:32:01 +0000 | [diff] [blame] | 207 | <li>libLLVMTarget.a</li> |
| 208 | </ul></dd> |
Dan Gohman | 364a39f | 2008-10-14 17:00:38 +0000 | [diff] [blame] | 209 | <dt><b>libLLVMArchive.a</b></dt><dd><ul> |
Reid Spencer | e131ec9 | 2006-08-01 07:32:01 +0000 | [diff] [blame] | 210 | <li>libLLVMBCReader.a</li> |
| 211 | <li>libLLVMCore.a</li> |
| 212 | <li>libLLVMSupport.a</li> |
| 213 | <li>libLLVMSystem.a</li> |
| 214 | </ul></dd> |
Dan Gohman | 364a39f | 2008-10-14 17:00:38 +0000 | [diff] [blame] | 215 | <dt><b>libLLVMAsmParser.a</b></dt><dd><ul> |
Reid Spencer | e131ec9 | 2006-08-01 07:32:01 +0000 | [diff] [blame] | 216 | <li>libLLVMCore.a</li> |
Reid Spencer | e131ec9 | 2006-08-01 07:32:01 +0000 | [diff] [blame] | 217 | <li>libLLVMSystem.a</li> |
| 218 | </ul></dd> |
Dan Gohman | 364a39f | 2008-10-14 17:00:38 +0000 | [diff] [blame] | 219 | <dt><b>libLLVMBCReader.a</b></dt><dd><ul> |
Reid Spencer | e131ec9 | 2006-08-01 07:32:01 +0000 | [diff] [blame] | 220 | <li>libLLVMCore.a</li> |
| 221 | <li>libLLVMSupport.a</li> |
| 222 | <li>libLLVMSystem.a</li> |
| 223 | </ul></dd> |
Dan Gohman | 364a39f | 2008-10-14 17:00:38 +0000 | [diff] [blame] | 224 | <dt><b>libLLVMBCWriter.a</b></dt><dd><ul> |
Reid Spencer | e131ec9 | 2006-08-01 07:32:01 +0000 | [diff] [blame] | 225 | <li>libLLVMCore.a</li> |
| 226 | <li>libLLVMSupport.a</li> |
| 227 | <li>libLLVMSystem.a</li> |
| 228 | </ul></dd> |
Dan Gohman | 364a39f | 2008-10-14 17:00:38 +0000 | [diff] [blame] | 229 | <dt><b>libLLVMCodeGen.a</b></dt><dd><ul> |
Reid Spencer | e131ec9 | 2006-08-01 07:32:01 +0000 | [diff] [blame] | 230 | <li>libLLVMAnalysis.a</li> |
| 231 | <li>libLLVMCore.a</li> |
Reid Spencer | 006c687 | 2007-02-04 00:17:35 +0000 | [diff] [blame] | 232 | <li>libLLVMScalarOpts.a</li> |
Reid Spencer | e131ec9 | 2006-08-01 07:32:01 +0000 | [diff] [blame] | 233 | <li>libLLVMSupport.a</li> |
| 234 | <li>libLLVMSystem.a</li> |
| 235 | <li>libLLVMTarget.a</li> |
Reid Spencer | 006c687 | 2007-02-04 00:17:35 +0000 | [diff] [blame] | 236 | <li>libLLVMTransformUtils.a</li> |
Reid Spencer | e131ec9 | 2006-08-01 07:32:01 +0000 | [diff] [blame] | 237 | </ul></dd> |
Dan Gohman | 364a39f | 2008-10-14 17:00:38 +0000 | [diff] [blame] | 238 | <dt><b>libLLVMCore.a</b></dt><dd><ul> |
Reid Spencer | e131ec9 | 2006-08-01 07:32:01 +0000 | [diff] [blame] | 239 | <li>libLLVMSupport.a</li> |
| 240 | <li>libLLVMSystem.a</li> |
| 241 | </ul></dd> |
Dan Gohman | 364a39f | 2008-10-14 17:00:38 +0000 | [diff] [blame] | 242 | <dt><b>libLLVMDebugger.a</b></dt><dd><ul> |
Reid Spencer | e131ec9 | 2006-08-01 07:32:01 +0000 | [diff] [blame] | 243 | <li>libLLVMBCReader.a</li> |
| 244 | <li>libLLVMCore.a</li> |
| 245 | <li>libLLVMSupport.a</li> |
| 246 | <li>libLLVMSystem.a</li> |
Reid Spencer | e0f33ae | 2004-12-30 23:12:04 +0000 | [diff] [blame] | 247 | </ul></dd> |
Dan Gohman | 364a39f | 2008-10-14 17:00:38 +0000 | [diff] [blame] | 248 | <dt><b>libLLVMInstrumentation.a</b></dt><dd><ul> |
Reid Spencer | e131ec9 | 2006-08-01 07:32:01 +0000 | [diff] [blame] | 249 | <li>libLLVMCore.a</li> |
Reid Spencer | d42037a | 2006-05-13 02:22:01 +0000 | [diff] [blame] | 250 | <li>libLLVMScalarOpts.a</li> |
Reid Spencer | e0f33ae | 2004-12-30 23:12:04 +0000 | [diff] [blame] | 251 | <li>libLLVMSupport.a</li> |
| 252 | <li>libLLVMTransformUtils.a</li> |
Reid Spencer | e0f33ae | 2004-12-30 23:12:04 +0000 | [diff] [blame] | 253 | </ul></dd> |
Dan Gohman | 364a39f | 2008-10-14 17:00:38 +0000 | [diff] [blame] | 254 | <dt><b>libLLVMLinker.a</b></dt><dd><ul> |
Reid Spencer | e0f33ae | 2004-12-30 23:12:04 +0000 | [diff] [blame] | 255 | <li>libLLVMArchive.a</li> |
Reid Spencer | e131ec9 | 2006-08-01 07:32:01 +0000 | [diff] [blame] | 256 | <li>libLLVMBCReader.a</li> |
| 257 | <li>libLLVMCore.a</li> |
Reid Spencer | 006c687 | 2007-02-04 00:17:35 +0000 | [diff] [blame] | 258 | <li>libLLVMSupport.a</li> |
Reid Spencer | e0f33ae | 2004-12-30 23:12:04 +0000 | [diff] [blame] | 259 | <li>libLLVMSystem.a</li> |
Reid Spencer | e0f33ae | 2004-12-30 23:12:04 +0000 | [diff] [blame] | 260 | </ul></dd> |
Dan Gohman | 364a39f | 2008-10-14 17:00:38 +0000 | [diff] [blame] | 261 | <dt><b>libLLVMScalarOpts.a</b></dt><dd><ul> |
Reid Spencer | e0f33ae | 2004-12-30 23:12:04 +0000 | [diff] [blame] | 262 | <li>libLLVMAnalysis.a</li> |
Reid Spencer | e131ec9 | 2006-08-01 07:32:01 +0000 | [diff] [blame] | 263 | <li>libLLVMCore.a</li> |
Reid Spencer | e0f33ae | 2004-12-30 23:12:04 +0000 | [diff] [blame] | 264 | <li>libLLVMSupport.a</li> |
Reid Spencer | e131ec9 | 2006-08-01 07:32:01 +0000 | [diff] [blame] | 265 | <li>libLLVMSystem.a</li> |
Reid Spencer | e0f33ae | 2004-12-30 23:12:04 +0000 | [diff] [blame] | 266 | <li>libLLVMTarget.a</li> |
| 267 | <li>libLLVMTransformUtils.a</li> |
Reid Spencer | e131ec9 | 2006-08-01 07:32:01 +0000 | [diff] [blame] | 268 | </ul></dd> |
Dan Gohman | 364a39f | 2008-10-14 17:00:38 +0000 | [diff] [blame] | 269 | <dt><b>libLLVMSelectionDAG.a</b></dt><dd><ul> |
Reid Spencer | 006c687 | 2007-02-04 00:17:35 +0000 | [diff] [blame] | 270 | <li>libLLVMAnalysis.a</li> |
Reid Spencer | e131ec9 | 2006-08-01 07:32:01 +0000 | [diff] [blame] | 271 | <li>libLLVMCodeGen.a</li> |
| 272 | <li>libLLVMCore.a</li> |
| 273 | <li>libLLVMSupport.a</li> |
| 274 | <li>libLLVMSystem.a</li> |
| 275 | <li>libLLVMTarget.a</li> |
| 276 | <li>libLLVMTransformUtils.a</li> |
Reid Spencer | e0f33ae | 2004-12-30 23:12:04 +0000 | [diff] [blame] | 277 | </ul></dd> |
Dan Gohman | 364a39f | 2008-10-14 17:00:38 +0000 | [diff] [blame] | 278 | <dt><b>libLLVMSupport.a</b></dt><dd><ul> |
Reid Spencer | e0f33ae | 2004-12-30 23:12:04 +0000 | [diff] [blame] | 279 | <li>libLLVMSystem.a</li> |
Reid Spencer | e131ec9 | 2006-08-01 07:32:01 +0000 | [diff] [blame] | 280 | <li>libLLVMbzip2.a</li> |
Reid Spencer | e0f33ae | 2004-12-30 23:12:04 +0000 | [diff] [blame] | 281 | </ul></dd> |
NAKAMURA Takumi | 4d6deb0 | 2011-04-09 09:51:57 +0000 | [diff] [blame] | 282 | <dt><b>libLLVMSystem.a</b></dt><dd> |
| 283 | </dd> |
Dan Gohman | 364a39f | 2008-10-14 17:00:38 +0000 | [diff] [blame] | 284 | <dt><b>libLLVMTarget.a</b></dt><dd><ul> |
Reid Spencer | e131ec9 | 2006-08-01 07:32:01 +0000 | [diff] [blame] | 285 | <li>libLLVMCore.a</li> |
Reid Spencer | e0f33ae | 2004-12-30 23:12:04 +0000 | [diff] [blame] | 286 | <li>libLLVMSupport.a</li> |
Reid Spencer | e131ec9 | 2006-08-01 07:32:01 +0000 | [diff] [blame] | 287 | <li>libLLVMSystem.a</li> |
Reid Spencer | e0f33ae | 2004-12-30 23:12:04 +0000 | [diff] [blame] | 288 | </ul></dd> |
Dan Gohman | 364a39f | 2008-10-14 17:00:38 +0000 | [diff] [blame] | 289 | <dt><b>libLLVMTransformUtils.a</b></dt><dd><ul> |
Reid Spencer | e0f33ae | 2004-12-30 23:12:04 +0000 | [diff] [blame] | 290 | <li>libLLVMAnalysis.a</li> |
Reid Spencer | e131ec9 | 2006-08-01 07:32:01 +0000 | [diff] [blame] | 291 | <li>libLLVMCore.a</li> |
Reid Spencer | e0f33ae | 2004-12-30 23:12:04 +0000 | [diff] [blame] | 292 | <li>libLLVMSupport.a</li> |
Reid Spencer | e131ec9 | 2006-08-01 07:32:01 +0000 | [diff] [blame] | 293 | <li>libLLVMSystem.a</li> |
Reid Spencer | 006c687 | 2007-02-04 00:17:35 +0000 | [diff] [blame] | 294 | <li>libLLVMTarget.a</li> |
Reid Spencer | e131ec9 | 2006-08-01 07:32:01 +0000 | [diff] [blame] | 295 | <li>libLLVMipa.a</li> |
Reid Spencer | e0f33ae | 2004-12-30 23:12:04 +0000 | [diff] [blame] | 296 | </ul></dd> |
NAKAMURA Takumi | 4d6deb0 | 2011-04-09 09:51:57 +0000 | [diff] [blame] | 297 | <dt><b>libLLVMbzip2.a</b></dt><dd> |
| 298 | </dd> |
Dan Gohman | 364a39f | 2008-10-14 17:00:38 +0000 | [diff] [blame] | 299 | <dt><b>libLLVMipa.a</b></dt><dd><ul> |
Reid Spencer | e0f33ae | 2004-12-30 23:12:04 +0000 | [diff] [blame] | 300 | <li>libLLVMAnalysis.a</li> |
Reid Spencer | e131ec9 | 2006-08-01 07:32:01 +0000 | [diff] [blame] | 301 | <li>libLLVMCore.a</li> |
Reid Spencer | e0f33ae | 2004-12-30 23:12:04 +0000 | [diff] [blame] | 302 | <li>libLLVMSupport.a</li> |
Reid Spencer | e131ec9 | 2006-08-01 07:32:01 +0000 | [diff] [blame] | 303 | <li>libLLVMSystem.a</li> |
Reid Spencer | e0f33ae | 2004-12-30 23:12:04 +0000 | [diff] [blame] | 304 | </ul></dd> |
Dan Gohman | 364a39f | 2008-10-14 17:00:38 +0000 | [diff] [blame] | 305 | <dt><b>libLLVMipo.a</b></dt><dd><ul> |
Reid Spencer | e0f33ae | 2004-12-30 23:12:04 +0000 | [diff] [blame] | 306 | <li>libLLVMAnalysis.a</li> |
Reid Spencer | e131ec9 | 2006-08-01 07:32:01 +0000 | [diff] [blame] | 307 | <li>libLLVMCore.a</li> |
Reid Spencer | e0f33ae | 2004-12-30 23:12:04 +0000 | [diff] [blame] | 308 | <li>libLLVMSupport.a</li> |
| 309 | <li>libLLVMSystem.a</li> |
Reid Spencer | e131ec9 | 2006-08-01 07:32:01 +0000 | [diff] [blame] | 310 | <li>libLLVMTarget.a</li> |
| 311 | <li>libLLVMTransformUtils.a</li> |
| 312 | <li>libLLVMipa.a</li> |
Reid Spencer | e0f33ae | 2004-12-30 23:12:04 +0000 | [diff] [blame] | 313 | </ul></dd> |
Dan Gohman | 364a39f | 2008-10-14 17:00:38 +0000 | [diff] [blame] | 314 | <dt><b>libLLVMlto.a</b></dt><dd><ul> |
Reid Spencer | 006c687 | 2007-02-04 00:17:35 +0000 | [diff] [blame] | 315 | <li>libLLVMAnalysis.a</li> |
| 316 | <li>libLLVMBCReader.a</li> |
| 317 | <li>libLLVMBCWriter.a</li> |
| 318 | <li>libLLVMCore.a</li> |
| 319 | <li>libLLVMLinker.a</li> |
| 320 | <li>libLLVMScalarOpts.a</li> |
| 321 | <li>libLLVMSupport.a</li> |
| 322 | <li>libLLVMSystem.a</li> |
| 323 | <li>libLLVMTarget.a</li> |
| 324 | <li>libLLVMipa.a</li> |
| 325 | <li>libLLVMipo.a</li> |
| 326 | </ul></dd> |
Dan Gohman | 364a39f | 2008-10-14 17:00:38 +0000 | [diff] [blame] | 327 | <dt><b>LLVMARM.o</b></dt><dd><ul> |
Reid Spencer | e131ec9 | 2006-08-01 07:32:01 +0000 | [diff] [blame] | 328 | <li>libLLVMCodeGen.a</li> |
| 329 | <li>libLLVMCore.a</li> |
Reid Spencer | e131ec9 | 2006-08-01 07:32:01 +0000 | [diff] [blame] | 330 | <li>libLLVMSelectionDAG.a</li> |
Reid Spencer | e0f33ae | 2004-12-30 23:12:04 +0000 | [diff] [blame] | 331 | <li>libLLVMSupport.a</li> |
Reid Spencer | e131ec9 | 2006-08-01 07:32:01 +0000 | [diff] [blame] | 332 | <li>libLLVMSystem.a</li> |
| 333 | <li>libLLVMTarget.a</li> |
| 334 | </ul></dd> |
Dan Gohman | 364a39f | 2008-10-14 17:00:38 +0000 | [diff] [blame] | 335 | <dt><b>LLVMCBackend.o</b></dt><dd><ul> |
Reid Spencer | e0f33ae | 2004-12-30 23:12:04 +0000 | [diff] [blame] | 336 | <li>libLLVMAnalysis.a</li> |
Reid Spencer | e131ec9 | 2006-08-01 07:32:01 +0000 | [diff] [blame] | 337 | <li>libLLVMCodeGen.a</li> |
| 338 | <li>libLLVMCore.a</li> |
Reid Spencer | e0f33ae | 2004-12-30 23:12:04 +0000 | [diff] [blame] | 339 | <li>libLLVMScalarOpts.a</li> |
| 340 | <li>libLLVMSupport.a</li> |
Reid Spencer | e131ec9 | 2006-08-01 07:32:01 +0000 | [diff] [blame] | 341 | <li>libLLVMSystem.a</li> |
Reid Spencer | e0f33ae | 2004-12-30 23:12:04 +0000 | [diff] [blame] | 342 | <li>libLLVMTarget.a</li> |
Reid Spencer | 006c687 | 2007-02-04 00:17:35 +0000 | [diff] [blame] | 343 | <li>libLLVMTransformUtils.a</li> |
Reid Spencer | e131ec9 | 2006-08-01 07:32:01 +0000 | [diff] [blame] | 344 | <li>libLLVMipa.a</li> |
Reid Spencer | e0f33ae | 2004-12-30 23:12:04 +0000 | [diff] [blame] | 345 | </ul></dd> |
Dan Gohman | 364a39f | 2008-10-14 17:00:38 +0000 | [diff] [blame] | 346 | <dt><b>LLVMExecutionEngine.o</b></dt><dd><ul> |
Reid Spencer | e131ec9 | 2006-08-01 07:32:01 +0000 | [diff] [blame] | 347 | <li>libLLVMCore.a</li> |
Reid Spencer | e0f33ae | 2004-12-30 23:12:04 +0000 | [diff] [blame] | 348 | <li>libLLVMSupport.a</li> |
| 349 | <li>libLLVMSystem.a</li> |
| 350 | <li>libLLVMTarget.a</li> |
Reid Spencer | e0f33ae | 2004-12-30 23:12:04 +0000 | [diff] [blame] | 351 | </ul></dd> |
Dan Gohman | 364a39f | 2008-10-14 17:00:38 +0000 | [diff] [blame] | 352 | <dt><b>LLVMInterpreter.o</b></dt><dd><ul> |
Reid Spencer | e131ec9 | 2006-08-01 07:32:01 +0000 | [diff] [blame] | 353 | <li>LLVMExecutionEngine.o</li> |
Reid Spencer | 006c687 | 2007-02-04 00:17:35 +0000 | [diff] [blame] | 354 | <li>libLLVMCodeGen.a</li> |
Reid Spencer | e131ec9 | 2006-08-01 07:32:01 +0000 | [diff] [blame] | 355 | <li>libLLVMCore.a</li> |
Reid Spencer | e0f33ae | 2004-12-30 23:12:04 +0000 | [diff] [blame] | 356 | <li>libLLVMSupport.a</li> |
| 357 | <li>libLLVMSystem.a</li> |
| 358 | <li>libLLVMTarget.a</li> |
Reid Spencer | e0f33ae | 2004-12-30 23:12:04 +0000 | [diff] [blame] | 359 | </ul></dd> |
Dan Gohman | 364a39f | 2008-10-14 17:00:38 +0000 | [diff] [blame] | 360 | <dt><b>LLVMJIT.o</b></dt><dd><ul> |
Reid Spencer | e131ec9 | 2006-08-01 07:32:01 +0000 | [diff] [blame] | 361 | <li>LLVMExecutionEngine.o</li> |
Reid Spencer | e131ec9 | 2006-08-01 07:32:01 +0000 | [diff] [blame] | 362 | <li>libLLVMCore.a</li> |
Reid Spencer | e0f33ae | 2004-12-30 23:12:04 +0000 | [diff] [blame] | 363 | <li>libLLVMSupport.a</li> |
| 364 | <li>libLLVMSystem.a</li> |
| 365 | <li>libLLVMTarget.a</li> |
Reid Spencer | e0f33ae | 2004-12-30 23:12:04 +0000 | [diff] [blame] | 366 | </ul></dd> |
Dan Gohman | 364a39f | 2008-10-14 17:00:38 +0000 | [diff] [blame] | 367 | <dt><b>LLVMPowerPC.o</b></dt><dd><ul> |
Reid Spencer | e131ec9 | 2006-08-01 07:32:01 +0000 | [diff] [blame] | 368 | <li>libLLVMCodeGen.a</li> |
| 369 | <li>libLLVMCore.a</li> |
Reid Spencer | e131ec9 | 2006-08-01 07:32:01 +0000 | [diff] [blame] | 370 | <li>libLLVMSelectionDAG.a</li> |
Reid Spencer | d42037a | 2006-05-13 02:22:01 +0000 | [diff] [blame] | 371 | <li>libLLVMSupport.a</li> |
| 372 | <li>libLLVMSystem.a</li> |
Reid Spencer | e0f33ae | 2004-12-30 23:12:04 +0000 | [diff] [blame] | 373 | <li>libLLVMTarget.a</li> |
Reid Spencer | e0f33ae | 2004-12-30 23:12:04 +0000 | [diff] [blame] | 374 | </ul></dd> |
Dan Gohman | 364a39f | 2008-10-14 17:00:38 +0000 | [diff] [blame] | 375 | <dt><b>LLVMSparc.o</b></dt><dd><ul> |
Reid Spencer | e131ec9 | 2006-08-01 07:32:01 +0000 | [diff] [blame] | 376 | <li>libLLVMCodeGen.a</li> |
| 377 | <li>libLLVMCore.a</li> |
Reid Spencer | e131ec9 | 2006-08-01 07:32:01 +0000 | [diff] [blame] | 378 | <li>libLLVMSelectionDAG.a</li> |
Reid Spencer | e0f33ae | 2004-12-30 23:12:04 +0000 | [diff] [blame] | 379 | <li>libLLVMSupport.a</li> |
Reid Spencer | e131ec9 | 2006-08-01 07:32:01 +0000 | [diff] [blame] | 380 | <li>libLLVMSystem.a</li> |
Reid Spencer | e0f33ae | 2004-12-30 23:12:04 +0000 | [diff] [blame] | 381 | <li>libLLVMTarget.a</li> |
Reid Spencer | e0f33ae | 2004-12-30 23:12:04 +0000 | [diff] [blame] | 382 | </ul></dd> |
Dan Gohman | 364a39f | 2008-10-14 17:00:38 +0000 | [diff] [blame] | 383 | <dt><b>LLVMX86.o</b></dt><dd><ul> |
Reid Spencer | e131ec9 | 2006-08-01 07:32:01 +0000 | [diff] [blame] | 384 | <li>libLLVMCodeGen.a</li> |
| 385 | <li>libLLVMCore.a</li> |
Reid Spencer | e131ec9 | 2006-08-01 07:32:01 +0000 | [diff] [blame] | 386 | <li>libLLVMSelectionDAG.a</li> |
Reid Spencer | e0f33ae | 2004-12-30 23:12:04 +0000 | [diff] [blame] | 387 | <li>libLLVMSupport.a</li> |
Reid Spencer | e131ec9 | 2006-08-01 07:32:01 +0000 | [diff] [blame] | 388 | <li>libLLVMSystem.a</li> |
Reid Spencer | e0f33ae | 2004-12-30 23:12:04 +0000 | [diff] [blame] | 389 | <li>libLLVMTarget.a</li> |
Reid Spencer | e0f33ae | 2004-12-30 23:12:04 +0000 | [diff] [blame] | 390 | </ul></dd> |
| 391 | </dl> |
| 392 | </div> |
| 393 | |
| 394 | <!-- ======================================================================= --> |
NAKAMURA Takumi | 05d0265 | 2011-04-18 23:59:50 +0000 | [diff] [blame] | 395 | <h2><a name="rot">Linkage Rules Of Thumb</a></h2> |
NAKAMURA Takumi | f5af6ad | 2011-04-23 00:30:22 +0000 | [diff] [blame] | 396 | <div> |
Chris Lattner | 6175735 | 2004-02-27 06:28:34 +0000 | [diff] [blame] | 397 | <p>This section contains various "rules of thumb" about what files you |
| 398 | should link into your programs.</p> |
Chris Lattner | 6175735 | 2004-02-27 06:28:34 +0000 | [diff] [blame] | 399 | <!-- ======================================================================= --> |
NAKAMURA Takumi | 05d0265 | 2011-04-18 23:59:50 +0000 | [diff] [blame] | 400 | <h3> |
| 401 | <a name="always">Always Link LLVMCore, LLVMSupport, and LLVMSystem</a> |
| 402 | </h3> |
NAKAMURA Takumi | f5af6ad | 2011-04-23 00:30:22 +0000 | [diff] [blame] | 403 | <div> |
Reid Spencer | 52afa7e | 2004-11-08 00:26:32 +0000 | [diff] [blame] | 404 | <p>No matter what you do with LLVM, the last three entries in the value of |
| 405 | your LLVMLIBS make variable should always be: |
| 406 | <tt>LLVMCore LLVMSupport.a LLVMSystem.a</tt>. There are no <tt>LLVM</tt> |
| 407 | programs that don't depend on these three.</p> |
Chris Lattner | 6175735 | 2004-02-27 06:28:34 +0000 | [diff] [blame] | 408 | </div> |
| 409 | <!-- ======================================================================= --> |
NAKAMURA Takumi | 05d0265 | 2011-04-18 23:59:50 +0000 | [diff] [blame] | 410 | <h3> |
| 411 | <a name="onlyone">Never link both archive and re-linked library</a> |
| 412 | </h3> |
NAKAMURA Takumi | f5af6ad | 2011-04-23 00:30:22 +0000 | [diff] [blame] | 413 | <div> |
Reid Spencer | 341d714 | 2004-10-31 23:00:25 +0000 | [diff] [blame] | 414 | <p>There is never any point to linking both the re-linked (<tt>.o</tt>) and |
| 415 | the archive (<tt>.a</tt>) versions of a library. Since the re-linked version |
| 416 | includes the entire library, the archive version will not resolve any symbols. |
Reid Spencer | 347e288 | 2004-11-08 00:24:43 +0000 | [diff] [blame] | 417 | You could even end up with link error if you place the archive version before |
Reid Spencer | 341d714 | 2004-10-31 23:00:25 +0000 | [diff] [blame] | 418 | the re-linked version on the linker's command line.</p> |
Chris Lattner | 6175735 | 2004-02-27 06:28:34 +0000 | [diff] [blame] | 419 | </div> |
NAKAMURA Takumi | f5af6ad | 2011-04-23 00:30:22 +0000 | [diff] [blame] | 420 | |
| 421 | </div> |
| 422 | |
Chris Lattner | 6175735 | 2004-02-27 06:28:34 +0000 | [diff] [blame] | 423 | <!-- ======================================================================= --> |
| 424 | <hr> |
| 425 | <div class="doc_footer"> |
Reid Spencer | bd72241 | 2004-11-01 09:19:53 +0000 | [diff] [blame] | 426 | <address> |
| 427 | <a href="http://jigsaw.w3.org/css-validator/check/referer"><img |
NAKAMURA Takumi | 4d6deb0 | 2011-04-09 09:51:57 +0000 | [diff] [blame] | 428 | src="http://jigsaw.w3.org/css-validator/images/vcss-blue" alt="Valid CSS"></a> |
Reid Spencer | bd72241 | 2004-11-01 09:19:53 +0000 | [diff] [blame] | 429 | <a href="http://validator.w3.org/check/referer"><img |
Misha Brukman | f00ddb0 | 2008-12-11 18:23:24 +0000 | [diff] [blame] | 430 | src="http://www.w3.org/Icons/valid-html401-blue" alt="Valid HTML 4.01"></a> |
Reid Spencer | bd72241 | 2004-11-01 09:19:53 +0000 | [diff] [blame] | 431 | <a href="mailto:rspencer@x10sys.com">Reid Spencer</a> |
| 432 | </address> |
NAKAMURA Takumi | b9a3363 | 2011-04-09 02:13:37 +0000 | [diff] [blame] | 433 | <a href="http://llvm.org/">The LLVM Compiler Infrastructure</a> |
Chris Lattner | 6175735 | 2004-02-27 06:28:34 +0000 | [diff] [blame] | 434 | <br>Last modified: $Date$ </div> |
| 435 | </body> |
| 436 | </html> |
| 437 | <!-- vim: sw=2 ts=2 ai |
| 438 | --> |