[llvm-commits] CVS: llvm/docs/FAQ.html

Chris Lattner lattner at cs.uiuc.edu
Tue Nov 18 23:54:01 PST 2003


Changes in directory llvm/docs:

FAQ.html updated: 1.12 -> 1.13

---
Log message:

add new FAQ entry


---
Diffs of the changes:  (+44 -5)

Index: llvm/docs/FAQ.html
diff -u llvm/docs/FAQ.html:1.12 llvm/docs/FAQ.html:1.13
--- llvm/docs/FAQ.html:1.12	Tue Nov 18 10:08:49 2003
+++ llvm/docs/FAQ.html	Tue Nov 18 23:53:12 2003
@@ -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 @@
 
 <!-- *********************************************************************** -->
 <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 @@
 </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 @@
 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>
+
+
+
 <!-- *********************************************************************** -->
 <!-- *********************************************************************** -->
 
@@ -389,7 +428,7 @@
 <div class="doc_footer">
   <a href="http://llvm.cs.uiuc.edu">The LLVM Compiler Infrastructure</a>
   <br>
-  Last modified: $Date: 2003/11/18 16:08:49 $
+  Last modified: $Date: 2003/11/19 05:53:12 $
 </div>
 
 </body>





More information about the llvm-commits mailing list