Changes in directory llvm/docs:
MakefileGuide.html updated: 1.35 -> 1.36 --- Log message: For PR780: http://llvm.org/PR780 : 1. Change the usage of LOADABLE_MODULE so that it implies all the things necessary to make a loadable module. This reduces the user's burdern to get a loadable module correctly built. 2. Document the usage of LOADABLE_MODULE in the MakefileGuide 3. Adjust the makefile for lib/Transforms/Hello to use the new specification for building loadable modules 4. Adjust the sample project to not attempt to build a shared library for its little library. This was just wasteful and not instructive at all. --- Diffs of the changes: (+38 -3) MakefileGuide.html | 41 ++++++++++++++++++++++++++++++++++++++--- 1 files changed, 38 insertions(+), 3 deletions(-) Index: llvm/docs/MakefileGuide.html diff -u llvm/docs/MakefileGuide.html:1.35 llvm/docs/MakefileGuide.html:1.36 --- llvm/docs/MakefileGuide.html:1.35 Tue Jul 11 13:25:57 2006 +++ llvm/docs/MakefileGuide.html Mon Aug 7 18:12:15 2006 @@ -30,7 +30,8 @@ <ol> <li><a href="#libraries">Libraries</a> <ol> - <li><a href="#Modules">Bytecode Modules</a></li> + <li><a href="#BCModules">Bytecode Modules</a></li> + <li><a href="#LoadableModules">Loadable Modules</a></li> </ol> </li> <li><a href="#tools">Tools</a> @@ -259,7 +260,7 @@ </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"><a name="Modules">Bytecode Modules</a></div> +<div class="doc_subsubsection"><a name="BCModules">Bytecode Modules</a></div> <div class="doc_text"> <p>In some situations, it is desireable to build a single bytecode module from a variety of sources, instead of an archive, shared library, or bytecode @@ -280,6 +281,40 @@ </div> <!-- ======================================================================= --> +<div class="doc_subsubsection"> + <a name="LodableModules">Loadable Modules</a> +</div> +<div class="doc_text"> + <p>In some situations, you need to create a loadable module. Loadable modules + can be loaded into programs like <tt>opt</tt> or <tt>llc</tt> to specify + additional passes to run or targets to support. Loadable modules are also + useful for debugging a pass or providing a pass with another package if that + pass can't be included in LLVM.</p> + <p>LLVM provides complete support for building such a module. All you need to + do is use the LOADABLE_MODULE variable in your Makefile. For example, to + build a loadable module named <tt>MyMod</tt> that uses the LLVM libraries + <tt>LLVMSupport.a</tt> and <tt>LLVMSystem.a</tt>, you would specify:</p> + <pre><tt> + LIBRARYNAME := MyMod + LOADABLE_MODULE := 1 + USEDLIBS := LLVMSupport.a LLVMSystem.a + </tt></pre> + <p>Use of the <tt>LOADABLE_MODULE</tt> facility implies several things:</p> + <ol> + <li>There will be no "lib" prefix on the module. This differentiates it from + a standard shared library of the same name.</li> + <li>The <a href="#SHARED_LIBRARY">SHARED_LIBRARY</a> variable is turned + on.</li> + <li>The <a href="#LINK_LIBS_IN_SHARED">LINK_LIBS_IN_SHARED</a> variable + is turned on.</li> + <li>The <a href="#DONT_BUILD_RELINKED">DONT_BUILD_RELINKED</a> variable + is turned on.</li> + </ol> + <p>A loadable module is loaded by LLVM via the facilities of libtool's libltdl + library which is part of <tt>lib/System</tt> implementation.</p> +</div> + +<!-- ======================================================================= --> <div class="doc_subsection"><a name="tools">Tools</a></div> <div class="doc_text"> <p>For building executable programs (tools), you must provide the name of the @@ -1004,7 +1039,7 @@ <a href="mailto:[EMAIL PROTECTED]">Reid Spencer</a><br> <a href="http://llvm.org">The LLVM Compiler Infrastructure</a><br> - Last modified: $Date: 2006/07/11 18:25:57 $ + Last modified: $Date: 2006/08/07 23:12:15 $ </address> </body> </html> _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits