mirror of
https://github.com/RPCSX/llvm.git
synced 2024-11-26 05:00:26 +00:00
add new FAQ entry
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10078 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
6ff1a9272d
commit
cc33d70a92
@ -50,7 +50,7 @@
|
||||
<li>Why do test results differ when I perform different types of builds?</li>
|
||||
</ol></li>
|
||||
|
||||
<li><a href="#cfe">GCC Front End</a>
|
||||
<li><a href="#cfe">Using the GCC Front End</a>
|
||||
<ol>
|
||||
<li>
|
||||
When I compile software that uses a configure script, the configure script
|
||||
@ -64,6 +64,13 @@
|
||||
</li>
|
||||
</ol>
|
||||
</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>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
@ -322,7 +329,7 @@ build.</p>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<div class="doc_section">
|
||||
<a name="cfe">GCC Front End</a>
|
||||
<a name="cfe">Using the GCC Front End</a>
|
||||
</div>
|
||||
|
||||
<div class="question">
|
||||
@ -367,14 +374,14 @@ not linking on your system because the feature isn't available on your system.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="question"
|
||||
<div class="question">
|
||||
<p>
|
||||
When I compile code using the LLVM GCC front end, it complains that it cannot
|
||||
find crtend.o.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="answer"
|
||||
<div class="answer">
|
||||
<p>
|
||||
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
|
||||
@ -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.
|
||||
</p>
|
||||
</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>
|
||||
|
||||
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user