Clarified the extension to shared library objects.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10978 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
John Criswell 2004-01-26 21:26:54 +00:00
parent 6b15340ba5
commit f9c78655be
5 changed files with 36 additions and 20 deletions

View File

@ -51,16 +51,16 @@ language.
Quiet mode. With this option, analysis pass names are not printed.
<p>
<li> -load &lt;plugin.so&gt;
<li> -load &lt;plugin&gt;
<br>
Load the specified dynamic object with name plugin.so. This file
Load the specified dynamic object with name <tt>plugin</tt>. This file
should contain additional analysis passes that register themselves with
the <tt>analyze</tt> program after being loaded.
<p>
After being loaded, additional command line options are made available
for running the passes made available by plugin.so. Use
'<tt><tt>analyze</tt> -load &lt;plugin.so&gt; -help</tt>' to see the new
for running the passes made available by <tt>plugin</tt>. Use
'<tt><tt>analyze</tt> -load &lt;plugin&gt; -help</tt>' to see the new
list of available analysis passes.
<p>
</ul>

View File

@ -158,8 +158,8 @@ non-obvious ways. Here are some hints and tips:<p>
<h3>OPTIONS</h3>
<ul>
<li><tt>-additional-so &lt;library.so&gt;</tt><br>
Load <tt>&lt;library.so&gt;</tt> into the test program whenever it is run.
<li><tt>-additional-so &lt;library&gt;</tt><br>
Load <tt>&lt;library&gt;</tt> into the test program whenever it is run.
This is useful if you are debugging programs which depend on non-LLVM
libraries (such as the X or curses libraries) to run.<p>
@ -189,14 +189,14 @@ non-obvious ways. Here are some hints and tips:<p>
test program, whenever it runs, to come from that file.
<p>
<a name="opt_load"><li> <tt>-load &lt;plugin.so&gt;</tt><br>
Load the dynamic object <tt>&lt;plugin.so&gt;</tt> into <tt>bugpoint</tt>
<a name="opt_load"><li> <tt>-load &lt;plugin&gt;</tt><br>
Load the dynamic object <tt>&lt;plugin&gt;</tt> into <tt>bugpoint</tt>
itself. This object should register new
optimization passes. Once loaded, the object will add new command line
options to enable various optimizations. To see the new complete list
of optimizations, use the -help and -load options together:
<p>
<tt>bugpoint -load &lt;plugin.so&gt; -help</tt>
<tt>bugpoint -load &lt;plugin&gt; -help</tt>
<p>
<a name="opt_output"><li><tt>-output &lt;filename&gt;</tt><br>

View File

@ -32,24 +32,35 @@ optimizations on the program.
<h4>Search Order</h4>
<p>
When looking for objects specified on the command line, <tt>gccld</tt> will
search for the object first in the current directory and then in the directory
specified by the <tt>LLVM_LIB_SEARCH_PATH</tt> environment variable. If it
cannot find the object, it fails.
<p>
</p>
<p>
When looking for a library specified with the -l option, <tt>gccld</tt> first
attempts to load a file with that name from the current directory. If that
fails, it looks for lib&lt;library&gt;.bc, lib&lt;library&gt;.a, or
lib&lt;library&gt;.so, in that order, in each directory added to the library
search path with the -L option. These directories are searched in order they
lib&lt;library&gt;.&lt;shared library extension&gt;, in that order, in each
directory added to the library search path with the -L option. These
directories are searched in the order they
were specified. If the library cannot be located, then <tt>gccld</tt> looks in
the directory specified by the <tt>LLVM_LIB_SEARCH_PATH</tt> environment
variable. If it does not find lib&lt;library&gt;.[bc | a | so] there, it fails.
variable. If it does not find a library there, it fails.
</p>
<p>
The shared library extension is usually <tt>.so</tt>, but it may differ
depending upon the system.
</p>
<p>
The -L option is global. It does not matter where it is specified in the list
of command line arguments; the directory is simply added to the search path and
is applied to all libraries, preceding or succeeding, in the command line.
</p>
<h4>Link order</h4>
@ -131,9 +142,9 @@ using the -native option.
<br>
Specify libraries to include when linking the output file. When
linking, <tt>gccld</tt> will first attempt to load a file with the
pathname library. If that fails, it will then attempt to load
lib&lt;library&gt;.bc, lib&lt;library&gt;.a, and lib&lt;library&gt;.so,
in that order.
pathname <tt>library</tt>. If that fails, it will then attempt to load
lib&lt;library&gt;.bc, lib&lt;library&gt;.a, and
lib&lt;library&gt;.&lt;shared library extension&gt;, in that order.
<p>
<li> -link-as-library

View File

@ -88,14 +88,14 @@ writes its output to the standard output.
Quiet mode. Do not print messages on whether the program was modified.
<p>
<li> -load &lt;plugin.so&gt;
<li> -load &lt;plugin&gt;
<br>
Load the dynamic object &lt;plugin.so&gt;. This object should register new
Load the dynamic object &lt;plugin&gt;. This object should register new
optimization passes. Once loaded, the object will add new command line
options to enable various optimizations. To see the new complete list
of optimizations, use the -help and -load options together:
<p>
<tt>opt -load &lt;plugin.so&gt; -help</tt>
<tt>opt -load &lt;plugin&gt; -help</tt>
<p>
<li> -p

View File

@ -173,6 +173,11 @@ directory are to be compiled and linked together into a
<tt>lib/Debug/libhello.so</tt> shared object that can be dynamically loaded by
the <tt>opt</tt> or <tt>analyze</tt> tools.</p>
<p>
Note that the suffix of the shared library may differ from the example above if
your system uses a different suffix by default.
</p>
<p>Now that we have the build scripts set up, we just need to write the code for
the pass itself.</p>
@ -282,7 +287,7 @@ them) to be useful.</p>
<div class="doc_text">
<p>Now that you have a brand new shiny <tt>.so</tt> file, we can use the
<p>Now that you have a brand new shiny shared object file, we can use the
<tt>opt</tt> command to run an LLVM program through your pass. Because you
registered your pass with the <tt>RegisterOpt</tt> template, you will be able to
use the <tt>opt</tt> tool to access it, once loaded.</p>