110 lines
4.0 KiB
HTML
110 lines
4.0 KiB
HTML
<html>
|
|
<head>
|
|
<title>Installing GCC: Building</title>
|
|
</head>
|
|
|
|
<body>
|
|
<h1 align="center">Installing GCC: Building</h1>
|
|
|
|
<p>Now that GCC is configured, you are ready to build the compiler and
|
|
runtime libraries.
|
|
|
|
<p>We <strong>highly</strong> recommend that GCC be built using GNU make;
|
|
other versions may work, then again they might not.</p>
|
|
|
|
<p>(For example, many broken versions of make will fail if you use the
|
|
recommended setup where <i>objdir</i> is different from <i>srcdir</i>.)
|
|
|
|
|
|
<h2>Building a native compiler</h2>
|
|
|
|
<p>For a native build issue the command `<code>make bootstrap</code>'. This
|
|
will build the entire GCC system, which includes the following steps:
|
|
|
|
<ul>
|
|
<li>Build host tools necessary to build the compiler such as texinfo, bison,
|
|
gperf.</li>
|
|
|
|
<li> Build target tools for use by the compiler such as binutils (bfd,
|
|
binutils, gas, gprof, ld, and opcodes)<br>
|
|
if they have been individually linked or moved into the top level GCC source
|
|
tree before configuring.</li>
|
|
|
|
<li>Perform a 3-stage bootstrap of the compiler.</li>
|
|
|
|
<li>Perform a comparison test of the stage2 and stage3 compilers.</li>
|
|
|
|
<li>Build runtime libraries using the stage3 compiler from the previous
|
|
step.</li>
|
|
</ul>
|
|
|
|
<p>If you are short on disk space you might consider `<code>make
|
|
bootstrap-lean</code>' instead. This is identical to `<code>make
|
|
bootstrap</code>' except that object files from the stage1 and
|
|
stage2 of the 3-stage bootstrap of the compiler are deleted as
|
|
soon as they are no longer needed.
|
|
|
|
<p>If you want to save additional space during the bootstrap and in
|
|
the final installation as well, you can build the compiler binaries
|
|
without debugging information with "make CFLAGS='-O' LIBCFLAGS='-g
|
|
-O2' LIBCXXFLAGS='-g -O2 -fno-implicit-templates' bootstrap". This will save
|
|
roughly 40% of disk space both for the bootstrap and the final installation.
|
|
(Libraries will still contain debugging information.)
|
|
|
|
<p>If you used the flag <code>--enable-languages=...</code> to restrict
|
|
the compilers to be built, only those you've actually enabled will be
|
|
built. This will of course only build those runtime libraries, for
|
|
which the particular compiler has been built. Please note,
|
|
that re-defining LANGUAGES when calling `<code>make bootstrap</code>'
|
|
<b>*does not*</b> work anymore!
|
|
|
|
|
|
<h2>Building a cross compiler</h2>
|
|
|
|
<p> We recommend reading the
|
|
<a href="http://www.objsw.com/CrossGCC/">
|
|
crossgcc FAQ</a> for information about building cross compilers.
|
|
|
|
<p>When building a cross compiler, it is not generally possible to do a
|
|
3-stage bootstrap of the compiler. This makes for an interesting problem
|
|
as parts of GCC can only be built with GCC.
|
|
|
|
<p>To build a cross compiler, we first recommend building and installing a
|
|
native compiler. You can then use the native GCC compiler to build the
|
|
cross compiler.
|
|
|
|
<p>Assuming you have already installed a native copy of GCC and configured
|
|
your cross compiler, issue the command "make", which performs the
|
|
following steps:
|
|
<ul>
|
|
<li>Build host tools necessary to build the compiler such as texinfo, bison,
|
|
gperf.</li>
|
|
|
|
<li>Build target tools for use by the compiler such as binutils (bfd,
|
|
binutils, gas, gprof, ld, and opcodes)<br>
|
|
if they have been individually linked or moved into the top level GCC source
|
|
tree before configuring.</li>
|
|
|
|
<li>Build the compiler (single stage only).</li>
|
|
|
|
<li>Build runtime libraries using the compiler from the previous
|
|
step.</li>
|
|
</ul>
|
|
|
|
<p>Note that if an error occurs in any step the make process will exit.
|
|
|
|
<h2>Building in parallel</h2>
|
|
|
|
<p> If you have a multiprocessor system you can use `<code>make bootstrap
|
|
MAKE="make -j 2" -j 2</code>' or just `<code>make -j 2 bootstrap</code>'
|
|
for GNU Make 3.79 and above instead of just `<code>make bootstrap</code>'
|
|
when building GCC. You can use a bigger number instead of two if
|
|
you like. In most cases, it won't help to use a number bigger than
|
|
the number of processors in your machine.
|
|
|
|
<hr>
|
|
<p><a href="./index.html">Return to the GCC Installation page</a></p>
|
|
|
|
</body>
|
|
</html>
|