From 2b066988909948dc3d53d01760bc2d71d32f3feb Mon Sep 17 00:00:00 2001 From: dim Date: Mon, 2 May 2011 19:34:44 +0000 Subject: Vendor import of llvm trunk r130700: http://llvm.org/svn/llvm-project/llvm/trunk@130700 --- docs/UsingLibraries.html | 64 +++++++++++++++++++++++++----------------------- 1 file changed, 34 insertions(+), 30 deletions(-) (limited to 'docs/UsingLibraries.html') diff --git a/docs/UsingLibraries.html b/docs/UsingLibraries.html index ea28dbe..2c1c69a 100644 --- a/docs/UsingLibraries.html +++ b/docs/UsingLibraries.html @@ -5,7 +5,7 @@ -
Using The LLVM Libraries
+

Using The LLVM Libraries

  1. Abstract
  2. Introduction
  3. @@ -26,12 +26,12 @@

    Warning: This document is out of date, for more information please see llvm-config or, - if you use CMake, the CMake LLVM + if you use CMake, the CMake LLVM guide.

    - -
    +

    Abstract

    +

    Amongst other things, LLVM is a toolkit for building compilers, linkers, runtime executives, virtual machines, and other program execution related tools. In addition to the LLVM tool set, the functionality of LLVM is @@ -45,8 +45,8 @@

    - -
    +

    Introduction

    +

    If you're writing a compiler, virtual machine, or any other utility based on LLVM, you'll need to figure out which of the many libraries files you will need to link with to be successful. An understanding of the contents of these @@ -74,8 +74,8 @@ correct for your tool can sometimes be challenging.

    -
    Library Descriptions
    -
    +

    Library Descriptions

    +

    The table below categorizes each library @@ -152,8 +152,8 @@ -
    Using llvm-config
    -
    +

    Using llvm-config

    +

    The llvm-config tool is a perl script that produces on its output various kinds of information. For example, the source or object directories used to build LLVM can be accessed by passing options to llvm-config. @@ -187,16 +187,16 @@ -

    Dependency Relationships Of Libraries

    +

    Dependency Relationships Of Libraries

    This graph shows the dependency of archive libraries on other archive libraries or objects. Where a library has both archive and object forms, only the archive form is shown.

    - Library Dependencies -

    Dependency Relationships Of Object Files

    + Library Dependencies +

    Dependency Relationships Of Object Files

    This graph shows the dependency of object files on archive libraries or other objects. Where a library has both object and archive forms, only the dependency to the archive form is shown.

    - Object File Dependencies + Object File Dependencies

    The following list shows the dependency relationships between libraries in textual form. The information is the same as shown on the graphs but arranged alphabetically.

    @@ -280,8 +280,8 @@
  4. libLLVMSystem.a
  5. libLLVMbzip2.a
  6. -
    libLLVMSystem.a
      -
    +
    libLLVMSystem.a
    +
    libLLVMTarget.a
    • libLLVMCore.a
    • libLLVMSupport.a
    • @@ -295,8 +295,8 @@
    • libLLVMTarget.a
    • libLLVMipa.a
    -
    libLLVMbzip2.a
      -
    +
    libLLVMbzip2.a
    +
    libLLVMipa.a
    • libLLVMAnalysis.a
    • libLLVMCore.a
    • @@ -401,42 +401,46 @@
    - -
    +

    Linkage Rules Of Thumb

    +

    This section contains various "rules of thumb" about what files you should link into your programs.

    -
    - -
    +

    + Always Link LLVMCore, LLVMSupport, and LLVMSystem +

    +

    No matter what you do with LLVM, the last three entries in the value of your LLVMLIBS make variable should always be: LLVMCore LLVMSupport.a LLVMSystem.a. There are no LLVM programs that don't depend on these three.

    - -
    +

    + Never link both archive and re-linked library +

    +

    There is never any point to linking both the re-linked (.o) and the archive (.a) versions of a library. Since the re-linked version includes the entire library, the archive version will not resolve any symbols. You could even end up with link error if you place the archive version before the re-linked version on the linker's command line.

    + +
    +
    +The LLVM Compiler Infrastructure +
    Last modified: $Date: 2011-04-23 02:30:22 +0200 (Sat, 23 Apr 2011) $
    LibraryFormsDescription