mirror of
https://github.com/rtlduino/RTL8710AF_GCC.git
synced 2026-07-15 07:45:41 +00:00
motify compile link error
motify compile link error
This commit is contained in:
parent
923914edae
commit
03e74a8e50
5418 changed files with 1367914 additions and 206149 deletions
|
|
@ -0,0 +1,115 @@
|
|||
<html lang="en">
|
||||
<head>
|
||||
<title>Installing GCC: Binaries</title>
|
||||
<meta http-equiv="Content-Type" content="text/html">
|
||||
<meta name="description" content="Installing GCC: Binaries">
|
||||
<meta name="generator" content="makeinfo 4.11">
|
||||
<link title="Top" rel="top" href="#Top">
|
||||
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
|
||||
<!--
|
||||
Copyright (C) 1988-2013 Free Software Foundation, Inc.
|
||||
|
||||
Permission is granted to copy, distribute and/or modify this document
|
||||
under the terms of the GNU Free Documentation License, Version 1.3 or
|
||||
any later version published by the Free Software Foundation; with no
|
||||
Invariant Sections, the Front-Cover texts being (a) (see below), and
|
||||
with the Back-Cover Texts being (b) (see below). A copy of the
|
||||
license is included in the section entitled "GNU Free Documentation License".
|
||||
|
||||
(a) The FSF's Front-Cover Text is:
|
||||
|
||||
A GNU Manual
|
||||
|
||||
(b) The FSF's Back-Cover Text is:
|
||||
|
||||
You have freedom to copy and modify this GNU Manual, like GNU
|
||||
software. Copies published by the Free Software Foundation raise
|
||||
funds for GNU development.-->
|
||||
<meta http-equiv="Content-Style-Type" content="text/css">
|
||||
<style type="text/css"><!--
|
||||
pre.display { font-family:inherit }
|
||||
pre.format { font-family:inherit }
|
||||
pre.smalldisplay { font-family:inherit; font-size:smaller }
|
||||
pre.smallformat { font-family:inherit; font-size:smaller }
|
||||
pre.smallexample { font-size:smaller }
|
||||
pre.smalllisp { font-size:smaller }
|
||||
span.sc { font-variant:small-caps }
|
||||
span.roman { font-family:serif; font-weight:normal; }
|
||||
span.sansserif { font-family:sans-serif; font-weight:normal; }
|
||||
--></style>
|
||||
</head>
|
||||
<body>
|
||||
<h1 class="settitle">Installing GCC: Binaries</h1>
|
||||
<a name="index-Binaries-1"></a><a name="index-Installing-GCC_003a-Binaries-2"></a>
|
||||
We are often asked about pre-compiled versions of GCC. While we cannot
|
||||
provide these for all platforms, below you'll find links to binaries for
|
||||
various platforms where creating them by yourself is not easy due to various
|
||||
reasons.
|
||||
|
||||
<p>Please note that we did not create these binaries, nor do we
|
||||
support them. If you have any problems installing them, please
|
||||
contact their makers.
|
||||
|
||||
<ul>
|
||||
<li>AIX:
|
||||
<ul>
|
||||
<li><a href="http://www.bullfreeware.com">Bull's Freeware and Shareware Archive for AIX</a>;
|
||||
|
||||
<li><a href="http://pware.hvcc.edu">Hudson Valley Community College Open Source Software for IBM System p</a>;
|
||||
|
||||
<li><a href="http://www.perzl.org/aix/">AIX 5L and 6 Open Source Packages</a>.
|
||||
</ul>
|
||||
|
||||
<li>DOS—<a href="http://www.delorie.com/djgpp/">DJGPP</a>.
|
||||
|
||||
<li>Renesas H8/300[HS]—<a href="http://h8300-hms.sourceforge.net/">GNU Development Tools for the Renesas H8/300[HS] Series</a>.
|
||||
|
||||
<li>HP-UX:
|
||||
<ul>
|
||||
<li><a href="http://hpux.connect.org.uk/">HP-UX Porting Center</a>;
|
||||
|
||||
<li><a href="ftp://sunsite.informatik.rwth-aachen.de/pub/packages/gcc_hpux/">Binaries for HP-UX 11.00 at Aachen University of Technology</a>.
|
||||
</ul>
|
||||
|
||||
<li><a href="http://www.sco.com/skunkware/devtools/index.html#gcc">SCO OpenServer/Unixware</a>.
|
||||
|
||||
<li>Solaris 2 (SPARC, Intel):
|
||||
<ul>
|
||||
<li><a href="http://www.sunfreeware.com/">Sunfreeware</a>
|
||||
|
||||
<li><a href="http://www.blastwave.org/">Blastwave</a>
|
||||
|
||||
<li><a href="http://www.opencsw.org/">OpenCSW</a>
|
||||
|
||||
<li><a href="http://jupiterrise.com/tgcware/">TGCware</a>
|
||||
</ul>
|
||||
|
||||
<li>Microsoft Windows:
|
||||
<ul>
|
||||
<li>The <a href="http://sourceware.org/cygwin/">Cygwin</a> project;
|
||||
<li>The <a href="http://www.mingw.org/">MinGW</a> project.
|
||||
</ul>
|
||||
|
||||
<li><a href="ftp://ftp.thewrittenword.com/packages/by-name/">The Written Word</a> offers binaries for
|
||||
AIX 4.3.3, 5.1 and 5.2,
|
||||
GNU/Linux (i386),
|
||||
HP-UX 10.20, 11.00, and 11.11, and
|
||||
Solaris/SPARC 2.5.1, 2.6, 7, 8, 9 and 10.
|
||||
|
||||
<li><a href="http://www.openpkg.org/">OpenPKG</a> offers binaries for quite a
|
||||
number of platforms.
|
||||
|
||||
<li>The <a href="http://gcc.gnu.org/wiki/GFortranBinaries">GFortran Wiki</a> has
|
||||
links to GNU Fortran binaries for several platforms.
|
||||
</ul>
|
||||
|
||||
<p><hr />
|
||||
<p><a href="./index.html">Return to the GCC Installation page</a>
|
||||
|
||||
<!-- ***Specific**************************************************************** -->
|
||||
<!-- ***Old documentation****************************************************** -->
|
||||
<!-- ***GFDL******************************************************************** -->
|
||||
<!-- *************************************************************************** -->
|
||||
<!-- Part 6 The End of the Document -->
|
||||
</body></html>
|
||||
|
||||
|
|
@ -0,0 +1,378 @@
|
|||
<html lang="en">
|
||||
<head>
|
||||
<title>Installing GCC: Building</title>
|
||||
<meta http-equiv="Content-Type" content="text/html">
|
||||
<meta name="description" content="Installing GCC: Building">
|
||||
<meta name="generator" content="makeinfo 4.11">
|
||||
<link title="Top" rel="top" href="#Top">
|
||||
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
|
||||
<!--
|
||||
Copyright (C) 1988-2013 Free Software Foundation, Inc.
|
||||
|
||||
Permission is granted to copy, distribute and/or modify this document
|
||||
under the terms of the GNU Free Documentation License, Version 1.3 or
|
||||
any later version published by the Free Software Foundation; with no
|
||||
Invariant Sections, the Front-Cover texts being (a) (see below), and
|
||||
with the Back-Cover Texts being (b) (see below). A copy of the
|
||||
license is included in the section entitled "GNU Free Documentation License".
|
||||
|
||||
(a) The FSF's Front-Cover Text is:
|
||||
|
||||
A GNU Manual
|
||||
|
||||
(b) The FSF's Back-Cover Text is:
|
||||
|
||||
You have freedom to copy and modify this GNU Manual, like GNU
|
||||
software. Copies published by the Free Software Foundation raise
|
||||
funds for GNU development.-->
|
||||
<meta http-equiv="Content-Style-Type" content="text/css">
|
||||
<style type="text/css"><!--
|
||||
pre.display { font-family:inherit }
|
||||
pre.format { font-family:inherit }
|
||||
pre.smalldisplay { font-family:inherit; font-size:smaller }
|
||||
pre.smallformat { font-family:inherit; font-size:smaller }
|
||||
pre.smallexample { font-size:smaller }
|
||||
pre.smalllisp { font-size:smaller }
|
||||
span.sc { font-variant:small-caps }
|
||||
span.roman { font-family:serif; font-weight:normal; }
|
||||
span.sansserif { font-family:sans-serif; font-weight:normal; }
|
||||
--></style>
|
||||
</head>
|
||||
<body>
|
||||
<h1 class="settitle">Installing GCC: Building</h1>
|
||||
<a name="index-Installing-GCC_003a-Building-1"></a>
|
||||
Now that GCC is configured, you are ready to build the compiler and
|
||||
runtime libraries.
|
||||
|
||||
<p>Some commands executed when making the compiler may fail (return a
|
||||
nonzero status) and be ignored by <samp><span class="command">make</span></samp>. These failures, which
|
||||
are often due to files that were not found, are expected, and can safely
|
||||
be ignored.
|
||||
|
||||
<p>It is normal to have compiler warnings when compiling certain files.
|
||||
Unless you are a GCC developer, you can generally ignore these warnings
|
||||
unless they cause compilation to fail. Developers should attempt to fix
|
||||
any warnings encountered, however they can temporarily continue past
|
||||
warnings-as-errors by specifying the configure flag
|
||||
<samp><span class="option">--disable-werror</span></samp>.
|
||||
|
||||
<p>On certain old systems, defining certain environment variables such as
|
||||
<samp><span class="env">CC</span></samp> can interfere with the functioning of <samp><span class="command">make</span></samp>.
|
||||
|
||||
<p>If you encounter seemingly strange errors when trying to build the
|
||||
compiler in a directory other than the source directory, it could be
|
||||
because you have previously configured the compiler in the source
|
||||
directory. Make sure you have done all the necessary preparations.
|
||||
|
||||
<p>If you build GCC on a BSD system using a directory stored in an old System
|
||||
V file system, problems may occur in running <samp><span class="command">fixincludes</span></samp> if the
|
||||
System V file system doesn't support symbolic links. These problems
|
||||
result in a failure to fix the declaration of <code>size_t</code> in
|
||||
<samp><span class="file">sys/types.h</span></samp>. If you find that <code>size_t</code> is a signed type and
|
||||
that type mismatches occur, this could be the cause.
|
||||
|
||||
<p>The solution is not to use such a directory for building GCC.
|
||||
|
||||
<p>Similarly, when building from SVN or snapshots, or if you modify
|
||||
<samp><span class="file">*.l</span></samp> files, you need the Flex lexical analyzer generator
|
||||
installed. If you do not modify <samp><span class="file">*.l</span></samp> files, releases contain
|
||||
the Flex-generated files and you do not need Flex installed to build
|
||||
them. There is still one Flex-based lexical analyzer (part of the
|
||||
build machinery, not of GCC itself) that is used even if you only
|
||||
build the C front end.
|
||||
|
||||
<p>When building from SVN or snapshots, or if you modify Texinfo
|
||||
documentation, you need version 4.7 or later of Texinfo installed if you
|
||||
want Info documentation to be regenerated. Releases contain Info
|
||||
documentation pre-built for the unmodified documentation in the release.
|
||||
|
||||
<h3 class="section"><a name="TOC0"></a>Building a native compiler</h3>
|
||||
|
||||
<p>For a native build, the default configuration is to perform
|
||||
a 3-stage bootstrap of the compiler when ‘<samp><span class="samp">make</span></samp>’ is invoked.
|
||||
This will build the entire GCC system and ensure that it compiles
|
||||
itself correctly. It can be disabled with the <samp><span class="option">--disable-bootstrap</span></samp>
|
||||
parameter to ‘<samp><span class="samp">configure</span></samp>’, but bootstrapping is suggested because
|
||||
the compiler will be tested more completely and could also have
|
||||
better performance.
|
||||
|
||||
<p>The bootstrapping process will complete the following steps:
|
||||
|
||||
<ul>
|
||||
<li>Build tools necessary to build the compiler.
|
||||
|
||||
<li>Perform a 3-stage bootstrap of the compiler. This includes building
|
||||
three times the target tools for use by the compiler such as binutils
|
||||
(bfd, binutils, gas, gprof, ld, and opcodes) if they have been
|
||||
individually linked or moved into the top level GCC source tree before
|
||||
configuring.
|
||||
|
||||
<li>Perform a comparison test of the stage2 and stage3 compilers.
|
||||
|
||||
<li>Build runtime libraries using the stage3 compiler from the previous step.
|
||||
|
||||
</ul>
|
||||
|
||||
<p>If you are short on disk space you might consider ‘<samp><span class="samp">make
|
||||
bootstrap-lean</span></samp>’ instead. The sequence of compilation is the
|
||||
same described above, but 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 wish to use non-default GCC flags when compiling the stage2
|
||||
and stage3 compilers, set <code>BOOT_CFLAGS</code> on the command line when
|
||||
doing ‘<samp><span class="samp">make</span></samp>’. For example, 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 as in the
|
||||
following example. This will save roughly 40% of disk space both for
|
||||
the bootstrap and the final installation. (Libraries will still contain
|
||||
debugging information.)
|
||||
|
||||
<pre class="smallexample"> make BOOT_CFLAGS='-O' bootstrap
|
||||
</pre>
|
||||
<p>You can place non-default optimization flags into <code>BOOT_CFLAGS</code>; they
|
||||
are less well tested here than the default of ‘<samp><span class="samp">-g -O2</span></samp>’, but should
|
||||
still work. In a few cases, you may find that you need to specify special
|
||||
flags such as <samp><span class="option">-msoft-float</span></samp> here to complete the bootstrap; or,
|
||||
if the native compiler miscompiles the stage1 compiler, you may need
|
||||
to work around this, by choosing <code>BOOT_CFLAGS</code> to avoid the parts
|
||||
of the stage1 compiler that were miscompiled, or by using ‘<samp><span class="samp">make
|
||||
bootstrap4</span></samp>’ to increase the number of stages of bootstrap.
|
||||
|
||||
<p><code>BOOT_CFLAGS</code> does not apply to bootstrapped target libraries.
|
||||
Since these are always compiled with the compiler currently being
|
||||
bootstrapped, you can use <code>CFLAGS_FOR_TARGET</code> to modify their
|
||||
compilation flags, as for non-bootstrapped target libraries.
|
||||
Again, if the native compiler miscompiles the stage1 compiler, you may
|
||||
need to work around this by avoiding non-working parts of the stage1
|
||||
compiler. Use <code>STAGE1_TFLAGS</code> to this end.
|
||||
|
||||
<p>If you used the flag <samp><span class="option">--enable-languages=...</span></samp> 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 <samp><span class="env">LANGUAGES</span></samp> when calling ‘<samp><span class="samp">make</span></samp>’
|
||||
<strong>does not</strong> work anymore!
|
||||
|
||||
<p>If the comparison of stage2 and stage3 fails, this normally indicates
|
||||
that the stage2 compiler has compiled GCC incorrectly, and is therefore
|
||||
a potentially serious bug which you should investigate and report. (On
|
||||
a few systems, meaningful comparison of object files is impossible; they
|
||||
always appear “different”. If you encounter this problem, you will
|
||||
need to disable comparison in the <samp><span class="file">Makefile</span></samp>.)
|
||||
|
||||
<p>If you do not want to bootstrap your compiler, you can configure with
|
||||
<samp><span class="option">--disable-bootstrap</span></samp>. In particular cases, you may want to
|
||||
bootstrap your compiler even if the target system is not the same as
|
||||
the one you are building on: for example, you could build a
|
||||
<code>powerpc-unknown-linux-gnu</code> toolchain on a
|
||||
<code>powerpc64-unknown-linux-gnu</code> host. In this case, pass
|
||||
<samp><span class="option">--enable-bootstrap</span></samp> to the configure script.
|
||||
|
||||
<p><code>BUILD_CONFIG</code> can be used to bring in additional customization
|
||||
to the build. It can be set to a whitespace-separated list of names.
|
||||
For each such <code>NAME</code>, top-level <samp><span class="file">config/</span><code>NAME</code><span class="file">.mk</span></samp> will
|
||||
be included by the top-level <samp><span class="file">Makefile</span></samp>, bringing in any settings
|
||||
it contains. The default <code>BUILD_CONFIG</code> can be set using the
|
||||
configure option <samp><span class="option">--with-build-config=</span><code>NAME</code><span class="option">...</span></samp>. Some
|
||||
examples of supported build configurations are:
|
||||
|
||||
<dl>
|
||||
<dt>‘<samp><span class="samp">bootstrap-O1</span></samp>’<dd>Removes any <samp><span class="option">-O</span></samp>-started option from <code>BOOT_CFLAGS</code>, and adds
|
||||
<samp><span class="option">-O1</span></samp> to it. ‘<samp><span class="samp">BUILD_CONFIG=bootstrap-O1</span></samp>’ is equivalent to
|
||||
‘<samp><span class="samp">BOOT_CFLAGS='-g -O1'</span></samp>’.
|
||||
|
||||
<br><dt>‘<samp><span class="samp">bootstrap-O3</span></samp>’<dd>Analogous to <code>bootstrap-O1</code>.
|
||||
|
||||
<br><dt>‘<samp><span class="samp">bootstrap-lto</span></samp>’<dd>Enables Link-Time Optimization for host tools during bootstrapping.
|
||||
‘<samp><span class="samp">BUILD_CONFIG=bootstrap-lto</span></samp>’ is equivalent to adding
|
||||
<samp><span class="option">-flto</span></samp> to ‘<samp><span class="samp">BOOT_CFLAGS</span></samp>’.
|
||||
|
||||
<br><dt>‘<samp><span class="samp">bootstrap-debug</span></samp>’<dd>Verifies that the compiler generates the same executable code, whether
|
||||
or not it is asked to emit debug information. To this end, this
|
||||
option builds stage2 host programs without debug information, and uses
|
||||
<samp><span class="file">contrib/compare-debug</span></samp> to compare them with the stripped stage3
|
||||
object files. If <code>BOOT_CFLAGS</code> is overridden so as to not enable
|
||||
debug information, stage2 will have it, and stage3 won't. This option
|
||||
is enabled by default when GCC bootstrapping is enabled, if
|
||||
<code>strip</code> can turn object files compiled with and without debug
|
||||
info into identical object files. In addition to better test
|
||||
coverage, this option makes default bootstraps faster and leaner.
|
||||
|
||||
<br><dt>‘<samp><span class="samp">bootstrap-debug-big</span></samp>’<dd>Rather than comparing stripped object files, as in
|
||||
<code>bootstrap-debug</code>, this option saves internal compiler dumps
|
||||
during stage2 and stage3 and compares them as well, which helps catch
|
||||
additional potential problems, but at a great cost in terms of disk
|
||||
space. It can be specified in addition to ‘<samp><span class="samp">bootstrap-debug</span></samp>’.
|
||||
|
||||
<br><dt>‘<samp><span class="samp">bootstrap-debug-lean</span></samp>’<dd>This option saves disk space compared with <code>bootstrap-debug-big</code>,
|
||||
but at the expense of some recompilation. Instead of saving the dumps
|
||||
of stage2 and stage3 until the final compare, it uses
|
||||
<samp><span class="option">-fcompare-debug</span></samp> to generate, compare and remove the dumps
|
||||
during stage3, repeating the compilation that already took place in
|
||||
stage2, whose dumps were not saved.
|
||||
|
||||
<br><dt>‘<samp><span class="samp">bootstrap-debug-lib</span></samp>’<dd>This option tests executable code invariance over debug information
|
||||
generation on target libraries, just like <code>bootstrap-debug-lean</code>
|
||||
tests it on host programs. It builds stage3 libraries with
|
||||
<samp><span class="option">-fcompare-debug</span></samp>, and it can be used along with any of the
|
||||
<code>bootstrap-debug</code> options above.
|
||||
|
||||
<p>There aren't <code>-lean</code> or <code>-big</code> counterparts to this option
|
||||
because most libraries are only build in stage3, so bootstrap compares
|
||||
would not get significant coverage. Moreover, the few libraries built
|
||||
in stage2 are used in stage3 host programs, so we wouldn't want to
|
||||
compile stage2 libraries with different options for comparison purposes.
|
||||
|
||||
<br><dt>‘<samp><span class="samp">bootstrap-debug-ckovw</span></samp>’<dd>Arranges for error messages to be issued if the compiler built on any
|
||||
stage is run without the option <samp><span class="option">-fcompare-debug</span></samp>. This is
|
||||
useful to verify the full <samp><span class="option">-fcompare-debug</span></samp> testing coverage. It
|
||||
must be used along with <code>bootstrap-debug-lean</code> and
|
||||
<code>bootstrap-debug-lib</code>.
|
||||
|
||||
<br><dt>‘<samp><span class="samp">bootstrap-time</span></samp>’<dd>Arranges for the run time of each program started by the GCC driver,
|
||||
built in any stage, to be logged to <samp><span class="file">time.log</span></samp>, in the top level of
|
||||
the build tree.
|
||||
|
||||
</dl>
|
||||
|
||||
<h3 class="section"><a name="TOC1"></a>Building a cross compiler</h3>
|
||||
|
||||
<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 recommend first building and installing a
|
||||
native compiler. You can then use the native GCC compiler to build the
|
||||
cross compiler. The installed native compiler needs to be GCC version
|
||||
2.95 or later.
|
||||
|
||||
<p>If the cross compiler is to be built with support for the Java
|
||||
programming language and the ability to compile .java source files is
|
||||
desired, the installed native compiler used to build the cross
|
||||
compiler needs to be the same GCC version as the cross compiler. In
|
||||
addition the cross compiler needs to be configured with
|
||||
<samp><span class="option">--with-ecj-jar=...</span></samp>.
|
||||
|
||||
<p>Assuming you have already installed a native copy of GCC and configured
|
||||
your cross compiler, issue the command <samp><span class="command">make</span></samp>, which performs the
|
||||
following steps:
|
||||
|
||||
<ul>
|
||||
<li>Build host tools necessary to build the compiler.
|
||||
|
||||
<li>Build target tools for use by the compiler such as binutils (bfd,
|
||||
binutils, gas, gprof, ld, and opcodes)
|
||||
if they have been individually linked or moved into the top level GCC source
|
||||
tree before configuring.
|
||||
|
||||
<li>Build the compiler (single stage only).
|
||||
|
||||
<li>Build runtime libraries using the compiler from the previous step.
|
||||
</ul>
|
||||
|
||||
<p>Note that if an error occurs in any step the make process will exit.
|
||||
|
||||
<p>If you are not building GNU binutils in the same source tree as GCC,
|
||||
you will need a cross-assembler and cross-linker installed before
|
||||
configuring GCC. Put them in the directory
|
||||
<samp><var>prefix</var><span class="file">/</span><var>target</var><span class="file">/bin</span></samp>. Here is a table of the tools
|
||||
you should put in this directory:
|
||||
|
||||
<dl>
|
||||
<dt><samp><span class="file">as</span></samp><dd>This should be the cross-assembler.
|
||||
|
||||
<br><dt><samp><span class="file">ld</span></samp><dd>This should be the cross-linker.
|
||||
|
||||
<br><dt><samp><span class="file">ar</span></samp><dd>This should be the cross-archiver: a program which can manipulate
|
||||
archive files (linker libraries) in the target machine's format.
|
||||
|
||||
<br><dt><samp><span class="file">ranlib</span></samp><dd>This should be a program to construct a symbol table in an archive file.
|
||||
</dl>
|
||||
|
||||
<p>The installation of GCC will find these programs in that directory,
|
||||
and copy or link them to the proper place to for the cross-compiler to
|
||||
find them when run later.
|
||||
|
||||
<p>The easiest way to provide these files is to build the Binutils package.
|
||||
Configure it with the same <samp><span class="option">--host</span></samp> and <samp><span class="option">--target</span></samp>
|
||||
options that you use for configuring GCC, then build and install
|
||||
them. They install their executables automatically into the proper
|
||||
directory. Alas, they do not support all the targets that GCC
|
||||
supports.
|
||||
|
||||
<p>If you are not building a C library in the same source tree as GCC,
|
||||
you should also provide the target libraries and headers before
|
||||
configuring GCC, specifying the directories with
|
||||
<samp><span class="option">--with-sysroot</span></samp> or <samp><span class="option">--with-headers</span></samp> and
|
||||
<samp><span class="option">--with-libs</span></samp>. Many targets also require “start files” such
|
||||
as <samp><span class="file">crt0.o</span></samp> and
|
||||
<samp><span class="file">crtn.o</span></samp> which are linked into each executable. There may be several
|
||||
alternatives for <samp><span class="file">crt0.o</span></samp>, for use with profiling or other
|
||||
compilation options. Check your target's definition of
|
||||
<code>STARTFILE_SPEC</code> to find out what start files it uses.
|
||||
|
||||
<h3 class="section"><a name="TOC2"></a>Building in parallel</h3>
|
||||
|
||||
<p>GNU Make 3.80 and above, which is necessary to build GCC, support
|
||||
building in parallel. To activate this, you can use ‘<samp><span class="samp">make -j 2</span></samp>’
|
||||
instead of ‘<samp><span class="samp">make</span></samp>’. You can also specify a bigger number, and
|
||||
in most cases using a value greater than the number of processors in
|
||||
your machine will result in fewer and shorter I/O latency hits, thus
|
||||
improving overall throughput; this is especially true for slow drives
|
||||
and network filesystems.
|
||||
|
||||
<h3 class="section"><a name="TOC3"></a>Building the Ada compiler</h3>
|
||||
|
||||
<p>In order to build GNAT, the Ada compiler, you need a working GNAT
|
||||
compiler (GCC version 4.0 or later).
|
||||
This includes GNAT tools such as <samp><span class="command">gnatmake</span></samp> and
|
||||
<samp><span class="command">gnatlink</span></samp>, since the Ada front end is written in Ada and
|
||||
uses some GNAT-specific extensions.
|
||||
|
||||
<p>In order to build a cross compiler, it is suggested to install
|
||||
the new compiler as native first, and then use it to build the cross
|
||||
compiler.
|
||||
|
||||
<p><samp><span class="command">configure</span></samp> does not test whether the GNAT installation works
|
||||
and has a sufficiently recent version; if too old a GNAT version is
|
||||
installed, the build will fail unless <samp><span class="option">--enable-languages</span></samp> is
|
||||
used to disable building the Ada front end.
|
||||
|
||||
<p><samp><span class="env">ADA_INCLUDE_PATH</span></samp> and <samp><span class="env">ADA_OBJECT_PATH</span></samp> environment variables
|
||||
must not be set when building the Ada compiler, the Ada tools, or the
|
||||
Ada runtime libraries. You can check that your build environment is clean
|
||||
by verifying that ‘<samp><span class="samp">gnatls -v</span></samp>’ lists only one explicit path in each
|
||||
section.
|
||||
|
||||
<h3 class="section"><a name="TOC4"></a>Building with profile feedback</h3>
|
||||
|
||||
<p>It is possible to use profile feedback to optimize the compiler itself. This
|
||||
should result in a faster compiler binary. Experiments done on x86 using gcc
|
||||
3.3 showed approximately 7 percent speedup on compiling C programs. To
|
||||
bootstrap the compiler with profile feedback, use <code>make profiledbootstrap</code>.
|
||||
|
||||
<p>When ‘<samp><span class="samp">make profiledbootstrap</span></samp>’ is run, it will first build a <code>stage1</code>
|
||||
compiler. This compiler is used to build a <code>stageprofile</code> compiler
|
||||
instrumented to collect execution counts of instruction and branch
|
||||
probabilities. Then runtime libraries are compiled with profile collected.
|
||||
Finally a <code>stagefeedback</code> compiler is built using the information collected.
|
||||
|
||||
<p>Unlike standard bootstrap, several additional restrictions apply. The
|
||||
compiler used to build <code>stage1</code> needs to support a 64-bit integral type.
|
||||
It is recommended to only use GCC for this. Also parallel make is currently
|
||||
not supported since collisions in profile collecting may occur.
|
||||
|
||||
<p><hr />
|
||||
<p><a href="./index.html">Return to the GCC Installation page</a>
|
||||
|
||||
<!-- ***Testing***************************************************************** -->
|
||||
<!-- ***Final install*********************************************************** -->
|
||||
<!-- ***Binaries**************************************************************** -->
|
||||
<!-- ***Specific**************************************************************** -->
|
||||
<!-- ***Old documentation****************************************************** -->
|
||||
<!-- ***GFDL******************************************************************** -->
|
||||
<!-- *************************************************************************** -->
|
||||
<!-- Part 6 The End of the Document -->
|
||||
</body></html>
|
||||
|
||||
File diff suppressed because it is too large
Load diff
|
|
@ -0,0 +1,87 @@
|
|||
<html lang="en">
|
||||
<head>
|
||||
<title>Downloading GCC</title>
|
||||
<meta http-equiv="Content-Type" content="text/html">
|
||||
<meta name="description" content="Downloading GCC">
|
||||
<meta name="generator" content="makeinfo 4.11">
|
||||
<link title="Top" rel="top" href="#Top">
|
||||
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
|
||||
<!--
|
||||
Copyright (C) 1988-2013 Free Software Foundation, Inc.
|
||||
|
||||
Permission is granted to copy, distribute and/or modify this document
|
||||
under the terms of the GNU Free Documentation License, Version 1.3 or
|
||||
any later version published by the Free Software Foundation; with no
|
||||
Invariant Sections, the Front-Cover texts being (a) (see below), and
|
||||
with the Back-Cover Texts being (b) (see below). A copy of the
|
||||
license is included in the section entitled "GNU Free Documentation License".
|
||||
|
||||
(a) The FSF's Front-Cover Text is:
|
||||
|
||||
A GNU Manual
|
||||
|
||||
(b) The FSF's Back-Cover Text is:
|
||||
|
||||
You have freedom to copy and modify this GNU Manual, like GNU
|
||||
software. Copies published by the Free Software Foundation raise
|
||||
funds for GNU development.-->
|
||||
<meta http-equiv="Content-Style-Type" content="text/css">
|
||||
<style type="text/css"><!--
|
||||
pre.display { font-family:inherit }
|
||||
pre.format { font-family:inherit }
|
||||
pre.smalldisplay { font-family:inherit; font-size:smaller }
|
||||
pre.smallformat { font-family:inherit; font-size:smaller }
|
||||
pre.smallexample { font-size:smaller }
|
||||
pre.smalllisp { font-size:smaller }
|
||||
span.sc { font-variant:small-caps }
|
||||
span.roman { font-family:serif; font-weight:normal; }
|
||||
span.sansserif { font-family:sans-serif; font-weight:normal; }
|
||||
--></style>
|
||||
</head>
|
||||
<body>
|
||||
<h1 class="settitle">Downloading GCC</h1>
|
||||
<a name="index-Downloading-GCC-1"></a><a name="index-Downloading-the-Source-2"></a>
|
||||
GCC is distributed via <a href="http://gcc.gnu.org/svn.html">SVN</a> and FTP
|
||||
tarballs compressed with <samp><span class="command">gzip</span></samp> or
|
||||
<samp><span class="command">bzip2</span></samp>.
|
||||
|
||||
<p>Please refer to the <a href="http://gcc.gnu.org/releases.html">releases web page</a>
|
||||
for information on how to obtain GCC.
|
||||
|
||||
<p>The source distribution includes the C, C++, Objective-C, Fortran, Java,
|
||||
and Ada (in the case of GCC 3.1 and later) compilers, as well as
|
||||
runtime libraries for C++, Objective-C, Fortran, and Java.
|
||||
For previous versions these were downloadable as separate components such
|
||||
as the core GCC distribution, which included the C language front end and
|
||||
shared components, and language-specific distributions including the
|
||||
language front end and the language runtime (where appropriate).
|
||||
|
||||
<p>If you also intend to build binutils (either to upgrade an existing
|
||||
installation or for use in place of the corresponding tools of your
|
||||
OS), unpack the binutils distribution either in the same directory or
|
||||
a separate one. In the latter case, add symbolic links to any
|
||||
components of the binutils you intend to build alongside the compiler
|
||||
(<samp><span class="file">bfd</span></samp>, <samp><span class="file">binutils</span></samp>, <samp><span class="file">gas</span></samp>, <samp><span class="file">gprof</span></samp>, <samp><span class="file">ld</span></samp>,
|
||||
<samp><span class="file">opcodes</span></samp>, <small class="dots">...</small>) to the directory containing the GCC sources.
|
||||
|
||||
<p>Likewise the GMP, MPFR and MPC libraries can be automatically built
|
||||
together with GCC. Unpack the GMP, MPFR and/or MPC source
|
||||
distributions in the directory containing the GCC sources and rename
|
||||
their directories to <samp><span class="file">gmp</span></samp>, <samp><span class="file">mpfr</span></samp> and <samp><span class="file">mpc</span></samp>,
|
||||
respectively (or use symbolic links with the same name).
|
||||
|
||||
<p><hr />
|
||||
<p><a href="./index.html">Return to the GCC Installation page</a>
|
||||
|
||||
<!-- ***Configuration*********************************************************** -->
|
||||
<!-- ***Building**************************************************************** -->
|
||||
<!-- ***Testing***************************************************************** -->
|
||||
<!-- ***Final install*********************************************************** -->
|
||||
<!-- ***Binaries**************************************************************** -->
|
||||
<!-- ***Specific**************************************************************** -->
|
||||
<!-- ***Old documentation****************************************************** -->
|
||||
<!-- ***GFDL******************************************************************** -->
|
||||
<!-- *************************************************************************** -->
|
||||
<!-- Part 6 The End of the Document -->
|
||||
</body></html>
|
||||
|
||||
|
|
@ -0,0 +1,172 @@
|
|||
<html lang="en">
|
||||
<head>
|
||||
<title>Installing GCC: Final installation</title>
|
||||
<meta http-equiv="Content-Type" content="text/html">
|
||||
<meta name="description" content="Installing GCC: Final installation">
|
||||
<meta name="generator" content="makeinfo 4.11">
|
||||
<link title="Top" rel="top" href="#Top">
|
||||
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
|
||||
<!--
|
||||
Copyright (C) 1988-2013 Free Software Foundation, Inc.
|
||||
|
||||
Permission is granted to copy, distribute and/or modify this document
|
||||
under the terms of the GNU Free Documentation License, Version 1.3 or
|
||||
any later version published by the Free Software Foundation; with no
|
||||
Invariant Sections, the Front-Cover texts being (a) (see below), and
|
||||
with the Back-Cover Texts being (b) (see below). A copy of the
|
||||
license is included in the section entitled "GNU Free Documentation License".
|
||||
|
||||
(a) The FSF's Front-Cover Text is:
|
||||
|
||||
A GNU Manual
|
||||
|
||||
(b) The FSF's Back-Cover Text is:
|
||||
|
||||
You have freedom to copy and modify this GNU Manual, like GNU
|
||||
software. Copies published by the Free Software Foundation raise
|
||||
funds for GNU development.-->
|
||||
<meta http-equiv="Content-Style-Type" content="text/css">
|
||||
<style type="text/css"><!--
|
||||
pre.display { font-family:inherit }
|
||||
pre.format { font-family:inherit }
|
||||
pre.smalldisplay { font-family:inherit; font-size:smaller }
|
||||
pre.smallformat { font-family:inherit; font-size:smaller }
|
||||
pre.smallexample { font-size:smaller }
|
||||
pre.smalllisp { font-size:smaller }
|
||||
span.sc { font-variant:small-caps }
|
||||
span.roman { font-family:serif; font-weight:normal; }
|
||||
span.sansserif { font-family:sans-serif; font-weight:normal; }
|
||||
--></style>
|
||||
</head>
|
||||
<body>
|
||||
<h1 class="settitle">Installing GCC: Final installation</h1>
|
||||
Now that GCC has been built (and optionally tested), you can install it with
|
||||
<pre class="smallexample"> cd <var>objdir</var> && make install
|
||||
</pre>
|
||||
<p>We strongly recommend to install into a target directory where there is
|
||||
no previous version of GCC present. Also, the GNAT runtime should not
|
||||
be stripped, as this would break certain features of the debugger that
|
||||
depend on this debugging information (catching Ada exceptions for
|
||||
instance).
|
||||
|
||||
<p>That step completes the installation of GCC; user level binaries can
|
||||
be found in <samp><var>prefix</var><span class="file">/bin</span></samp> where <var>prefix</var> is the value
|
||||
you specified with the <samp><span class="option">--prefix</span></samp> to configure (or
|
||||
<samp><span class="file">/usr/local</span></samp> by default). (If you specified <samp><span class="option">--bindir</span></samp>,
|
||||
that directory will be used instead; otherwise, if you specified
|
||||
<samp><span class="option">--exec-prefix</span></samp>, <samp><var>exec-prefix</var><span class="file">/bin</span></samp> will be used.)
|
||||
Headers for the C++ and Java libraries are installed in
|
||||
<samp><var>prefix</var><span class="file">/include</span></samp>; libraries in <samp><var>libdir</var></samp>
|
||||
(normally <samp><var>prefix</var><span class="file">/lib</span></samp>); internal parts of the compiler in
|
||||
<samp><var>libdir</var><span class="file">/gcc</span></samp> and <samp><var>libexecdir</var><span class="file">/gcc</span></samp>; documentation
|
||||
in info format in <samp><var>infodir</var></samp> (normally
|
||||
<samp><var>prefix</var><span class="file">/info</span></samp>).
|
||||
|
||||
<p>When installing cross-compilers, GCC's executables
|
||||
are not only installed into <samp><var>bindir</var></samp>, that
|
||||
is, <samp><var>exec-prefix</var><span class="file">/bin</span></samp>, but additionally into
|
||||
<samp><var>exec-prefix</var><span class="file">/</span><var>target-alias</var><span class="file">/bin</span></samp>, if that directory
|
||||
exists. Typically, such <dfn>tooldirs</dfn> hold target-specific
|
||||
binutils, including assembler and linker.
|
||||
|
||||
<p>Installation into a temporary staging area or into a <samp><span class="command">chroot</span></samp>
|
||||
jail can be achieved with the command
|
||||
|
||||
<pre class="smallexample"> make DESTDIR=<var>path-to-rootdir</var> install
|
||||
</pre>
|
||||
<p class="noindent">where <var>path-to-rootdir</var> is the absolute path of
|
||||
a directory relative to which all installation paths will be
|
||||
interpreted. Note that the directory specified by <code>DESTDIR</code>
|
||||
need not exist yet; it will be created if necessary.
|
||||
|
||||
<p>There is a subtle point with tooldirs and <code>DESTDIR</code>:
|
||||
If you relocate a cross-compiler installation with
|
||||
e.g. ‘<samp><span class="samp">DESTDIR=</span><var>rootdir</var></samp>’, then the directory
|
||||
<samp><var>rootdir</var><span class="file">/</span><var>exec-prefix</var><span class="file">/</span><var>target-alias</var><span class="file">/bin</span></samp> will
|
||||
be filled with duplicated GCC executables only if it already exists,
|
||||
it will not be created otherwise. This is regarded as a feature,
|
||||
not as a bug, because it gives slightly more control to the packagers
|
||||
using the <code>DESTDIR</code> feature.
|
||||
|
||||
<p>You can install stripped programs and libraries with
|
||||
|
||||
<pre class="smallexample"> make install-strip
|
||||
</pre>
|
||||
<p>If you are bootstrapping a released version of GCC then please
|
||||
quickly review the build status page for your release, available from
|
||||
<a href="http://gcc.gnu.org/buildstat.html">http://gcc.gnu.org/buildstat.html</a>.
|
||||
If your system is not listed for the version of GCC that you built,
|
||||
send a note to
|
||||
<a href="mailto:gcc@gcc.gnu.org">gcc@gcc.gnu.org</a> indicating
|
||||
that you successfully built and installed GCC.
|
||||
Include the following information:
|
||||
|
||||
<ul>
|
||||
<li>Output from running <samp><var>srcdir</var><span class="file">/config.guess</span></samp>. Do not send
|
||||
that file itself, just the one-line output from running it.
|
||||
|
||||
<li>The output of ‘<samp><span class="samp">gcc -v</span></samp>’ for your newly installed <samp><span class="command">gcc</span></samp>.
|
||||
This tells us which version of GCC you built and the options you passed to
|
||||
configure.
|
||||
|
||||
<li>Whether you enabled all languages or a subset of them. If you used a
|
||||
full distribution then this information is part of the configure
|
||||
options in the output of ‘<samp><span class="samp">gcc -v</span></samp>’, but if you downloaded the
|
||||
“core” compiler plus additional front ends then it isn't apparent
|
||||
which ones you built unless you tell us about it.
|
||||
|
||||
<li>If the build was for GNU/Linux, also include:
|
||||
<ul>
|
||||
<li>The distribution name and version (e.g., Red Hat 7.1 or Debian 2.2.3);
|
||||
this information should be available from <samp><span class="file">/etc/issue</span></samp>.
|
||||
|
||||
<li>The version of the Linux kernel, available from ‘<samp><span class="samp">uname --version</span></samp>’
|
||||
or ‘<samp><span class="samp">uname -a</span></samp>’.
|
||||
|
||||
<li>The version of glibc you used; for RPM-based systems like Red Hat,
|
||||
Mandrake, and SuSE type ‘<samp><span class="samp">rpm -q glibc</span></samp>’ to get the glibc version,
|
||||
and on systems like Debian and Progeny use ‘<samp><span class="samp">dpkg -l libc6</span></samp>’.
|
||||
</ul>
|
||||
For other systems, you can include similar information if you think it is
|
||||
relevant.
|
||||
|
||||
<li>Any other information that you think would be useful to people building
|
||||
GCC on the same configuration. The new entry in the build status list
|
||||
will include a link to the archived copy of your message.
|
||||
</ul>
|
||||
|
||||
<p>We'd also like to know if the
|
||||
<a href="specific.html">host/target specific installation notes</a>
|
||||
didn't include your host/target information or if that information is
|
||||
incomplete or out of date. Send a note to
|
||||
<a href="mailto:gcc@gcc.gnu.org">gcc@gcc.gnu.org</a> detailing how the information should be changed.
|
||||
|
||||
<p>If you find a bug, please report it following the
|
||||
<a href="../bugs/">bug reporting guidelines</a>.
|
||||
|
||||
<p>If you want to print the GCC manuals, do ‘<samp><span class="samp">cd </span><var>objdir</var><span class="samp">; make
|
||||
dvi</span></samp>’. You will need to have <samp><span class="command">texi2dvi</span></samp> (version at least 4.7)
|
||||
and TeX installed. This creates a number of <samp><span class="file">.dvi</span></samp> files in
|
||||
subdirectories of <samp><var>objdir</var></samp>; these may be converted for
|
||||
printing with programs such as <samp><span class="command">dvips</span></samp>. Alternately, by using
|
||||
‘<samp><span class="samp">make pdf</span></samp>’ in place of ‘<samp><span class="samp">make dvi</span></samp>’, you can create documentation
|
||||
in the form of <samp><span class="file">.pdf</span></samp> files; this requires <samp><span class="command">texi2pdf</span></samp>, which
|
||||
is included with Texinfo version 4.8 and later. You can also
|
||||
<a href="http://shop.fsf.org/">buy printed manuals from the Free Software Foundation</a>, though such manuals may not be for the most
|
||||
recent version of GCC.
|
||||
|
||||
<p>If you would like to generate online HTML documentation, do ‘<samp><span class="samp">cd
|
||||
</span><var>objdir</var><span class="samp">; make html</span></samp>’ and HTML will be generated for the gcc manuals in
|
||||
<samp><var>objdir</var><span class="file">/gcc/HTML</span></samp>.
|
||||
|
||||
<p><hr />
|
||||
<p><a href="./index.html">Return to the GCC Installation page</a>
|
||||
|
||||
<!-- ***Binaries**************************************************************** -->
|
||||
<!-- ***Specific**************************************************************** -->
|
||||
<!-- ***Old documentation****************************************************** -->
|
||||
<!-- ***GFDL******************************************************************** -->
|
||||
<!-- *************************************************************************** -->
|
||||
<!-- Part 6 The End of the Document -->
|
||||
</body></html>
|
||||
|
||||
|
|
@ -0,0 +1,515 @@
|
|||
<html lang="en">
|
||||
<head>
|
||||
<title>Installing GCC: GNU Free Documentation License</title>
|
||||
<meta http-equiv="Content-Type" content="text/html">
|
||||
<meta name="description" content="Installing GCC: GNU Free Documentation License">
|
||||
<meta name="generator" content="makeinfo 4.11">
|
||||
<link title="Top" rel="top" href="#Top">
|
||||
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
|
||||
<!--
|
||||
Copyright (C) 1988-2013 Free Software Foundation, Inc.
|
||||
|
||||
Permission is granted to copy, distribute and/or modify this document
|
||||
under the terms of the GNU Free Documentation License, Version 1.3 or
|
||||
any later version published by the Free Software Foundation; with no
|
||||
Invariant Sections, the Front-Cover texts being (a) (see below), and
|
||||
with the Back-Cover Texts being (b) (see below). A copy of the
|
||||
license is included in the section entitled "GNU Free Documentation License".
|
||||
|
||||
(a) The FSF's Front-Cover Text is:
|
||||
|
||||
A GNU Manual
|
||||
|
||||
(b) The FSF's Back-Cover Text is:
|
||||
|
||||
You have freedom to copy and modify this GNU Manual, like GNU
|
||||
software. Copies published by the Free Software Foundation raise
|
||||
funds for GNU development.-->
|
||||
<meta http-equiv="Content-Style-Type" content="text/css">
|
||||
<style type="text/css"><!--
|
||||
pre.display { font-family:inherit }
|
||||
pre.format { font-family:inherit }
|
||||
pre.smalldisplay { font-family:inherit; font-size:smaller }
|
||||
pre.smallformat { font-family:inherit; font-size:smaller }
|
||||
pre.smallexample { font-size:smaller }
|
||||
pre.smalllisp { font-size:smaller }
|
||||
span.sc { font-variant:small-caps }
|
||||
span.roman { font-family:serif; font-weight:normal; }
|
||||
span.sansserif { font-family:sans-serif; font-weight:normal; }
|
||||
--></style>
|
||||
</head>
|
||||
<body>
|
||||
<h1 class="settitle">Installing GCC: GNU Free Documentation License</h1>
|
||||
<h1 align="center">Installing GCC: GNU Free Documentation License</h1><!-- man begin DESCRIPTION -->
|
||||
|
||||
<p><a name="index-FDL_002c-GNU-Free-Documentation-License-1"></a><div align="center">Version 1.3, 3 November 2008</div>
|
||||
|
||||
<pre class="display"> Copyright © 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
|
||||
<a href="http://fsf.org/">http://fsf.org/</a>
|
||||
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
</pre>
|
||||
<ol type=1 start=0>
|
||||
<li>PREAMBLE
|
||||
|
||||
<p>The purpose of this License is to make a manual, textbook, or other
|
||||
functional and useful document <dfn>free</dfn> in the sense of freedom: to
|
||||
assure everyone the effective freedom to copy and redistribute it,
|
||||
with or without modifying it, either commercially or noncommercially.
|
||||
Secondarily, this License preserves for the author and publisher a way
|
||||
to get credit for their work, while not being considered responsible
|
||||
for modifications made by others.
|
||||
|
||||
<p>This License is a kind of “copyleft”, which means that derivative
|
||||
works of the document must themselves be free in the same sense. It
|
||||
complements the GNU General Public License, which is a copyleft
|
||||
license designed for free software.
|
||||
|
||||
<p>We have designed this License in order to use it for manuals for free
|
||||
software, because free software needs free documentation: a free
|
||||
program should come with manuals providing the same freedoms that the
|
||||
software does. But this License is not limited to software manuals;
|
||||
it can be used for any textual work, regardless of subject matter or
|
||||
whether it is published as a printed book. We recommend this License
|
||||
principally for works whose purpose is instruction or reference.
|
||||
|
||||
<li>APPLICABILITY AND DEFINITIONS
|
||||
|
||||
<p>This License applies to any manual or other work, in any medium, that
|
||||
contains a notice placed by the copyright holder saying it can be
|
||||
distributed under the terms of this License. Such a notice grants a
|
||||
world-wide, royalty-free license, unlimited in duration, to use that
|
||||
work under the conditions stated herein. The “Document”, below,
|
||||
refers to any such manual or work. Any member of the public is a
|
||||
licensee, and is addressed as “you”. You accept the license if you
|
||||
copy, modify or distribute the work in a way requiring permission
|
||||
under copyright law.
|
||||
|
||||
<p>A “Modified Version” of the Document means any work containing the
|
||||
Document or a portion of it, either copied verbatim, or with
|
||||
modifications and/or translated into another language.
|
||||
|
||||
<p>A “Secondary Section” is a named appendix or a front-matter section
|
||||
of the Document that deals exclusively with the relationship of the
|
||||
publishers or authors of the Document to the Document's overall
|
||||
subject (or to related matters) and contains nothing that could fall
|
||||
directly within that overall subject. (Thus, if the Document is in
|
||||
part a textbook of mathematics, a Secondary Section may not explain
|
||||
any mathematics.) The relationship could be a matter of historical
|
||||
connection with the subject or with related matters, or of legal,
|
||||
commercial, philosophical, ethical or political position regarding
|
||||
them.
|
||||
|
||||
<p>The “Invariant Sections” are certain Secondary Sections whose titles
|
||||
are designated, as being those of Invariant Sections, in the notice
|
||||
that says that the Document is released under this License. If a
|
||||
section does not fit the above definition of Secondary then it is not
|
||||
allowed to be designated as Invariant. The Document may contain zero
|
||||
Invariant Sections. If the Document does not identify any Invariant
|
||||
Sections then there are none.
|
||||
|
||||
<p>The “Cover Texts” are certain short passages of text that are listed,
|
||||
as Front-Cover Texts or Back-Cover Texts, in the notice that says that
|
||||
the Document is released under this License. A Front-Cover Text may
|
||||
be at most 5 words, and a Back-Cover Text may be at most 25 words.
|
||||
|
||||
<p>A “Transparent” copy of the Document means a machine-readable copy,
|
||||
represented in a format whose specification is available to the
|
||||
general public, that is suitable for revising the document
|
||||
straightforwardly with generic text editors or (for images composed of
|
||||
pixels) generic paint programs or (for drawings) some widely available
|
||||
drawing editor, and that is suitable for input to text formatters or
|
||||
for automatic translation to a variety of formats suitable for input
|
||||
to text formatters. A copy made in an otherwise Transparent file
|
||||
format whose markup, or absence of markup, has been arranged to thwart
|
||||
or discourage subsequent modification by readers is not Transparent.
|
||||
An image format is not Transparent if used for any substantial amount
|
||||
of text. A copy that is not “Transparent” is called “Opaque”.
|
||||
|
||||
<p>Examples of suitable formats for Transparent copies include plain
|
||||
<span class="sc">ascii</span> without markup, Texinfo input format, LaTeX input
|
||||
format, <acronym>SGML</acronym> or <acronym>XML</acronym> using a publicly available
|
||||
<acronym>DTD</acronym>, and standard-conforming simple <acronym>HTML</acronym>,
|
||||
PostScript or <acronym>PDF</acronym> designed for human modification. Examples
|
||||
of transparent image formats include <acronym>PNG</acronym>, <acronym>XCF</acronym> and
|
||||
<acronym>JPG</acronym>. Opaque formats include proprietary formats that can be
|
||||
read and edited only by proprietary word processors, <acronym>SGML</acronym> or
|
||||
<acronym>XML</acronym> for which the <acronym>DTD</acronym> and/or processing tools are
|
||||
not generally available, and the machine-generated <acronym>HTML</acronym>,
|
||||
PostScript or <acronym>PDF</acronym> produced by some word processors for
|
||||
output purposes only.
|
||||
|
||||
<p>The “Title Page” means, for a printed book, the title page itself,
|
||||
plus such following pages as are needed to hold, legibly, the material
|
||||
this License requires to appear in the title page. For works in
|
||||
formats which do not have any title page as such, “Title Page” means
|
||||
the text near the most prominent appearance of the work's title,
|
||||
preceding the beginning of the body of the text.
|
||||
|
||||
<p>The “publisher” means any person or entity that distributes copies
|
||||
of the Document to the public.
|
||||
|
||||
<p>A section “Entitled XYZ” means a named subunit of the Document whose
|
||||
title either is precisely XYZ or contains XYZ in parentheses following
|
||||
text that translates XYZ in another language. (Here XYZ stands for a
|
||||
specific section name mentioned below, such as “Acknowledgements”,
|
||||
“Dedications”, “Endorsements”, or “History”.) To “Preserve the Title”
|
||||
of such a section when you modify the Document means that it remains a
|
||||
section “Entitled XYZ” according to this definition.
|
||||
|
||||
<p>The Document may include Warranty Disclaimers next to the notice which
|
||||
states that this License applies to the Document. These Warranty
|
||||
Disclaimers are considered to be included by reference in this
|
||||
License, but only as regards disclaiming warranties: any other
|
||||
implication that these Warranty Disclaimers may have is void and has
|
||||
no effect on the meaning of this License.
|
||||
|
||||
<li>VERBATIM COPYING
|
||||
|
||||
<p>You may copy and distribute the Document in any medium, either
|
||||
commercially or noncommercially, provided that this License, the
|
||||
copyright notices, and the license notice saying this License applies
|
||||
to the Document are reproduced in all copies, and that you add no other
|
||||
conditions whatsoever to those of this License. You may not use
|
||||
technical measures to obstruct or control the reading or further
|
||||
copying of the copies you make or distribute. However, you may accept
|
||||
compensation in exchange for copies. If you distribute a large enough
|
||||
number of copies you must also follow the conditions in section 3.
|
||||
|
||||
<p>You may also lend copies, under the same conditions stated above, and
|
||||
you may publicly display copies.
|
||||
|
||||
<li>COPYING IN QUANTITY
|
||||
|
||||
<p>If you publish printed copies (or copies in media that commonly have
|
||||
printed covers) of the Document, numbering more than 100, and the
|
||||
Document's license notice requires Cover Texts, you must enclose the
|
||||
copies in covers that carry, clearly and legibly, all these Cover
|
||||
Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
|
||||
the back cover. Both covers must also clearly and legibly identify
|
||||
you as the publisher of these copies. The front cover must present
|
||||
the full title with all words of the title equally prominent and
|
||||
visible. You may add other material on the covers in addition.
|
||||
Copying with changes limited to the covers, as long as they preserve
|
||||
the title of the Document and satisfy these conditions, can be treated
|
||||
as verbatim copying in other respects.
|
||||
|
||||
<p>If the required texts for either cover are too voluminous to fit
|
||||
legibly, you should put the first ones listed (as many as fit
|
||||
reasonably) on the actual cover, and continue the rest onto adjacent
|
||||
pages.
|
||||
|
||||
<p>If you publish or distribute Opaque copies of the Document numbering
|
||||
more than 100, you must either include a machine-readable Transparent
|
||||
copy along with each Opaque copy, or state in or with each Opaque copy
|
||||
a computer-network location from which the general network-using
|
||||
public has access to download using public-standard network protocols
|
||||
a complete Transparent copy of the Document, free of added material.
|
||||
If you use the latter option, you must take reasonably prudent steps,
|
||||
when you begin distribution of Opaque copies in quantity, to ensure
|
||||
that this Transparent copy will remain thus accessible at the stated
|
||||
location until at least one year after the last time you distribute an
|
||||
Opaque copy (directly or through your agents or retailers) of that
|
||||
edition to the public.
|
||||
|
||||
<p>It is requested, but not required, that you contact the authors of the
|
||||
Document well before redistributing any large number of copies, to give
|
||||
them a chance to provide you with an updated version of the Document.
|
||||
|
||||
<li>MODIFICATIONS
|
||||
|
||||
<p>You may copy and distribute a Modified Version of the Document under
|
||||
the conditions of sections 2 and 3 above, provided that you release
|
||||
the Modified Version under precisely this License, with the Modified
|
||||
Version filling the role of the Document, thus licensing distribution
|
||||
and modification of the Modified Version to whoever possesses a copy
|
||||
of it. In addition, you must do these things in the Modified Version:
|
||||
|
||||
<ol type=A start=1>
|
||||
<li>Use in the Title Page (and on the covers, if any) a title distinct
|
||||
from that of the Document, and from those of previous versions
|
||||
(which should, if there were any, be listed in the History section
|
||||
of the Document). You may use the same title as a previous version
|
||||
if the original publisher of that version gives permission.
|
||||
|
||||
<li>List on the Title Page, as authors, one or more persons or entities
|
||||
responsible for authorship of the modifications in the Modified
|
||||
Version, together with at least five of the principal authors of the
|
||||
Document (all of its principal authors, if it has fewer than five),
|
||||
unless they release you from this requirement.
|
||||
|
||||
<li>State on the Title page the name of the publisher of the
|
||||
Modified Version, as the publisher.
|
||||
|
||||
<li>Preserve all the copyright notices of the Document.
|
||||
|
||||
<li>Add an appropriate copyright notice for your modifications
|
||||
adjacent to the other copyright notices.
|
||||
|
||||
<li>Include, immediately after the copyright notices, a license notice
|
||||
giving the public permission to use the Modified Version under the
|
||||
terms of this License, in the form shown in the Addendum below.
|
||||
|
||||
<li>Preserve in that license notice the full lists of Invariant Sections
|
||||
and required Cover Texts given in the Document's license notice.
|
||||
|
||||
<li>Include an unaltered copy of this License.
|
||||
|
||||
<li>Preserve the section Entitled “History”, Preserve its Title, and add
|
||||
to it an item stating at least the title, year, new authors, and
|
||||
publisher of the Modified Version as given on the Title Page. If
|
||||
there is no section Entitled “History” in the Document, create one
|
||||
stating the title, year, authors, and publisher of the Document as
|
||||
given on its Title Page, then add an item describing the Modified
|
||||
Version as stated in the previous sentence.
|
||||
|
||||
<li>Preserve the network location, if any, given in the Document for
|
||||
public access to a Transparent copy of the Document, and likewise
|
||||
the network locations given in the Document for previous versions
|
||||
it was based on. These may be placed in the “History” section.
|
||||
You may omit a network location for a work that was published at
|
||||
least four years before the Document itself, or if the original
|
||||
publisher of the version it refers to gives permission.
|
||||
|
||||
<li>For any section Entitled “Acknowledgements” or “Dedications”, Preserve
|
||||
the Title of the section, and preserve in the section all the
|
||||
substance and tone of each of the contributor acknowledgements and/or
|
||||
dedications given therein.
|
||||
|
||||
<li>Preserve all the Invariant Sections of the Document,
|
||||
unaltered in their text and in their titles. Section numbers
|
||||
or the equivalent are not considered part of the section titles.
|
||||
|
||||
<li>Delete any section Entitled “Endorsements”. Such a section
|
||||
may not be included in the Modified Version.
|
||||
|
||||
<li>Do not retitle any existing section to be Entitled “Endorsements” or
|
||||
to conflict in title with any Invariant Section.
|
||||
|
||||
<li>Preserve any Warranty Disclaimers.
|
||||
</ol>
|
||||
|
||||
<p>If the Modified Version includes new front-matter sections or
|
||||
appendices that qualify as Secondary Sections and contain no material
|
||||
copied from the Document, you may at your option designate some or all
|
||||
of these sections as invariant. To do this, add their titles to the
|
||||
list of Invariant Sections in the Modified Version's license notice.
|
||||
These titles must be distinct from any other section titles.
|
||||
|
||||
<p>You may add a section Entitled “Endorsements”, provided it contains
|
||||
nothing but endorsements of your Modified Version by various
|
||||
parties—for example, statements of peer review or that the text has
|
||||
been approved by an organization as the authoritative definition of a
|
||||
standard.
|
||||
|
||||
<p>You may add a passage of up to five words as a Front-Cover Text, and a
|
||||
passage of up to 25 words as a Back-Cover Text, to the end of the list
|
||||
of Cover Texts in the Modified Version. Only one passage of
|
||||
Front-Cover Text and one of Back-Cover Text may be added by (or
|
||||
through arrangements made by) any one entity. If the Document already
|
||||
includes a cover text for the same cover, previously added by you or
|
||||
by arrangement made by the same entity you are acting on behalf of,
|
||||
you may not add another; but you may replace the old one, on explicit
|
||||
permission from the previous publisher that added the old one.
|
||||
|
||||
<p>The author(s) and publisher(s) of the Document do not by this License
|
||||
give permission to use their names for publicity for or to assert or
|
||||
imply endorsement of any Modified Version.
|
||||
|
||||
<li>COMBINING DOCUMENTS
|
||||
|
||||
<p>You may combine the Document with other documents released under this
|
||||
License, under the terms defined in section 4 above for modified
|
||||
versions, provided that you include in the combination all of the
|
||||
Invariant Sections of all of the original documents, unmodified, and
|
||||
list them all as Invariant Sections of your combined work in its
|
||||
license notice, and that you preserve all their Warranty Disclaimers.
|
||||
|
||||
<p>The combined work need only contain one copy of this License, and
|
||||
multiple identical Invariant Sections may be replaced with a single
|
||||
copy. If there are multiple Invariant Sections with the same name but
|
||||
different contents, make the title of each such section unique by
|
||||
adding at the end of it, in parentheses, the name of the original
|
||||
author or publisher of that section if known, or else a unique number.
|
||||
Make the same adjustment to the section titles in the list of
|
||||
Invariant Sections in the license notice of the combined work.
|
||||
|
||||
<p>In the combination, you must combine any sections Entitled “History”
|
||||
in the various original documents, forming one section Entitled
|
||||
“History”; likewise combine any sections Entitled “Acknowledgements”,
|
||||
and any sections Entitled “Dedications”. You must delete all
|
||||
sections Entitled “Endorsements.”
|
||||
|
||||
<li>COLLECTIONS OF DOCUMENTS
|
||||
|
||||
<p>You may make a collection consisting of the Document and other documents
|
||||
released under this License, and replace the individual copies of this
|
||||
License in the various documents with a single copy that is included in
|
||||
the collection, provided that you follow the rules of this License for
|
||||
verbatim copying of each of the documents in all other respects.
|
||||
|
||||
<p>You may extract a single document from such a collection, and distribute
|
||||
it individually under this License, provided you insert a copy of this
|
||||
License into the extracted document, and follow this License in all
|
||||
other respects regarding verbatim copying of that document.
|
||||
|
||||
<li>AGGREGATION WITH INDEPENDENT WORKS
|
||||
|
||||
<p>A compilation of the Document or its derivatives with other separate
|
||||
and independent documents or works, in or on a volume of a storage or
|
||||
distribution medium, is called an “aggregate” if the copyright
|
||||
resulting from the compilation is not used to limit the legal rights
|
||||
of the compilation's users beyond what the individual works permit.
|
||||
When the Document is included in an aggregate, this License does not
|
||||
apply to the other works in the aggregate which are not themselves
|
||||
derivative works of the Document.
|
||||
|
||||
<p>If the Cover Text requirement of section 3 is applicable to these
|
||||
copies of the Document, then if the Document is less than one half of
|
||||
the entire aggregate, the Document's Cover Texts may be placed on
|
||||
covers that bracket the Document within the aggregate, or the
|
||||
electronic equivalent of covers if the Document is in electronic form.
|
||||
Otherwise they must appear on printed covers that bracket the whole
|
||||
aggregate.
|
||||
|
||||
<li>TRANSLATION
|
||||
|
||||
<p>Translation is considered a kind of modification, so you may
|
||||
distribute translations of the Document under the terms of section 4.
|
||||
Replacing Invariant Sections with translations requires special
|
||||
permission from their copyright holders, but you may include
|
||||
translations of some or all Invariant Sections in addition to the
|
||||
original versions of these Invariant Sections. You may include a
|
||||
translation of this License, and all the license notices in the
|
||||
Document, and any Warranty Disclaimers, provided that you also include
|
||||
the original English version of this License and the original versions
|
||||
of those notices and disclaimers. In case of a disagreement between
|
||||
the translation and the original version of this License or a notice
|
||||
or disclaimer, the original version will prevail.
|
||||
|
||||
<p>If a section in the Document is Entitled “Acknowledgements”,
|
||||
“Dedications”, or “History”, the requirement (section 4) to Preserve
|
||||
its Title (section 1) will typically require changing the actual
|
||||
title.
|
||||
|
||||
<li>TERMINATION
|
||||
|
||||
<p>You may not copy, modify, sublicense, or distribute the Document
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense, or distribute it is void, and
|
||||
will automatically terminate your rights under this License.
|
||||
|
||||
<p>However, if you cease all violation of this License, then your license
|
||||
from a particular copyright holder is reinstated (a) provisionally,
|
||||
unless and until the copyright holder explicitly and finally
|
||||
terminates your license, and (b) permanently, if the copyright holder
|
||||
fails to notify you of the violation by some reasonable means prior to
|
||||
60 days after the cessation.
|
||||
|
||||
<p>Moreover, your license from a particular copyright holder is
|
||||
reinstated permanently if the copyright holder notifies you of the
|
||||
violation by some reasonable means, this is the first time you have
|
||||
received notice of violation of this License (for any work) from that
|
||||
copyright holder, and you cure the violation prior to 30 days after
|
||||
your receipt of the notice.
|
||||
|
||||
<p>Termination of your rights under this section does not terminate the
|
||||
licenses of parties who have received copies or rights from you under
|
||||
this License. If your rights have been terminated and not permanently
|
||||
reinstated, receipt of a copy of some or all of the same material does
|
||||
not give you any rights to use it.
|
||||
|
||||
<li>FUTURE REVISIONS OF THIS LICENSE
|
||||
|
||||
<p>The Free Software Foundation may publish new, revised versions
|
||||
of the GNU Free Documentation License from time to time. Such new
|
||||
versions will be similar in spirit to the present version, but may
|
||||
differ in detail to address new problems or concerns. See
|
||||
<a href="http://www.gnu.org/copyleft/">http://www.gnu.org/copyleft/</a>.
|
||||
|
||||
<p>Each version of the License is given a distinguishing version number.
|
||||
If the Document specifies that a particular numbered version of this
|
||||
License “or any later version” applies to it, you have the option of
|
||||
following the terms and conditions either of that specified version or
|
||||
of any later version that has been published (not as a draft) by the
|
||||
Free Software Foundation. If the Document does not specify a version
|
||||
number of this License, you may choose any version ever published (not
|
||||
as a draft) by the Free Software Foundation. If the Document
|
||||
specifies that a proxy can decide which future versions of this
|
||||
License can be used, that proxy's public statement of acceptance of a
|
||||
version permanently authorizes you to choose that version for the
|
||||
Document.
|
||||
|
||||
<li>RELICENSING
|
||||
|
||||
<p>“Massive Multiauthor Collaboration Site” (or “MMC Site”) means any
|
||||
World Wide Web server that publishes copyrightable works and also
|
||||
provides prominent facilities for anybody to edit those works. A
|
||||
public wiki that anybody can edit is an example of such a server. A
|
||||
“Massive Multiauthor Collaboration” (or “MMC”) contained in the
|
||||
site means any set of copyrightable works thus published on the MMC
|
||||
site.
|
||||
|
||||
<p>“CC-BY-SA” means the Creative Commons Attribution-Share Alike 3.0
|
||||
license published by Creative Commons Corporation, a not-for-profit
|
||||
corporation with a principal place of business in San Francisco,
|
||||
California, as well as future copyleft versions of that license
|
||||
published by that same organization.
|
||||
|
||||
<p>“Incorporate” means to publish or republish a Document, in whole or
|
||||
in part, as part of another Document.
|
||||
|
||||
<p>An MMC is “eligible for relicensing” if it is licensed under this
|
||||
License, and if all works that were first published under this License
|
||||
somewhere other than this MMC, and subsequently incorporated in whole
|
||||
or in part into the MMC, (1) had no cover texts or invariant sections,
|
||||
and (2) were thus incorporated prior to November 1, 2008.
|
||||
|
||||
<p>The operator of an MMC Site may republish an MMC contained in the site
|
||||
under CC-BY-SA on the same site at any time before August 1, 2009,
|
||||
provided the MMC is eligible for relicensing.
|
||||
|
||||
</ol>
|
||||
|
||||
<h3 class="unnumberedsec"><a name="TOC0"></a>ADDENDUM: How to use this License for your documents</h3>
|
||||
|
||||
<p>To use this License in a document you have written, include a copy of
|
||||
the License in the document and put the following copyright and
|
||||
license notices just after the title page:
|
||||
|
||||
<pre class="smallexample"> Copyright (C) <var>year</var> <var>your name</var>.
|
||||
Permission is granted to copy, distribute and/or modify this document
|
||||
under the terms of the GNU Free Documentation License, Version 1.3
|
||||
or any later version published by the Free Software Foundation;
|
||||
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
|
||||
Texts. A copy of the license is included in the section entitled ``GNU
|
||||
Free Documentation License''.
|
||||
</pre>
|
||||
<p>If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,
|
||||
replace the “with...Texts.” line with this:
|
||||
|
||||
<pre class="smallexample"> with the Invariant Sections being <var>list their titles</var>, with
|
||||
the Front-Cover Texts being <var>list</var>, and with the Back-Cover Texts
|
||||
being <var>list</var>.
|
||||
</pre>
|
||||
<p>If you have Invariant Sections without Cover Texts, or some other
|
||||
combination of the three, merge those two alternatives to suit the
|
||||
situation.
|
||||
|
||||
<p>If your document contains nontrivial examples of program code, we
|
||||
recommend releasing these examples in parallel under your choice of
|
||||
free software license, such as the GNU General Public License,
|
||||
to permit their use in free software.
|
||||
|
||||
<!-- Local Variables: -->
|
||||
<!-- ispell-local-pdict: "ispell-dict" -->
|
||||
<!-- End: -->
|
||||
<!-- man end -->
|
||||
<p><hr />
|
||||
<p><a href="./index.html">Return to the GCC Installation page</a>
|
||||
|
||||
<!-- *************************************************************************** -->
|
||||
<!-- Part 6 The End of the Document -->
|
||||
</body></html>
|
||||
|
||||
|
|
@ -0,0 +1,123 @@
|
|||
<html lang="en">
|
||||
<head>
|
||||
<title>Installing GCC</title>
|
||||
<meta http-equiv="Content-Type" content="text/html">
|
||||
<meta name="description" content="Installing GCC">
|
||||
<meta name="generator" content="makeinfo 4.11">
|
||||
<link title="Top" rel="top" href="#Top">
|
||||
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
|
||||
<!--
|
||||
Copyright (C) 1988-2013 Free Software Foundation, Inc.
|
||||
|
||||
Permission is granted to copy, distribute and/or modify this document
|
||||
under the terms of the GNU Free Documentation License, Version 1.3 or
|
||||
any later version published by the Free Software Foundation; with no
|
||||
Invariant Sections, the Front-Cover texts being (a) (see below), and
|
||||
with the Back-Cover Texts being (b) (see below). A copy of the
|
||||
license is included in the section entitled "GNU Free Documentation License".
|
||||
|
||||
(a) The FSF's Front-Cover Text is:
|
||||
|
||||
A GNU Manual
|
||||
|
||||
(b) The FSF's Back-Cover Text is:
|
||||
|
||||
You have freedom to copy and modify this GNU Manual, like GNU
|
||||
software. Copies published by the Free Software Foundation raise
|
||||
funds for GNU development.-->
|
||||
<meta http-equiv="Content-Style-Type" content="text/css">
|
||||
<style type="text/css"><!--
|
||||
pre.display { font-family:inherit }
|
||||
pre.format { font-family:inherit }
|
||||
pre.smalldisplay { font-family:inherit; font-size:smaller }
|
||||
pre.smallformat { font-family:inherit; font-size:smaller }
|
||||
pre.smallexample { font-size:smaller }
|
||||
pre.smalllisp { font-size:smaller }
|
||||
span.sc { font-variant:small-caps }
|
||||
span.roman { font-family:serif; font-weight:normal; }
|
||||
span.sansserif { font-family:sans-serif; font-weight:normal; }
|
||||
--></style>
|
||||
</head>
|
||||
<body>
|
||||
<h1 class="settitle">Installing GCC</h1>
|
||||
The latest version of this document is always available at
|
||||
<a href="http://gcc.gnu.org/install/">http://gcc.gnu.org/install/</a>.
|
||||
It refers to the current development sources, instructions for
|
||||
specific released versions are included with the sources.
|
||||
|
||||
<p>This document describes the generic installation procedure for GCC as well
|
||||
as detailing some target specific installation instructions.
|
||||
|
||||
<p>GCC includes several components that previously were separate distributions
|
||||
with their own installation instructions. This document supersedes all
|
||||
package-specific installation instructions.
|
||||
|
||||
<p><em>Before</em> starting the build/install procedure please check the
|
||||
<a href="specific.html">host/target specific installation notes</a>.
|
||||
We recommend you browse the entire generic installation instructions before
|
||||
you proceed.
|
||||
|
||||
<p>Lists of successful builds for released versions of GCC are
|
||||
available at <a href="http://gcc.gnu.org/buildstat.html">http://gcc.gnu.org/buildstat.html</a>.
|
||||
These lists are updated as new information becomes available.
|
||||
|
||||
<p>The installation procedure itself is broken into five steps.
|
||||
|
||||
<ol type=1 start=1>
|
||||
<li><a href="prerequisites.html">Prerequisites</a>
|
||||
<li><a href="download.html">Downloading the source</a>
|
||||
<li><a href="configure.html">Configuration</a>
|
||||
<li><a href="build.html">Building</a>
|
||||
<li><a href="test.html">Testing</a> (optional)
|
||||
<li><a href="finalinstall.html">Final install</a>
|
||||
</ol>
|
||||
|
||||
<p>Please note that GCC does not support ‘<samp><span class="samp">make uninstall</span></samp>’ and probably
|
||||
won't do so in the near future as this would open a can of worms. Instead,
|
||||
we suggest that you install GCC into a directory of its own and simply
|
||||
remove that directory when you do not need that specific version of GCC
|
||||
any longer, and, if shared libraries are installed there as well, no
|
||||
more binaries exist that use them.
|
||||
|
||||
<p>There are also some <a href="old.html">old installation instructions</a>,
|
||||
which are mostly obsolete but still contain some information which has
|
||||
not yet been merged into the main part of this manual.
|
||||
|
||||
<p><hr />
|
||||
<p><a href="./index.html">Return to the GCC Installation page</a>
|
||||
|
||||
<p>Copyright © 1988-2013 Free Software Foundation, Inc.
|
||||
<pre class="sp">
|
||||
|
||||
</pre>
|
||||
Permission is granted to copy, distribute and/or modify this document
|
||||
under the terms of the GNU Free Documentation License, Version 1.3 or
|
||||
any later version published by the Free Software Foundation; with no
|
||||
Invariant Sections, the Front-Cover texts being (a) (see below), and
|
||||
with the Back-Cover Texts being (b) (see below). A copy of the
|
||||
license is included in the section entitled “<a href="./gfdl.html">GNU Free Documentation License</a>”.
|
||||
|
||||
<p>(a) The FSF's Front-Cover Text is:
|
||||
|
||||
<p>A GNU Manual
|
||||
|
||||
<p>(b) The FSF's Back-Cover Text is:
|
||||
|
||||
<p>You have freedom to copy and modify this GNU Manual, like GNU
|
||||
software. Copies published by the Free Software Foundation raise
|
||||
funds for GNU development.
|
||||
|
||||
<!-- ***Prerequisites************************************************** -->
|
||||
<!-- ***Downloading the source************************************************** -->
|
||||
<!-- ***Configuration*********************************************************** -->
|
||||
<!-- ***Building**************************************************************** -->
|
||||
<!-- ***Testing***************************************************************** -->
|
||||
<!-- ***Final install*********************************************************** -->
|
||||
<!-- ***Binaries**************************************************************** -->
|
||||
<!-- ***Specific**************************************************************** -->
|
||||
<!-- ***Old documentation****************************************************** -->
|
||||
<!-- ***GFDL******************************************************************** -->
|
||||
<!-- *************************************************************************** -->
|
||||
<!-- Part 6 The End of the Document -->
|
||||
</body></html>
|
||||
|
||||
|
|
@ -0,0 +1,201 @@
|
|||
<html lang="en">
|
||||
<head>
|
||||
<title>Installing GCC: Old documentation</title>
|
||||
<meta http-equiv="Content-Type" content="text/html">
|
||||
<meta name="description" content="Installing GCC: Old documentation">
|
||||
<meta name="generator" content="makeinfo 4.11">
|
||||
<link title="Top" rel="top" href="#Top">
|
||||
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
|
||||
<!--
|
||||
Copyright (C) 1988-2013 Free Software Foundation, Inc.
|
||||
|
||||
Permission is granted to copy, distribute and/or modify this document
|
||||
under the terms of the GNU Free Documentation License, Version 1.3 or
|
||||
any later version published by the Free Software Foundation; with no
|
||||
Invariant Sections, the Front-Cover texts being (a) (see below), and
|
||||
with the Back-Cover Texts being (b) (see below). A copy of the
|
||||
license is included in the section entitled "GNU Free Documentation License".
|
||||
|
||||
(a) The FSF's Front-Cover Text is:
|
||||
|
||||
A GNU Manual
|
||||
|
||||
(b) The FSF's Back-Cover Text is:
|
||||
|
||||
You have freedom to copy and modify this GNU Manual, like GNU
|
||||
software. Copies published by the Free Software Foundation raise
|
||||
funds for GNU development.-->
|
||||
<meta http-equiv="Content-Style-Type" content="text/css">
|
||||
<style type="text/css"><!--
|
||||
pre.display { font-family:inherit }
|
||||
pre.format { font-family:inherit }
|
||||
pre.smalldisplay { font-family:inherit; font-size:smaller }
|
||||
pre.smallformat { font-family:inherit; font-size:smaller }
|
||||
pre.smallexample { font-size:smaller }
|
||||
pre.smalllisp { font-size:smaller }
|
||||
span.sc { font-variant:small-caps }
|
||||
span.roman { font-family:serif; font-weight:normal; }
|
||||
span.sansserif { font-family:sans-serif; font-weight:normal; }
|
||||
--></style>
|
||||
</head>
|
||||
<body>
|
||||
<h1 class="settitle">Installing GCC: Old documentation</h1>
|
||||
<h1 align="center">Old installation documentation</h1>
|
||||
|
||||
<p>Note most of this information is out of date and superseded by the
|
||||
previous chapters of this manual. It is provided for historical
|
||||
reference only, because of a lack of volunteers to merge it into the
|
||||
main manual.
|
||||
|
||||
<p>Here is the procedure for installing GCC on a GNU or Unix system.
|
||||
|
||||
<ol type=1 start=1>
|
||||
<li>If you have chosen a configuration for GCC which requires other GNU
|
||||
tools (such as GAS or the GNU linker) instead of the standard system
|
||||
tools, install the required tools in the build directory under the names
|
||||
<samp><span class="file">as</span></samp>, <samp><span class="file">ld</span></samp> or whatever is appropriate.
|
||||
|
||||
<p>Alternatively, you can do subsequent compilation using a value of the
|
||||
<code>PATH</code> environment variable such that the necessary GNU tools come
|
||||
before the standard system tools.
|
||||
|
||||
<li>Specify the host, build and target machine configurations. You do this
|
||||
when you run the <samp><span class="file">configure</span></samp> script.
|
||||
|
||||
<p>The <dfn>build</dfn> machine is the system which you are using, the
|
||||
<dfn>host</dfn> machine is the system where you want to run the resulting
|
||||
compiler (normally the build machine), and the <dfn>target</dfn> machine is
|
||||
the system for which you want the compiler to generate code.
|
||||
|
||||
<p>If you are building a compiler to produce code for the machine it runs
|
||||
on (a native compiler), you normally do not need to specify any operands
|
||||
to <samp><span class="file">configure</span></samp>; it will try to guess the type of machine you are on
|
||||
and use that as the build, host and target machines. So you don't need
|
||||
to specify a configuration when building a native compiler unless
|
||||
<samp><span class="file">configure</span></samp> cannot figure out what your configuration is or guesses
|
||||
wrong.
|
||||
|
||||
<p>In those cases, specify the build machine's <dfn>configuration name</dfn>
|
||||
with the <samp><span class="option">--host</span></samp> option; the host and target will default to be
|
||||
the same as the host machine.
|
||||
|
||||
<p>Here is an example:
|
||||
|
||||
<pre class="smallexample"> ./configure --host=sparc-sun-sunos4.1
|
||||
</pre>
|
||||
<p>A configuration name may be canonical or it may be more or less
|
||||
abbreviated.
|
||||
|
||||
<p>A canonical configuration name has three parts, separated by dashes.
|
||||
It looks like this: ‘<samp><var>cpu</var><span class="samp">-</span><var>company</var><span class="samp">-</span><var>system</var></samp>’.
|
||||
(The three parts may themselves contain dashes; <samp><span class="file">configure</span></samp>
|
||||
can figure out which dashes serve which purpose.) For example,
|
||||
‘<samp><span class="samp">m68k-sun-sunos4.1</span></samp>’ specifies a Sun 3.
|
||||
|
||||
<p>You can also replace parts of the configuration by nicknames or aliases.
|
||||
For example, ‘<samp><span class="samp">sun3</span></samp>’ stands for ‘<samp><span class="samp">m68k-sun</span></samp>’, so
|
||||
‘<samp><span class="samp">sun3-sunos4.1</span></samp>’ is another way to specify a Sun 3.
|
||||
|
||||
<p>You can specify a version number after any of the system types, and some
|
||||
of the CPU types. In most cases, the version is irrelevant, and will be
|
||||
ignored. So you might as well specify the version if you know it.
|
||||
|
||||
<p>See <a href="#Configurations">Configurations</a>, for a list of supported configuration names and
|
||||
notes on many of the configurations. You should check the notes in that
|
||||
section before proceeding any further with the installation of GCC.
|
||||
|
||||
</ol>
|
||||
|
||||
<p><h2><a name="Configurations"></a>Configurations Supported by GCC</h2><a name="index-configurations-supported-by-GCC-1"></a>
|
||||
Here are the possible CPU types:
|
||||
|
||||
<blockquote>
|
||||
<!-- gmicro, fx80, spur and tahoe omitted since they don't work. -->
|
||||
1750a, a29k, alpha, arm, avr, c<var>n</var>, clipper, dsp16xx, elxsi, fr30, h8300,
|
||||
hppa1.0, hppa1.1, i370, i386, i486, i586, i686, i786, i860, i960, ip2k, m32r,
|
||||
m68000, m68k, m88k, mcore, mips, mipsel, mips64, mips64el,
|
||||
mn10200, mn10300, ns32k, pdp11, powerpc, powerpcle, romp, rs6000, sh, sparc,
|
||||
sparclite, sparc64, v850, vax, we32k.
|
||||
</blockquote>
|
||||
|
||||
<p>Here are the recognized company names. As you can see, customary
|
||||
abbreviations are used rather than the longer official names.
|
||||
|
||||
<!-- What should be done about merlin, tek*, dolphin? -->
|
||||
<blockquote>
|
||||
acorn, alliant, altos, apollo, apple, att, bull,
|
||||
cbm, convergent, convex, crds, dec, dg, dolphin,
|
||||
elxsi, encore, harris, hitachi, hp, ibm, intergraph, isi,
|
||||
mips, motorola, ncr, next, ns, omron, plexus,
|
||||
sequent, sgi, sony, sun, tti, unicom, wrs.
|
||||
</blockquote>
|
||||
|
||||
<p>The company name is meaningful only to disambiguate when the rest of
|
||||
the information supplied is insufficient. You can omit it, writing
|
||||
just ‘<samp><var>cpu</var><span class="samp">-</span><var>system</var></samp>’, if it is not needed. For example,
|
||||
‘<samp><span class="samp">vax-ultrix4.2</span></samp>’ is equivalent to ‘<samp><span class="samp">vax-dec-ultrix4.2</span></samp>’.
|
||||
|
||||
<p>Here is a list of system types:
|
||||
|
||||
<blockquote>
|
||||
386bsd, aix, acis, amigaos, aos, aout, aux, bosx, bsd, clix, coff, ctix, cxux,
|
||||
dgux, dynix, ebmon, ecoff, elf, esix, freebsd, hms, genix, gnu, linux,
|
||||
linux-gnu, hiux, hpux, iris, irix, isc, luna, lynxos, mach, minix, msdos, mvs,
|
||||
netbsd, newsos, nindy, ns, osf, osfrose, ptx, riscix, riscos, rtu, sco, sim,
|
||||
solaris, sunos, sym, sysv, udi, ultrix, unicos, uniplus, unos, vms, vsta,
|
||||
vxworks, winnt, xenix.
|
||||
</blockquote>
|
||||
|
||||
<p class="noindent">You can omit the system type; then <samp><span class="file">configure</span></samp> guesses the
|
||||
operating system from the CPU and company.
|
||||
|
||||
<p>You can add a version number to the system type; this may or may not
|
||||
make a difference. For example, you can write ‘<samp><span class="samp">bsd4.3</span></samp>’ or
|
||||
‘<samp><span class="samp">bsd4.4</span></samp>’ to distinguish versions of BSD. In practice, the version
|
||||
number is most needed for ‘<samp><span class="samp">sysv3</span></samp>’ and ‘<samp><span class="samp">sysv4</span></samp>’, which are often
|
||||
treated differently.
|
||||
|
||||
<p>‘<samp><span class="samp">linux-gnu</span></samp>’ is the canonical name for the GNU/Linux target; however
|
||||
GCC will also accept ‘<samp><span class="samp">linux</span></samp>’. The version of the kernel in use is
|
||||
not relevant on these systems. A suffix such as ‘<samp><span class="samp">libc1</span></samp>’ or ‘<samp><span class="samp">aout</span></samp>’
|
||||
distinguishes major versions of the C library; all of the suffixed versions
|
||||
are obsolete.
|
||||
|
||||
<p>If you specify an impossible combination such as ‘<samp><span class="samp">i860-dg-vms</span></samp>’,
|
||||
then you may get an error message from <samp><span class="file">configure</span></samp>, or it may
|
||||
ignore part of the information and do the best it can with the rest.
|
||||
<samp><span class="file">configure</span></samp> always prints the canonical name for the alternative
|
||||
that it used. GCC does not support all possible alternatives.
|
||||
|
||||
<p>Often a particular model of machine has a name. Many machine names are
|
||||
recognized as aliases for CPU/company combinations. Thus, the machine
|
||||
name ‘<samp><span class="samp">sun3</span></samp>’, mentioned above, is an alias for ‘<samp><span class="samp">m68k-sun</span></samp>’.
|
||||
Sometimes we accept a company name as a machine name, when the name is
|
||||
popularly used for a particular machine. Here is a table of the known
|
||||
machine names:
|
||||
|
||||
<blockquote>
|
||||
3300, 3b1, 3b<var>n</var>, 7300, altos3068, altos,
|
||||
apollo68, att-7300, balance,
|
||||
convex-c<var>n</var>, crds, decstation-3100,
|
||||
decstation, delta, encore,
|
||||
fx2800, gmicro, hp7<var>nn</var>, hp8<var>nn</var>,
|
||||
hp9k2<var>nn</var>, hp9k3<var>nn</var>, hp9k7<var>nn</var>,
|
||||
hp9k8<var>nn</var>, iris4d, iris, isi68,
|
||||
m3230, magnum, merlin, miniframe,
|
||||
mmax, news-3600, news800, news, next,
|
||||
pbd, pc532, pmax, powerpc, powerpcle, ps2, risc-news,
|
||||
rtpc, sun2, sun386i, sun386, sun3,
|
||||
sun4, symmetry, tower-32, tower.
|
||||
</blockquote>
|
||||
|
||||
<p class="noindent">Remember that a machine name specifies both the cpu type and the company
|
||||
name.
|
||||
<hr />
|
||||
<p><a href="./index.html">Return to the GCC Installation page</a>
|
||||
|
||||
<!-- ***GFDL******************************************************************** -->
|
||||
<!-- *************************************************************************** -->
|
||||
<!-- Part 6 The End of the Document -->
|
||||
</body></html>
|
||||
|
||||
|
|
@ -0,0 +1,296 @@
|
|||
<html lang="en">
|
||||
<head>
|
||||
<title>Prerequisites for GCC</title>
|
||||
<meta http-equiv="Content-Type" content="text/html">
|
||||
<meta name="description" content="Prerequisites for GCC">
|
||||
<meta name="generator" content="makeinfo 4.11">
|
||||
<link title="Top" rel="top" href="#Top">
|
||||
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
|
||||
<!--
|
||||
Copyright (C) 1988-2013 Free Software Foundation, Inc.
|
||||
|
||||
Permission is granted to copy, distribute and/or modify this document
|
||||
under the terms of the GNU Free Documentation License, Version 1.3 or
|
||||
any later version published by the Free Software Foundation; with no
|
||||
Invariant Sections, the Front-Cover texts being (a) (see below), and
|
||||
with the Back-Cover Texts being (b) (see below). A copy of the
|
||||
license is included in the section entitled "GNU Free Documentation License".
|
||||
|
||||
(a) The FSF's Front-Cover Text is:
|
||||
|
||||
A GNU Manual
|
||||
|
||||
(b) The FSF's Back-Cover Text is:
|
||||
|
||||
You have freedom to copy and modify this GNU Manual, like GNU
|
||||
software. Copies published by the Free Software Foundation raise
|
||||
funds for GNU development.-->
|
||||
<meta http-equiv="Content-Style-Type" content="text/css">
|
||||
<style type="text/css"><!--
|
||||
pre.display { font-family:inherit }
|
||||
pre.format { font-family:inherit }
|
||||
pre.smalldisplay { font-family:inherit; font-size:smaller }
|
||||
pre.smallformat { font-family:inherit; font-size:smaller }
|
||||
pre.smallexample { font-size:smaller }
|
||||
pre.smalllisp { font-size:smaller }
|
||||
span.sc { font-variant:small-caps }
|
||||
span.roman { font-family:serif; font-weight:normal; }
|
||||
span.sansserif { font-family:sans-serif; font-weight:normal; }
|
||||
--></style>
|
||||
</head>
|
||||
<body>
|
||||
<h1 class="settitle">Prerequisites for GCC</h1>
|
||||
<a name="index-Prerequisites-1"></a>
|
||||
GCC requires that various tools and packages be available for use in the
|
||||
build procedure. Modifying GCC sources requires additional tools
|
||||
described below.
|
||||
|
||||
<h3 class="heading"><a name="TOC0"></a>Tools/packages necessary for building GCC</h3>
|
||||
|
||||
<dl>
|
||||
<dt>ISO C++98 compiler<dd>Necessary to bootstrap GCC, although versions of GCC prior
|
||||
to 4.8 also allow bootstrapping with a ISO C89 compiler and versions
|
||||
of GCC prior to 3.4 also allow bootstrapping with a traditional
|
||||
(K&R) C compiler.
|
||||
|
||||
<p>To build all languages in a cross-compiler or other configuration where
|
||||
3-stage bootstrap is not performed, you need to start with an existing
|
||||
GCC binary (version 3.4 or later) because source code for language
|
||||
frontends other than C might use GCC extensions.
|
||||
|
||||
<p>Note that to bootstrap GCC with versions of GCC earlier than 3.4, you
|
||||
may need to use <samp><span class="option">--disable-stage1-checking</span></samp>, though
|
||||
bootstrapping the compiler with such earlier compilers is strongly
|
||||
discouraged.
|
||||
|
||||
<br><dt>GNAT<dd>
|
||||
In order to build the Ada compiler (GNAT) you must already have GNAT
|
||||
installed because portions of the Ada frontend are written in Ada (with
|
||||
GNAT extensions.) Refer to the Ada installation instructions for more
|
||||
specific information.
|
||||
|
||||
<br><dt>A “working” POSIX compatible shell, or GNU bash<dd>
|
||||
Necessary when running <samp><span class="command">configure</span></samp> because some
|
||||
<samp><span class="command">/bin/sh</span></samp> shells have bugs and may crash when configuring the
|
||||
target libraries. In other cases, <samp><span class="command">/bin/sh</span></samp> or <samp><span class="command">ksh</span></samp>
|
||||
have disastrous corner-case performance problems. This
|
||||
can cause target <samp><span class="command">configure</span></samp> runs to literally take days to
|
||||
complete in some cases.
|
||||
|
||||
<p>So on some platforms <samp><span class="command">/bin/ksh</span></samp> is sufficient, on others it
|
||||
isn't. See the host/target specific instructions for your platform, or
|
||||
use <samp><span class="command">bash</span></samp> to be sure. Then set <samp><span class="env">CONFIG_SHELL</span></samp> in your
|
||||
environment to your “good” shell prior to running
|
||||
<samp><span class="command">configure</span></samp>/<samp><span class="command">make</span></samp>.
|
||||
|
||||
<p><samp><span class="command">zsh</span></samp> is not a fully compliant POSIX shell and will not
|
||||
work when configuring GCC.
|
||||
|
||||
<br><dt>A POSIX or SVR4 awk<dd>
|
||||
Necessary for creating some of the generated source files for GCC.
|
||||
If in doubt, use a recent GNU awk version, as some of the older ones
|
||||
are broken. GNU awk version 3.1.5 is known to work.
|
||||
|
||||
<br><dt>GNU binutils<dd>
|
||||
Necessary in some circumstances, optional in others. See the
|
||||
host/target specific instructions for your platform for the exact
|
||||
requirements.
|
||||
|
||||
<br><dt>gzip version 1.2.4 (or later) or<dt>bzip2 version 1.0.2 (or later)<dd>
|
||||
Necessary to uncompress GCC <samp><span class="command">tar</span></samp> files when source code is
|
||||
obtained via FTP mirror sites.
|
||||
|
||||
<br><dt>GNU make version 3.80 (or later)<dd>
|
||||
You must have GNU make installed to build GCC.
|
||||
|
||||
<br><dt>GNU tar version 1.14 (or later)<dd>
|
||||
Necessary (only on some platforms) to untar the source code. Many
|
||||
systems' <samp><span class="command">tar</span></samp> programs will also work, only try GNU
|
||||
<samp><span class="command">tar</span></samp> if you have problems.
|
||||
|
||||
<br><dt>Perl version 5.6.1 (or later)<dd>
|
||||
Necessary when targeting Darwin, building ‘<samp><span class="samp">libstdc++</span></samp>’,
|
||||
and not using <samp><span class="option">--disable-symvers</span></samp>.
|
||||
Necessary when targeting Solaris 2 with Sun <samp><span class="command">ld</span></samp> and not using
|
||||
<samp><span class="option">--disable-symvers</span></samp>. The bundled <samp><span class="command">perl</span></samp> in Solaris 8
|
||||
and up works.
|
||||
|
||||
<p>Necessary when regenerating <samp><span class="file">Makefile</span></samp> dependencies in libiberty.
|
||||
Necessary when regenerating <samp><span class="file">libiberty/functions.texi</span></samp>.
|
||||
Necessary when generating manpages from Texinfo manuals.
|
||||
Used by various scripts to generate some files included in SVN (mainly
|
||||
Unicode-related and rarely changing) from source tables.
|
||||
|
||||
<br><dt><samp><span class="command">jar</span></samp>, or InfoZIP (<samp><span class="command">zip</span></samp> and <samp><span class="command">unzip</span></samp>)<dd>
|
||||
Necessary to build libgcj, the GCJ runtime.
|
||||
|
||||
</dl>
|
||||
|
||||
<p>Several support libraries are necessary to build GCC, some are required,
|
||||
others optional. While any sufficiently new version of required tools
|
||||
usually work, library requirements are generally stricter. Newer
|
||||
versions may work in some cases, but it's safer to use the exact
|
||||
versions documented. We appreciate bug reports about problems with
|
||||
newer versions, though. If your OS vendor provides packages for the
|
||||
support libraries then using those packages may be the simplest way to
|
||||
install the libraries.
|
||||
|
||||
<dl>
|
||||
<dt>GNU Multiple Precision Library (GMP) version 4.3.2 (or later)<dd>
|
||||
Necessary to build GCC. If a GMP source distribution is found in a
|
||||
subdirectory of your GCC sources named <samp><span class="file">gmp</span></samp>, it will be built
|
||||
together with GCC. Alternatively, if GMP is already installed but it
|
||||
is not in your library search path, you will have to configure with the
|
||||
<samp><span class="option">--with-gmp</span></samp> configure option. See also <samp><span class="option">--with-gmp-lib</span></samp>
|
||||
and <samp><span class="option">--with-gmp-include</span></samp>.
|
||||
|
||||
<br><dt>MPFR Library version 2.4.2 (or later)<dd>
|
||||
Necessary to build GCC. It can be downloaded from
|
||||
<a href="http://www.mpfr.org/">http://www.mpfr.org/</a>. If an MPFR source distribution is found
|
||||
in a subdirectory of your GCC sources named <samp><span class="file">mpfr</span></samp>, it will be
|
||||
built together with GCC. Alternatively, if MPFR is already installed
|
||||
but it is not in your default library search path, the
|
||||
<samp><span class="option">--with-mpfr</span></samp> configure option should be used. See also
|
||||
<samp><span class="option">--with-mpfr-lib</span></samp> and <samp><span class="option">--with-mpfr-include</span></samp>.
|
||||
|
||||
<br><dt>MPC Library version 0.8.1 (or later)<dd>
|
||||
Necessary to build GCC. It can be downloaded from
|
||||
<a href="http://www.multiprecision.org/">http://www.multiprecision.org/</a>. If an MPC source distribution
|
||||
is found in a subdirectory of your GCC sources named <samp><span class="file">mpc</span></samp>, it
|
||||
will be built together with GCC. Alternatively, if MPC is already
|
||||
installed but it is not in your default library search path, the
|
||||
<samp><span class="option">--with-mpc</span></samp> configure option should be used. See also
|
||||
<samp><span class="option">--with-mpc-lib</span></samp> and <samp><span class="option">--with-mpc-include</span></samp>.
|
||||
|
||||
<br><dt>ISL Library version 0.11.1<dd>
|
||||
Necessary to build GCC with the Graphite loop optimizations.
|
||||
It can be downloaded from <a href="ftp://gcc.gnu.org/pub/gcc/infrastructure/">ftp://gcc.gnu.org/pub/gcc/infrastructure/</a>
|
||||
as <samp><span class="file">isl-0.11.1.tar.bz2</span></samp>.
|
||||
|
||||
<p>The <samp><span class="option">--with-isl</span></samp> configure option should be used if ISL is not
|
||||
installed in your default library search path.
|
||||
|
||||
<br><dt>CLooG 0.18.0<dd>
|
||||
Necessary to build GCC with the Graphite loop optimizations. It can be
|
||||
downloaded from <a href="ftp://gcc.gnu.org/pub/gcc/infrastructure/">ftp://gcc.gnu.org/pub/gcc/infrastructure/</a> as
|
||||
<samp><span class="file">cloog-0.18.0.tar.gz</span></samp>. The <samp><span class="option">--with-cloog</span></samp> configure option should
|
||||
be used if CLooG is not installed in your default library search path.
|
||||
CLooG needs to be built against ISL 0.11.1. Use <samp><span class="option">--with-isl=system</span></samp>
|
||||
to direct CLooG to pick up an already installed ISL, otherwise it will use
|
||||
ISL 0.11.1 as bundled with CLooG. CLooG needs to be configured to use GMP
|
||||
internally, use <samp><span class="option">--with-bits=gmp</span></samp> to direct it to do that.
|
||||
|
||||
</dl>
|
||||
|
||||
<h3 class="heading"><a name="TOC1"></a>Tools/packages necessary for modifying GCC</h3>
|
||||
|
||||
<dl>
|
||||
<dt>autoconf version 2.64<dt>GNU m4 version 1.4.6 (or later)<dd>
|
||||
Necessary when modifying <samp><span class="file">configure.ac</span></samp>, <samp><span class="file">aclocal.m4</span></samp>, etc.
|
||||
to regenerate <samp><span class="file">configure</span></samp> and <samp><span class="file">config.in</span></samp> files.
|
||||
|
||||
<br><dt>automake version 1.11.1<dd>
|
||||
Necessary when modifying a <samp><span class="file">Makefile.am</span></samp> file to regenerate its
|
||||
associated <samp><span class="file">Makefile.in</span></samp>.
|
||||
|
||||
<p>Much of GCC does not use automake, so directly edit the <samp><span class="file">Makefile.in</span></samp>
|
||||
file. Specifically this applies to the <samp><span class="file">gcc</span></samp>, <samp><span class="file">intl</span></samp>,
|
||||
<samp><span class="file">libcpp</span></samp>, <samp><span class="file">libiberty</span></samp>, <samp><span class="file">libobjc</span></samp> directories as well
|
||||
as any of their subdirectories.
|
||||
|
||||
<p>For directories that use automake, GCC requires the latest release in
|
||||
the 1.11 series, which is currently 1.11.1. When regenerating a directory
|
||||
to a newer version, please update all the directories using an older 1.11
|
||||
to the latest released version.
|
||||
|
||||
<br><dt>gettext version 0.14.5 (or later)<dd>
|
||||
Needed to regenerate <samp><span class="file">gcc.pot</span></samp>.
|
||||
|
||||
<br><dt>gperf version 2.7.2 (or later)<dd>
|
||||
Necessary when modifying <samp><span class="command">gperf</span></samp> input files, e.g.
|
||||
<samp><span class="file">gcc/cp/cfns.gperf</span></samp> to regenerate its associated header file, e.g.
|
||||
<samp><span class="file">gcc/cp/cfns.h</span></samp>.
|
||||
|
||||
<br><dt>DejaGnu 1.4.4<dt>Expect<dt>Tcl<dd>
|
||||
Necessary to run the GCC testsuite; see the section on testing for details.
|
||||
|
||||
<br><dt>autogen version 5.5.4 (or later) and<dt>guile version 1.4.1 (or later)<dd>
|
||||
Necessary to regenerate <samp><span class="file">fixinc/fixincl.x</span></samp> from
|
||||
<samp><span class="file">fixinc/inclhack.def</span></samp> and <samp><span class="file">fixinc/*.tpl</span></samp>.
|
||||
|
||||
<p>Necessary to run ‘<samp><span class="samp">make check</span></samp>’ for <samp><span class="file">fixinc</span></samp>.
|
||||
|
||||
<p>Necessary to regenerate the top level <samp><span class="file">Makefile.in</span></samp> file from
|
||||
<samp><span class="file">Makefile.tpl</span></samp> and <samp><span class="file">Makefile.def</span></samp>.
|
||||
|
||||
<br><dt>Flex version 2.5.4 (or later)<dd>
|
||||
Necessary when modifying <samp><span class="file">*.l</span></samp> files.
|
||||
|
||||
<p>Necessary to build GCC during development because the generated output
|
||||
files are not included in the SVN repository. They are included in
|
||||
releases.
|
||||
|
||||
<br><dt>Texinfo version 4.7 (or later)<dd>
|
||||
Necessary for running <samp><span class="command">makeinfo</span></samp> when modifying <samp><span class="file">*.texi</span></samp>
|
||||
files to test your changes.
|
||||
|
||||
<p>Necessary for running <samp><span class="command">make dvi</span></samp> or <samp><span class="command">make pdf</span></samp> to
|
||||
create printable documentation in DVI or PDF format. Texinfo version
|
||||
4.8 or later is required for <samp><span class="command">make pdf</span></samp>.
|
||||
|
||||
<p>Necessary to build GCC documentation during development because the
|
||||
generated output files are not included in the SVN repository. They are
|
||||
included in releases.
|
||||
|
||||
<br><dt>TeX (any working version)<dd>
|
||||
Necessary for running <samp><span class="command">texi2dvi</span></samp> and <samp><span class="command">texi2pdf</span></samp>, which
|
||||
are used when running <samp><span class="command">make dvi</span></samp> or <samp><span class="command">make pdf</span></samp> to create
|
||||
DVI or PDF files, respectively.
|
||||
|
||||
<br><dt>SVN (any version)<dt>SSH (any version)<dd>
|
||||
Necessary to access the SVN repository. Public releases and weekly
|
||||
snapshots of the development sources are also available via FTP.
|
||||
|
||||
<br><dt>GNU diffutils version 2.7 (or later)<dd>
|
||||
Useful when submitting patches for the GCC source code.
|
||||
|
||||
<br><dt>patch version 2.5.4 (or later)<dd>
|
||||
Necessary when applying patches, created with <samp><span class="command">diff</span></samp>, to one's
|
||||
own sources.
|
||||
|
||||
<br><dt>ecj1<dt>gjavah<dd>
|
||||
If you wish to modify <samp><span class="file">.java</span></samp> files in libjava, you will need to
|
||||
configure with <samp><span class="option">--enable-java-maintainer-mode</span></samp>, and you will need
|
||||
to have executables named <samp><span class="command">ecj1</span></samp> and <samp><span class="command">gjavah</span></samp> in your path.
|
||||
The <samp><span class="command">ecj1</span></samp> executable should run the Eclipse Java compiler via
|
||||
the GCC-specific entry point. You can download a suitable jar from
|
||||
<a href="ftp://sourceware.org/pub/java/">ftp://sourceware.org/pub/java/</a>, or by running the script
|
||||
<samp><span class="command">contrib/download_ecj</span></samp>.
|
||||
|
||||
<br><dt>antlr.jar version 2.7.1 (or later)<dt>antlr binary<dd>
|
||||
If you wish to build the <samp><span class="command">gjdoc</span></samp> binary in libjava, you will
|
||||
need to have an <samp><span class="file">antlr.jar</span></samp> library available. The library is
|
||||
searched for in system locations but can be specified with
|
||||
<samp><span class="option">--with-antlr-jar=</span></samp> instead. When configuring with
|
||||
<samp><span class="option">--enable-java-maintainer-mode</span></samp>, you will need to have one of
|
||||
the executables named <samp><span class="command">cantlr</span></samp>, <samp><span class="command">runantlr</span></samp> or
|
||||
<samp><span class="command">antlr</span></samp> in your path.
|
||||
|
||||
</dl>
|
||||
|
||||
<p><hr />
|
||||
<p><a href="./index.html">Return to the GCC Installation page</a>
|
||||
|
||||
<!-- ***Downloading the source************************************************** -->
|
||||
<!-- ***Configuration*********************************************************** -->
|
||||
<!-- ***Building**************************************************************** -->
|
||||
<!-- ***Testing***************************************************************** -->
|
||||
<!-- ***Final install*********************************************************** -->
|
||||
<!-- ***Binaries**************************************************************** -->
|
||||
<!-- ***Specific**************************************************************** -->
|
||||
<!-- ***Old documentation****************************************************** -->
|
||||
<!-- ***GFDL******************************************************************** -->
|
||||
<!-- *************************************************************************** -->
|
||||
<!-- Part 6 The End of the Document -->
|
||||
</body></html>
|
||||
|
||||
File diff suppressed because it is too large
Load diff
|
|
@ -0,0 +1,234 @@
|
|||
<html lang="en">
|
||||
<head>
|
||||
<title>Installing GCC: Testing</title>
|
||||
<meta http-equiv="Content-Type" content="text/html">
|
||||
<meta name="description" content="Installing GCC: Testing">
|
||||
<meta name="generator" content="makeinfo 4.11">
|
||||
<link title="Top" rel="top" href="#Top">
|
||||
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
|
||||
<!--
|
||||
Copyright (C) 1988-2013 Free Software Foundation, Inc.
|
||||
|
||||
Permission is granted to copy, distribute and/or modify this document
|
||||
under the terms of the GNU Free Documentation License, Version 1.3 or
|
||||
any later version published by the Free Software Foundation; with no
|
||||
Invariant Sections, the Front-Cover texts being (a) (see below), and
|
||||
with the Back-Cover Texts being (b) (see below). A copy of the
|
||||
license is included in the section entitled "GNU Free Documentation License".
|
||||
|
||||
(a) The FSF's Front-Cover Text is:
|
||||
|
||||
A GNU Manual
|
||||
|
||||
(b) The FSF's Back-Cover Text is:
|
||||
|
||||
You have freedom to copy and modify this GNU Manual, like GNU
|
||||
software. Copies published by the Free Software Foundation raise
|
||||
funds for GNU development.-->
|
||||
<meta http-equiv="Content-Style-Type" content="text/css">
|
||||
<style type="text/css"><!--
|
||||
pre.display { font-family:inherit }
|
||||
pre.format { font-family:inherit }
|
||||
pre.smalldisplay { font-family:inherit; font-size:smaller }
|
||||
pre.smallformat { font-family:inherit; font-size:smaller }
|
||||
pre.smallexample { font-size:smaller }
|
||||
pre.smalllisp { font-size:smaller }
|
||||
span.sc { font-variant:small-caps }
|
||||
span.roman { font-family:serif; font-weight:normal; }
|
||||
span.sansserif { font-family:sans-serif; font-weight:normal; }
|
||||
--></style>
|
||||
</head>
|
||||
<body>
|
||||
<h1 class="settitle">Installing GCC: Testing</h1>
|
||||
<a name="index-Testing-1"></a><a name="index-Installing-GCC_003a-Testing-2"></a><a name="index-Testsuite-3"></a>
|
||||
Before you install GCC, we encourage you to run the testsuites and to
|
||||
compare your results with results from a similar configuration that have
|
||||
been submitted to the
|
||||
<a href="http://gcc.gnu.org/ml/gcc-testresults/">gcc-testresults mailing list</a>.
|
||||
Some of these archived results are linked from the build status lists
|
||||
at <a href="http://gcc.gnu.org/buildstat.html">http://gcc.gnu.org/buildstat.html</a>, although not everyone who
|
||||
reports a successful build runs the testsuites and submits the results.
|
||||
This step is optional and may require you to download additional software,
|
||||
but it can give you confidence in your new GCC installation or point out
|
||||
problems before you install and start using your new GCC.
|
||||
|
||||
<p>First, you must have <a href="download.html">downloaded the testsuites</a>.
|
||||
These are part of the full distribution, but if you downloaded the
|
||||
“core” compiler plus any front ends, you must download the testsuites
|
||||
separately.
|
||||
|
||||
<p>Second, you must have the testing tools installed. This includes
|
||||
<a href="http://www.gnu.org/software/dejagnu/">DejaGnu</a>, Tcl, and Expect;
|
||||
the DejaGnu site has links to these.
|
||||
|
||||
<p>If the directories where <samp><span class="command">runtest</span></samp> and <samp><span class="command">expect</span></samp> were
|
||||
installed are not in the <samp><span class="env">PATH</span></samp>, you may need to set the following
|
||||
environment variables appropriately, as in the following example (which
|
||||
assumes that DejaGnu has been installed under <samp><span class="file">/usr/local</span></samp>):
|
||||
|
||||
<pre class="smallexample"> TCL_LIBRARY = /usr/local/share/tcl8.0
|
||||
DEJAGNULIBS = /usr/local/share/dejagnu
|
||||
</pre>
|
||||
<p>(On systems such as Cygwin, these paths are required to be actual
|
||||
paths, not mounts or links; presumably this is due to some lack of
|
||||
portability in the DejaGnu code.)
|
||||
|
||||
<p>Finally, you can run the testsuite (which may take a long time):
|
||||
<pre class="smallexample"> cd <var>objdir</var>; make -k check
|
||||
</pre>
|
||||
<p>This will test various components of GCC, such as compiler
|
||||
front ends and runtime libraries. While running the testsuite, DejaGnu
|
||||
might emit some harmless messages resembling
|
||||
‘<samp><span class="samp">WARNING: Couldn't find the global config file.</span></samp>’ or
|
||||
‘<samp><span class="samp">WARNING: Couldn't find tool init file</span></samp>’ that can be ignored.
|
||||
|
||||
<p>If you are testing a cross-compiler, you may want to run the testsuite
|
||||
on a simulator as described at <a href="http://gcc.gnu.org/simtest-howto.html">http://gcc.gnu.org/simtest-howto.html</a>.
|
||||
|
||||
<h3 class="section"><a name="TOC0"></a>How can you run the testsuite on selected tests?</h3>
|
||||
|
||||
<p>In order to run sets of tests selectively, there are targets
|
||||
‘<samp><span class="samp">make check-gcc</span></samp>’ and language specific ‘<samp><span class="samp">make check-c</span></samp>’,
|
||||
‘<samp><span class="samp">make check-c++</span></samp>’, ‘<samp><span class="samp">make check-fortran</span></samp>’, ‘<samp><span class="samp">make check-java</span></samp>’,
|
||||
‘<samp><span class="samp">make check-ada</span></samp>’, ‘<samp><span class="samp">make check-objc</span></samp>’, ‘<samp><span class="samp">make check-obj-c++</span></samp>’,
|
||||
‘<samp><span class="samp">make check-lto</span></samp>’
|
||||
in the <samp><span class="file">gcc</span></samp> subdirectory of the object directory. You can also
|
||||
just run ‘<samp><span class="samp">make check</span></samp>’ in a subdirectory of the object directory.
|
||||
|
||||
<p>A more selective way to just run all <samp><span class="command">gcc</span></samp> execute tests in the
|
||||
testsuite is to use
|
||||
|
||||
<pre class="smallexample"> make check-gcc RUNTESTFLAGS="execute.exp <var>other-options</var>"
|
||||
</pre>
|
||||
<p>Likewise, in order to run only the <samp><span class="command">g++</span></samp> “old-deja” tests in
|
||||
the testsuite with filenames matching ‘<samp><span class="samp">9805*</span></samp>’, you would use
|
||||
|
||||
<pre class="smallexample"> make check-g++ RUNTESTFLAGS="old-deja.exp=9805* <var>other-options</var>"
|
||||
</pre>
|
||||
<p>The <samp><span class="file">*.exp</span></samp> files are located in the testsuite directories of the GCC
|
||||
source, the most important ones being <samp><span class="file">compile.exp</span></samp>,
|
||||
<samp><span class="file">execute.exp</span></samp>, <samp><span class="file">dg.exp</span></samp> and <samp><span class="file">old-deja.exp</span></samp>.
|
||||
To get a list of the possible <samp><span class="file">*.exp</span></samp> files, pipe the
|
||||
output of ‘<samp><span class="samp">make check</span></samp>’ into a file and look at the
|
||||
‘<samp><span class="samp">Running ... .exp</span></samp>’ lines.
|
||||
|
||||
<h3 class="section"><a name="TOC1"></a>Passing options and running multiple testsuites</h3>
|
||||
|
||||
<p>You can pass multiple options to the testsuite using the
|
||||
‘<samp><span class="samp">--target_board</span></samp>’ option of DejaGNU, either passed as part of
|
||||
‘<samp><span class="samp">RUNTESTFLAGS</span></samp>’, or directly to <samp><span class="command">runtest</span></samp> if you prefer to
|
||||
work outside the makefiles. For example,
|
||||
|
||||
<pre class="smallexample"> make check-g++ RUNTESTFLAGS="--target_board=unix/-O3/-fmerge-constants"
|
||||
</pre>
|
||||
<p>will run the standard <samp><span class="command">g++</span></samp> testsuites (“unix” is the target name
|
||||
for a standard native testsuite situation), passing
|
||||
‘<samp><span class="samp">-O3 -fmerge-constants</span></samp>’ to the compiler on every test, i.e.,
|
||||
slashes separate options.
|
||||
|
||||
<p>You can run the testsuites multiple times using combinations of options
|
||||
with a syntax similar to the brace expansion of popular shells:
|
||||
|
||||
<pre class="smallexample"> ..."--target_board=arm-sim\{-mhard-float,-msoft-float\}\{-O1,-O2,-O3,\}"
|
||||
</pre>
|
||||
<p>(Note the empty option caused by the trailing comma in the final group.)
|
||||
The following will run each testsuite eight times using the ‘<samp><span class="samp">arm-sim</span></samp>’
|
||||
target, as if you had specified all possible combinations yourself:
|
||||
|
||||
<pre class="smallexample"> --target_board='arm-sim/-mhard-float/-O1 \
|
||||
arm-sim/-mhard-float/-O2 \
|
||||
arm-sim/-mhard-float/-O3 \
|
||||
arm-sim/-mhard-float \
|
||||
arm-sim/-msoft-float/-O1 \
|
||||
arm-sim/-msoft-float/-O2 \
|
||||
arm-sim/-msoft-float/-O3 \
|
||||
arm-sim/-msoft-float'
|
||||
</pre>
|
||||
<p>They can be combined as many times as you wish, in arbitrary ways. This
|
||||
list:
|
||||
|
||||
<pre class="smallexample"> ..."--target_board=unix/-Wextra\{-O3,-fno-strength\}\{-fomit-frame,\}"
|
||||
</pre>
|
||||
<p>will generate four combinations, all involving ‘<samp><span class="samp">-Wextra</span></samp>’.
|
||||
|
||||
<p>The disadvantage to this method is that the testsuites are run in serial,
|
||||
which is a waste on multiprocessor systems. For users with GNU Make and
|
||||
a shell which performs brace expansion, you can run the testsuites in
|
||||
parallel by having the shell perform the combinations and <samp><span class="command">make</span></samp>
|
||||
do the parallel runs. Instead of using ‘<samp><span class="samp">--target_board</span></samp>’, use a
|
||||
special makefile target:
|
||||
|
||||
<pre class="smallexample"> make -j<var>N</var> check-<var>testsuite</var>//<var>test-target</var>/<var>option1</var>/<var>option2</var>/...
|
||||
</pre>
|
||||
<p>For example,
|
||||
|
||||
<pre class="smallexample"> make -j3 check-gcc//sh-hms-sim/{-m1,-m2,-m3,-m3e,-m4}/{,-nofpu}
|
||||
</pre>
|
||||
<p>will run three concurrent “make-gcc” testsuites, eventually testing all
|
||||
ten combinations as described above. Note that this is currently only
|
||||
supported in the <samp><span class="file">gcc</span></samp> subdirectory. (To see how this works, try
|
||||
typing <samp><span class="command">echo</span></samp> before the example given here.)
|
||||
|
||||
<h3 class="section"><a name="TOC2"></a>Additional testing for Java Class Libraries</h3>
|
||||
|
||||
<p>The Java runtime tests can be executed via ‘<samp><span class="samp">make check</span></samp>’
|
||||
in the <samp><var>target</var><span class="file">/libjava/testsuite</span></samp> directory in
|
||||
the build tree.
|
||||
|
||||
<p>The <a href="http://sourceware.org/mauve/">Mauve Project</a> provides
|
||||
a suite of tests for the Java Class Libraries. This suite can be run
|
||||
as part of libgcj testing by placing the Mauve tree within the libjava
|
||||
testsuite at <samp><span class="file">libjava/testsuite/libjava.mauve/mauve</span></samp>, or by
|
||||
specifying the location of that tree when invoking ‘<samp><span class="samp">make</span></samp>’, as in
|
||||
‘<samp><span class="samp">make MAUVEDIR=~/mauve check</span></samp>’.
|
||||
|
||||
<h3 class="section"><a name="TOC3"></a>How to interpret test results</h3>
|
||||
|
||||
<p>The result of running the testsuite are various <samp><span class="file">*.sum</span></samp> and <samp><span class="file">*.log</span></samp>
|
||||
files in the testsuite subdirectories. The <samp><span class="file">*.log</span></samp> files contain a
|
||||
detailed log of the compiler invocations and the corresponding
|
||||
results, the <samp><span class="file">*.sum</span></samp> files summarize the results. These summaries
|
||||
contain status codes for all tests:
|
||||
|
||||
<ul>
|
||||
<li>PASS: the test passed as expected
|
||||
<li>XPASS: the test unexpectedly passed
|
||||
<li>FAIL: the test unexpectedly failed
|
||||
<li>XFAIL: the test failed as expected
|
||||
<li>UNSUPPORTED: the test is not supported on this platform
|
||||
<li>ERROR: the testsuite detected an error
|
||||
<li>WARNING: the testsuite detected a possible problem
|
||||
</ul>
|
||||
|
||||
<p>It is normal for some tests to report unexpected failures. At the
|
||||
current time the testing harness does not allow fine grained control
|
||||
over whether or not a test is expected to fail. This problem should
|
||||
be fixed in future releases.
|
||||
|
||||
<h3 class="section"><a name="TOC4"></a>Submitting test results</h3>
|
||||
|
||||
<p>If you want to report the results to the GCC project, use the
|
||||
<samp><span class="file">contrib/test_summary</span></samp> shell script. Start it in the <var>objdir</var> with
|
||||
|
||||
<pre class="smallexample"> <var>srcdir</var>/contrib/test_summary -p your_commentary.txt \
|
||||
-m gcc-testresults@gcc.gnu.org |sh
|
||||
</pre>
|
||||
<p>This script uses the <samp><span class="command">Mail</span></samp> program to send the results, so
|
||||
make sure it is in your <samp><span class="env">PATH</span></samp>. The file <samp><span class="file">your_commentary.txt</span></samp> is
|
||||
prepended to the testsuite summary and should contain any special
|
||||
remarks you have on your results or your build environment. Please
|
||||
do not edit the testsuite result block or the subject line, as these
|
||||
messages may be automatically processed.
|
||||
|
||||
<p><hr />
|
||||
<p><a href="./index.html">Return to the GCC Installation page</a>
|
||||
|
||||
<!-- ***Final install*********************************************************** -->
|
||||
<!-- ***Binaries**************************************************************** -->
|
||||
<!-- ***Specific**************************************************************** -->
|
||||
<!-- ***Old documentation****************************************************** -->
|
||||
<!-- ***GFDL******************************************************************** -->
|
||||
<!-- *************************************************************************** -->
|
||||
<!-- Part 6 The End of the Document -->
|
||||
</body></html>
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue