Added information on the GCC front end.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10067 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
John Criswell 2003-11-18 16:05:23 +00:00
parent c8db76c647
commit 6ea30b0af2

View File

@ -305,6 +305,69 @@ build.</p>
</div>
<!-- *********************************************************************** -->
<div class="doc_section">
<a name="cfe">GCC Front End</a>
</div>
<div class="question">
<p>
When I compile software that uses a configure script, the configure script
thinks my system has all of the header files and libraries it is testing for.
How do I get configure to work correctly?
</p>
</div>
<div class="answer">
<p>
The configure script is getting things wrong because the LLVM linker allows
symbols to be undefined at link time (so that they can be resolved during JIT
or translation to the C back end). That is why configure thinks your system
"has everything."
</p>
<p>
To work around this, perform the following steps:
</p>
<ol>
<li>
Make sure the CC and CXX environment variables contains the full path to the
LLVM GCC front end.
</li>
<li>
Make sure that the regular C compiler is first in your PATH.
</li>
<li>
Add the string "-Wl,-native" to your CFLAGS environment variable.
</li>
</ol>
<p>
This will allow the gccld linker to create a native code executable instead of
a shell script that runs the JIT. Creating native code requires standard
linkage, which in turn will allow the configure script to find out if code is
not linking on your system because the feature isn't available on your system.
</p>
</div>
<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"
<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
the LLVM GCC front end, this will be the full path of the bytecode-libs
directory inside of the LLVM GCC distribution.
</p>
</div>
<!-- *********************************************************************** -->
<!-- *********************************************************************** -->
<hr>