add new FAQ entry

llvm-svn: 10078
This commit is contained in:
Chris Lattner 2003-11-19 05:53:12 +00:00
parent 983c667a41
commit 2335331635
1 changed files with 43 additions and 4 deletions

View File

@ -50,7 +50,7 @@
<li>Why do test results differ when I perform different types of builds?</li> <li>Why do test results differ when I perform different types of builds?</li>
</ol></li> </ol></li>
<li><a href="#cfe">GCC Front End</a> <li><a href="#cfe">Using the GCC Front End</a>
<ol> <ol>
<li> <li>
When I compile software that uses a configure script, the configure script When I compile software that uses a configure script, the configure script
@ -64,6 +64,13 @@
</li> </li>
</ol> </ol>
</li> </li>
<li><a href="#cfe_code">Questions about code generated by the GCC front-end</a>
<ol>
<li>What is this <tt>__main()</tt> call that gets inserted into
<tt>main()</tt>?</li>
</ol>
</li>
</ol> </ol>
<!-- *********************************************************************** --> <!-- *********************************************************************** -->
@ -322,7 +329,7 @@ build.</p>
<!-- *********************************************************************** --> <!-- *********************************************************************** -->
<div class="doc_section"> <div class="doc_section">
<a name="cfe">GCC Front End</a> <a name="cfe">Using the GCC Front End</a>
</div> </div>
<div class="question"> <div class="question">
@ -367,14 +374,14 @@ not linking on your system because the feature isn't available on your system.
</p> </p>
</div> </div>
<div class="question" <div class="question">
<p> <p>
When I compile code using the LLVM GCC front end, it complains that it cannot When I compile code using the LLVM GCC front end, it complains that it cannot
find crtend.o. find crtend.o.
</p> </p>
</div> </div>
<div class="answer" <div class="answer">
<p> <p>
In order to find crtend.o, you must have the directory in which it lives in In order to find crtend.o, you must have the directory in which it lives in
your LLVM_LIB_SEARCH_PATH environment variable. For the binary distribution of your LLVM_LIB_SEARCH_PATH environment variable. For the binary distribution of
@ -382,6 +389,38 @@ the LLVM GCC front end, this will be the full path of the bytecode-libs
directory inside of the LLVM GCC distribution. directory inside of the LLVM GCC distribution.
</p> </p>
</div> </div>
<!-- *********************************************************************** -->
<div class="doc_section">
<a name="cfe_code">Questions about code generated by the GCC front-end</a>
</div>
<div class="question">
<p>
What is this <tt>__main()</tt> call that gets inserted into <tt>main()</tt>?
</p>
</div>
<div class="answer">
<p>
The <tt>__main</tt> call is inserted by the C/C++ compiler in order to guarantee
that static constructors and destructors are called when the program starts up
and shuts down. In C, you can create static constructors and destructors by
using GCC extensions, and in C++ you can do so by creating a global variable
whose class has a ctor or dtor.
</p>
<p>
The actual implementation of <tt>__main</tt> lives in the
<tt>llvm/runtime/GCCLibraries/crtend/</tt> directory in the source-base, and is
linked in automatically when you link the program.
</p>
</div>
<!-- *********************************************************************** --> <!-- *********************************************************************** -->
<!-- *********************************************************************** --> <!-- *********************************************************************** -->