1 This is doc/gccinstall.info, produced by makeinfo version 4.8 from
2 /scratch/mitchell/gcc-releases/gcc-4.1.1/gcc-4.1.1/gcc/doc/install.texi.
4 Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
5 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
7 Permission is granted to copy, distribute and/or modify this document
8 under the terms of the GNU Free Documentation License, Version 1.2 or
9 any later version published by the Free Software Foundation; with no
10 Invariant Sections, the Front-Cover texts being (a) (see below), and
11 with the Back-Cover Texts being (b) (see below). A copy of the license
12 is included in the section entitled "GNU Free Documentation License".
14 (a) The FSF's Front-Cover Text is:
18 (b) The FSF's Back-Cover Text is:
20 You have freedom to copy and modify this GNU Manual, like GNU
21 software. Copies published by the Free Software Foundation raise
22 funds for GNU development.
24 Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
25 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
27 Permission is granted to copy, distribute and/or modify this document
28 under the terms of the GNU Free Documentation License, Version 1.2 or
29 any later version published by the Free Software Foundation; with no
30 Invariant Sections, the Front-Cover texts being (a) (see below), and
31 with the Back-Cover Texts being (b) (see below). A copy of the license
32 is included in the section entitled "GNU Free Documentation License".
34 (a) The FSF's Front-Cover Text is:
38 (b) The FSF's Back-Cover Text is:
40 You have freedom to copy and modify this GNU Manual, like GNU
41 software. Copies published by the Free Software Foundation raise
42 funds for GNU development.
44 INFO-DIR-SECTION Programming
46 * gccinstall: (gccinstall). Installing the GNU Compiler Collection.
50 File: gccinstall.info, Node: Top, Up: (dir)
54 * Installing GCC:: This document describes the generic installation
55 procedure for GCC as well as detailing some target
56 specific installation instructions.
58 * Specific:: Host/target specific installation notes for GCC.
59 * Binaries:: Where to get pre-compiled binaries.
61 * Old:: Old installation documentation.
63 * GNU Free Documentation License:: How you can copy and share this manual.
64 * Concept Index:: This index has two entries.
67 File: gccinstall.info, Node: Installing GCC, Next: Binaries, Up: Top
72 The latest version of this document is always available at
73 http://gcc.gnu.org/install/.
75 This document describes the generic installation procedure for GCC
76 as well as detailing some target specific installation instructions.
78 GCC includes several components that previously were separate
79 distributions with their own installation instructions. This document
80 supersedes all package specific installation instructions.
82 _Before_ starting the build/install procedure please check the *Note
83 host/target specific installation notes: Specific. We recommend you
84 browse the entire generic installation instructions before you proceed.
86 Lists of successful builds for released versions of GCC are
87 available at `http://gcc.gnu.org/buildstat.html'. These lists are
88 updated as new information becomes available.
90 The installation procedure itself is broken into five steps.
95 * Downloading the source::
98 * Testing:: (optional)
101 Please note that GCC does not support `make uninstall' and probably
102 won't do so in the near future as this would open a can of worms.
103 Instead, we suggest that you install GCC into a directory of its own
104 and simply remove that directory when you do not need that specific
105 version of GCC any longer, and, if shared libraries are installed there
106 as well, no more binaries exist that use them.
109 File: gccinstall.info, Node: Prerequisites, Next: Downloading the source, Up: Installing GCC
114 GCC requires that various tools and packages be available for use in
115 the build procedure. Modifying GCC sources requires additional tools
118 Tools/packages necessary for building GCC
119 =========================================
122 Necessary to bootstrap GCC, although versions of GCC prior to 3.4
123 also allow bootstrapping with a traditional (K&R) C compiler.
125 To build all languages in a cross-compiler or other configuration
126 where 3-stage bootstrap is not performed, you need to start with
127 an existing GCC binary (version 2.95 or later) because source code
128 for language frontends other than C might use GCC extensions.
131 In order to build the Ada compiler (GNAT) you must already have
132 GNAT installed because portions of the Ada frontend are written in
133 Ada (with GNAT extensions.) Refer to the Ada installation
134 instructions for more specific information.
136 A "working" POSIX compatible shell, or GNU bash
137 Necessary when running `configure' because some `/bin/sh' shells
138 have bugs and may crash when configuring the target libraries. In
139 other cases, `/bin/sh' or `ksh' have disastrous corner-case
140 performance problems. This can cause target `configure' runs to
141 literally take days to complete in some cases.
143 So on some platforms `/bin/ksh' is sufficient, on others it isn't.
144 See the host/target specific instructions for your platform, or
145 use `bash' to be sure. Then set `CONFIG_SHELL' in your
146 environment to your "good" shell prior to running
149 `zsh' is not a fully compliant POSIX shell and will not work when
153 Necessary in some circumstances, optional in others. See the
154 host/target specific instructions for your platform for the exact
157 gzip version 1.2.4 (or later) or
158 bzip2 version 1.0.2 (or later)
159 Necessary to uncompress GCC `tar' files when source code is
160 obtained via FTP mirror sites.
162 GNU make version 3.79.1 (or later)
163 You must have GNU make installed to build GCC.
165 GNU tar version 1.14 (or later)
166 Necessary (only on some platforms) to untar the source code. Many
167 systems' `tar' programs will also work, only try GNU `tar' if you
170 GNU Multiple Precision Library (GMP) version 4.0 (or later)
171 Necessary to build the Fortran frontend. If you don't have it
172 installed in your library search path, you will have to configure
173 with the `--with-gmp' or `--with-gmp-dir' configure option.
176 Necessary to build the Fortran frontend. It can be downloaded from
177 `http://www.mpfr.org/'. It is also included in the current GMP
178 release (4.1.3) when configured with `--enable-mpfr'.
180 The `--with-mpfr' or `--with-mpfr-dir' configure option should be
181 used if your MPFR Library is not installed in your library search
185 Tools/packages necessary for modifying GCC
186 ==========================================
188 autoconf versions 2.13 and 2.59
189 GNU m4 version 1.4 (or later)
190 Necessary when modifying `configure.ac', `aclocal.m4', etc. to
191 regenerate `configure' and `config.in' files. Most directories
192 require autoconf 2.59 (exactly), but the toplevel still requires
193 autoconf 2.13 (exactly).
195 automake versions 1.9.3
196 Necessary when modifying a `Makefile.am' file to regenerate its
197 associated `Makefile.in'.
199 Much of GCC does not use automake, so directly edit the
200 `Makefile.in' file. Specifically this applies to the `gcc',
201 `intl', `libcpp', `libiberty', `libobjc' directories as well as
202 any of their subdirectories.
204 For directories that use automake, GCC requires the latest release
205 in the 1.9.x series, which is currently 1.9.3. When regenerating
206 a directory to a newer version, please update all the directories
207 using an older 1.9.x to the latest released version.
209 gettext version 0.14.5 (or later)
210 Needed to regenerate `gcc.pot'.
212 gperf version 2.7.2 (or later)
213 Necessary when modifying `gperf' input files, e.g.
214 `gcc/cp/cfns.gperf' to regenerate its associated header file, e.g.
220 Necessary to run the GCC testsuite; see the section on testing for
223 autogen version 5.5.4 (or later) and
224 guile version 1.4.1 (or later)
225 Necessary to regenerate `fixinc/fixincl.x' from
226 `fixinc/inclhack.def' and `fixinc/*.tpl'.
228 Necessary to run `make check' for `fixinc'.
230 Necessary to regenerate the top level `Makefile.in' file from
231 `Makefile.tpl' and `Makefile.def'.
233 GNU Bison version 1.28 (or later)
234 Berkeley `yacc' (`byacc') is also reported to work other than for
237 Necessary when modifying `*.y' files.
239 Necessary to build GCC during development because the generated
240 output files are not included in the SVN repository. They are
241 included in releases.
243 Flex version 2.5.4 (or later)
244 Necessary when modifying `*.l' files.
246 Necessary to build GCC during development because the generated
247 output files are not included in the SVN repository. They are
248 included in releases.
250 Texinfo version 4.2 (or later)
251 Necessary for running `makeinfo' when modifying `*.texi' files to
254 Necessary to build GCC documentation during development because the
255 generated output files are not included in the SVN repository.
256 They are included in releases.
258 TeX (any working version)
259 Necessary for running `texi2dvi', used when running `make dvi' to
264 Necessary to access the SVN repository. Public releases and weekly
265 snapshots of the development sources are also available via FTP.
267 Perl version 5.6.1 (or later)
268 Necessary when regenerating `Makefile' dependencies in libiberty.
269 Necessary when regenerating `libiberty/functions.texi'. Necessary
270 when generating manpages from Texinfo manuals. Necessary when
271 targetting Darwin, building libstdc++, and not using
272 `--disable-symvers'. Used by various scripts to generate some
273 files included in SVN (mainly Unicode-related and rarely changing)
276 GNU diffutils version 2.7 (or later)
277 Useful when submitting patches for the GCC source code.
279 patch version 2.5.4 (or later)
280 Necessary when applying patches, created with `diff', to one's own
285 File: gccinstall.info, Node: Downloading the source, Next: Configuration, Prev: Prerequisites, Up: Installing GCC
290 GCC is distributed via SVN and FTP tarballs compressed with `gzip' or
291 `bzip2'. It is possible to download a full distribution or specific
294 Please refer to the releases web page for information on how to
297 The full distribution includes the C, C++, Objective-C, Fortran 77,
298 Fortran (in case of GCC 4.0 and later), Java, and Ada (in case of GCC
299 3.1 and later) compilers. The full distribution also includes runtime
300 libraries for C++, Objective-C, Fortran 77, Fortran, and Java. In GCC
301 3.0 and later versions, GNU compiler testsuites are also included in
302 the full distribution.
304 If you choose to download specific components, you must download the
305 core GCC distribution plus any language specific distributions you wish
306 to use. The core distribution includes the C language front end as
307 well as the shared components. Each language has a tarball which
308 includes the language front end as well as the language runtime (when
311 Unpack the core distribution as well as any language specific
312 distributions in the same directory.
314 If you also intend to build binutils (either to upgrade an existing
315 installation or for use in place of the corresponding tools of your
316 OS), unpack the binutils distribution either in the same directory or a
317 separate one. In the latter case, add symbolic links to any components
318 of the binutils you intend to build alongside the compiler (`bfd',
319 `binutils', `gas', `gprof', `ld', `opcodes', ...) to the directory
320 containing the GCC sources.
323 File: gccinstall.info, Node: Configuration, Next: Building, Prev: Downloading the source, Up: Installing GCC
325 4 Installing GCC: Configuration
326 *******************************
328 Like most GNU software, GCC must be configured before it can be
329 built. This document describes the recommended configuration procedure
330 for both native and cross targets.
332 We use SRCDIR to refer to the toplevel source directory for GCC; we
333 use OBJDIR to refer to the toplevel build/object directory.
335 If you obtained the sources via SVN, SRCDIR must refer to the top
336 `gcc' directory, the one where the `MAINTAINERS' can be found, and not
337 its `gcc' subdirectory, otherwise the build will fail.
339 If either SRCDIR or OBJDIR is located on an automounted NFS file
340 system, the shell's built-in `pwd' command will return temporary
341 pathnames. Using these can lead to various sorts of build problems.
342 To avoid this issue, set the `PWDCMD' environment variable to an
343 automounter-aware `pwd' command, e.g., `pawd' or `amq -w', during the
344 configuration and build phases.
346 First, we *highly* recommend that GCC be built into a separate
347 directory than the sources which does *not* reside within the source
348 tree. This is how we generally build GCC; building where SRCDIR ==
349 OBJDIR should still work, but doesn't get extensive testing; building
350 where OBJDIR is a subdirectory of SRCDIR is unsupported.
352 If you have previously built GCC in the same directory for a
353 different target machine, do `make distclean' to delete all files that
354 might be invalid. One of the files this deletes is `Makefile'; if
355 `make distclean' complains that `Makefile' does not exist or issues a
356 message like "don't know how to make distclean" it probably means that
357 the directory is already suitably clean. However, with the recommended
358 method of building in a separate OBJDIR, you should simply use a
359 different OBJDIR for each target.
361 Second, when configuring a native system, either `cc' or `gcc' must
362 be in your path or you must set `CC' in your environment before running
363 configure. Otherwise the configuration scripts may fail.
365 Note that the bootstrap compiler and the resulting GCC must be link
366 compatible, else the bootstrap will fail with linker errors about
367 incompatible object file formats. Several multilibed targets are
368 affected by this requirement, see *Note host/target specific
369 installation notes: Specific.
375 % SRCDIR/configure [OPTIONS] [TARGET]
380 * GCC has code to correctly determine the correct value for TARGET
381 for nearly all native systems. Therefore, we highly recommend you
382 not provide a configure target when configuring a native compiler.
384 * TARGET must be specified as `--target=TARGET' when configuring a
385 cross compiler; examples of valid targets would be m68k-coff,
388 * Specifying just TARGET instead of `--target=TARGET' implies that
389 the host defaults to TARGET.
391 Options specification
392 =====================
394 Use OPTIONS to override several configure time options for GCC. A list
395 of supported OPTIONS follows; `configure --help' may list other
396 options, but those not listed below may not work and should not
399 Note that each `--enable' option has a corresponding `--disable'
400 option and that each `--with' option has a corresponding `--without'
404 Specify the toplevel installation directory. This is the
405 recommended way to install the tools into a directory other than
406 the default. The toplevel installation directory defaults to
409 We *highly* recommend against DIRNAME being the same or a
410 subdirectory of OBJDIR or vice versa. If specifying a directory
411 beneath a user's home directory tree, some shells will not expand
412 DIRNAME correctly if it contains the `~' metacharacter; use
415 The following standard `autoconf' options are supported. Normally
416 you should not need to use these options.
417 `--exec-prefix=DIRNAME'
418 Specify the toplevel installation directory for
419 architecture-dependent files. The default is `PREFIX'.
422 Specify the installation directory for the executables called
423 by users (such as `gcc' and `g++'). The default is
427 Specify the installation directory for object code libraries
428 and internal data files of GCC. The default is
431 `--libexecdir=DIRNAME'
432 Specify the installation directory for internal executables
433 of GCC. The default is `EXEC-PREFIX/libexec'.
435 `--with-slibdir=DIRNAME'
436 Specify the installation directory for the shared libgcc
437 library. The default is `LIBDIR'.
440 Specify the installation directory for documentation in info
441 format. The default is `PREFIX/info'.
444 Specify the installation directory for some
445 architecture-independent data files referenced by GCC. The
446 default is `PREFIX/share'.
449 Specify the installation directory for manual pages. The
450 default is `PREFIX/man'. (Note that the manual pages are
451 only extracts from the full GCC manuals, which are provided
452 in Texinfo format. The manpages are derived by an automatic
453 conversion process from parts of the full manual.)
455 `--with-gxx-include-dir=DIRNAME'
456 Specify the installation directory for G++ header files. The
457 default is `PREFIX/include/c++/VERSION'.
460 `--program-prefix=PREFIX'
461 GCC supports some transformations of the names of its programs when
462 installing them. This option prepends PREFIX to the names of
463 programs to install in BINDIR (see above). For example, specifying
464 `--program-prefix=foo-' would result in `gcc' being installed as
465 `/usr/local/bin/foo-gcc'.
467 `--program-suffix=SUFFIX'
468 Appends SUFFIX to the names of programs to install in BINDIR (see
469 above). For example, specifying `--program-suffix=-3.1' would
470 result in `gcc' being installed as `/usr/local/bin/gcc-3.1'.
472 `--program-transform-name=PATTERN'
473 Applies the `sed' script PATTERN to be applied to the names of
474 programs to install in BINDIR (see above). PATTERN has to consist
475 of one or more basic `sed' editing commands, separated by
476 semicolons. For example, if you want the `gcc' program name to be
477 transformed to the installed program `/usr/local/bin/myowngcc' and
478 the `g++' program name to be transformed to
479 `/usr/local/bin/gspecial++' without changing other program names,
480 you could use the pattern
481 `--program-transform-name='s/^gcc$/myowngcc/; s/^g++$/gspecial++/''
482 to achieve this effect.
484 All three options can be combined and used together, resulting in
485 more complex conversion patterns. As a basic rule, PREFIX (and
486 SUFFIX) are prepended (appended) before further transformations
487 can happen with a special transformation script PATTERN.
489 As currently implemented, this option only takes effect for native
490 builds; cross compiler binaries' names are not transformed even
491 when a transformation is explicitly asked for by one of these
494 For native builds, some of the installed programs are also
495 installed with the target alias in front of their name, as in
496 `i686-pc-linux-gnu-gcc'. All of the above transformations happen
497 before the target alias is prepended to the name--so, specifying
498 `--program-prefix=foo-' and `program-suffix=-3.1', the resulting
499 binary would be installed as
500 `/usr/local/bin/i686-pc-linux-gnu-foo-gcc-3.1'.
502 As a last shortcoming, none of the installed Ada programs are
503 transformed yet, which will be fixed in some time.
505 `--with-local-prefix=DIRNAME'
506 Specify the installation directory for local include files. The
507 default is `/usr/local'. Specify this option if you want the
508 compiler to search directory `DIRNAME/include' for locally
509 installed header files _instead_ of `/usr/local/include'.
511 You should specify `--with-local-prefix' *only* if your site has a
512 different convention (not `/usr/local') for where to put
515 The default value for `--with-local-prefix' is `/usr/local'
516 regardless of the value of `--prefix'. Specifying `--prefix' has
517 no effect on which directory GCC searches for local header files.
518 This may seem counterintuitive, but actually it is logical.
520 The purpose of `--prefix' is to specify where to _install GCC_.
521 The local header files in `/usr/local/include'--if you put any in
522 that directory--are not part of GCC. They are part of other
523 programs--perhaps many others. (GCC installs its own header files
524 in another directory which is based on the `--prefix' value.)
526 Both the local-prefix include directory and the GCC-prefix include
527 directory are part of GCC's "system include" directories.
528 Although these two directories are not fixed, they need to be
529 searched in the proper order for the correct processing of the
530 include_next directive. The local-prefix include directory is
531 searched before the GCC-prefix include directory. Another
532 characteristic of system include directories is that pedantic
533 warnings are turned off for headers in these directories.
535 Some autoconf macros add `-I DIRECTORY' options to the compiler
536 command line, to ensure that directories containing installed
537 packages' headers are searched. When DIRECTORY is one of GCC's
538 system include directories, GCC will ignore the option so that
539 system directories continue to be processed in the correct order.
540 This may result in a search order different from what was
541 specified but the directory will still be searched.
543 GCC automatically searches for ordinary libraries using
544 `GCC_EXEC_PREFIX'. Thus, when the same installation prefix is
545 used for both GCC and packages, GCC will automatically search for
546 both headers and libraries. This provides a configuration that is
547 easy to use. GCC behaves in a manner similar to that when it is
548 installed as a system compiler in `/usr'.
550 Sites that need to install multiple versions of GCC may not want to
551 use the above simple configuration. It is possible to use the
552 `--program-prefix', `--program-suffix' and
553 `--program-transform-name' options to install multiple versions
554 into a single directory, but it may be simpler to use different
555 prefixes and the `--with-local-prefix' option to specify the
556 location of the site-specific files for each version. It will
557 then be necessary for users to specify explicitly the location of
558 local site libraries (e.g., with `LIBRARY_PATH').
560 The same value can be used for both `--with-local-prefix' and
561 `--prefix' provided it is not `/usr'. This can be used to avoid
562 the default search of `/usr/local/include'.
564 *Do not* specify `/usr' as the `--with-local-prefix'! The
565 directory you use for `--with-local-prefix' *must not* contain any
566 of the system's standard header files. If it did contain them,
567 certain programs would be miscompiled (including GNU Emacs, on
568 certain targets), because this would override and nullify the
569 header file corrections made by the `fixincludes' script.
571 Indications are that people who use this option use it based on
572 mistaken ideas of what it is for. People use it as if it
573 specified where to install part of GCC. Perhaps they make this
574 assumption because installing GCC creates the directory.
576 `--enable-shared[=PACKAGE[,...]]'
577 Build shared versions of libraries, if shared libraries are
578 supported on the target platform. Unlike GCC 2.95.x and earlier,
579 shared libraries are enabled by default on all platforms that
580 support shared libraries.
582 If a list of packages is given as an argument, build shared
583 libraries only for the listed packages. For other packages, only
584 static libraries will be built. Package names currently
585 recognized in the GCC tree are `libgcc' (also known as `gcc'),
586 `libstdc++' (not `libstdc++-v3'), `libffi', `zlib', `boehm-gc',
587 `ada', `libada', `libjava' and `libobjc'. Note `libiberty' does
588 not support shared libraries at all.
590 Use `--disable-shared' to build only static libraries. Note that
591 `--disable-shared' does not accept a list of package names as
592 argument, only `--enable-shared' does.
595 Specify that the compiler should assume that the assembler it
596 finds is the GNU assembler. However, this does not modify the
597 rules to find an assembler and will result in confusion if the
598 assembler found is not actually the GNU assembler. (Confusion may
599 also result if the compiler finds the GNU assembler but has not
600 been configured with `--with-gnu-as'.) If you have more than one
601 assembler installed on your system, you may want to use this
602 option in connection with `--with-as=PATHNAME'.
604 The following systems are the only ones where it makes a difference
605 whether you use the GNU assembler. On any other system,
606 `--with-gnu-as' has no effect.
622 * `sparc-sun-solaris2.ANY'
624 * `sparc64-ANY-solaris2.ANY'
626 On the systems listed above (except for the HP-PA, the SPARC, for
627 ISC on the 386, if you use the GNU assembler, you should also use
628 the GNU linker (and specify `--with-gnu-ld').
631 Specify that the compiler should use the assembler pointed to by
632 PATHNAME, rather than the one found by the standard rules to find
633 an assembler, which are:
634 * Check the `LIBEXEC/gcc/TARGET/VERSION' directory, where
635 LIBEXEC defaults to `EXEC-PREFIX/libexec' and EXEC-PREFIX
636 defaults to PREFIX which defaults to `/usr/local' unless
637 overridden by the `--prefix=PATHNAME' switch described above.
638 TARGET is the target system triple, such as
639 `sparc-sun-solaris2.7', and VERSION denotes the GCC version,
642 * Check operating system specific directories (e.g.
643 `/usr/ccs/bin' on Sun Solaris 2).
644 Note that these rules do not check for the value of `PATH'. You
645 may want to use `--with-as' if no assembler is installed in the
646 directories listed above, or if you have multiple assemblers
647 installed and want to choose one that is not found by the above
651 Same as `--with-gnu-as' but for the linker.
654 Same as `--with-as' but for the linker.
657 Specify that stabs debugging information should be used instead of
658 whatever format the host normally uses. Normally GCC uses the
659 same debug format as the host system.
661 On MIPS based systems and on Alphas, you must specify whether you
662 want GCC to create the normal ECOFF debugging format, or to use
663 BSD-style stabs passed through the ECOFF symbol table. The normal
664 ECOFF debug format cannot fully handle languages other than C.
665 BSD stabs format can handle other languages, but it only works
666 with the GNU debugger GDB.
668 Normally, GCC uses the ECOFF debugging format by default; if you
669 prefer BSD stabs, specify `--with-stabs' when you configure GCC.
671 No matter which default you choose when you configure GCC, the user
672 can use the `-gcoff' and `-gstabs+' options to specify explicitly
673 the debug format for a particular compilation.
675 `--with-stabs' is meaningful on the ISC system on the 386, also, if
676 `--with-gas' is used. It selects use of stabs debugging
677 information embedded in COFF output. This kind of debugging
678 information supports C++ well; ordinary COFF debugging information
681 `--with-stabs' is also meaningful on 386 systems running SVR4. It
682 selects use of stabs debugging information embedded in ELF output.
683 The C++ compiler currently (2.6.0) does not support the DWARF
684 debugging information normally used on 386 SVR4 platforms; stabs
685 provide a workable alternative. This requires gas and gdb, as the
686 normal SVR4 tools can not generate or interpret stabs.
689 Specify that multiple target libraries to support different target
690 variants, calling conventions, etc should not be built. The
691 default is to build a predefined set of them.
693 Some targets provide finer-grained control over which multilibs
694 are built (e.g., `--disable-softfloat'):
699 fpu, 26bit, underscore, interwork, biendian, nofmult.
702 softfloat, m68881, m68000, m68020.
705 single-float, biendian, softfloat.
707 `powerpc*-*-*, rs6000*-*-*'
708 aix64, pthread, softfloat, powercpu, powerpccpu, powerpcos,
713 Specify that the target supports threads. This affects the
714 Objective-C compiler and runtime library, and exception handling
715 for other languages like C++ and Java. On some systems, this is
718 In general, the best (and, in many cases, the only known) threading
719 model available will be configured for use. Beware that on some
720 systems, GCC has not been taught what threading models are
721 generally available for the system. In this case,
722 `--enable-threads' is an alias for `--enable-threads=single'.
725 Specify that threading support should be disabled for the system.
726 This is an alias for `--enable-threads=single'.
728 `--enable-threads=LIB'
729 Specify that LIB is the thread support library. This affects the
730 Objective-C compiler and runtime library, and exception handling
731 for other languages like C++ and Java. The possibilities for LIB
741 Ada tasking support. For non-Ada programs, this setting is
742 equivalent to `single'. When used in conjunction with the
743 Ada run time, it causes GCC to use the same thread primitives
744 as Ada uses. This option is necessary when using both Ada
745 and the back end exception handling, which is the default for
749 Generic MACH thread support, known to work on NeXTSTEP.
750 (Please note that the file needed to support this
751 configuration, `gthr-mach.h', is missing and thus this
752 setting will cause a known bootstrap failure.)
755 This is an alias for `single'.
758 Generic POSIX/Unix98 thread support.
761 Generic POSIX/Unix95 thread support.
764 RTEMS thread support.
767 Disable thread support, should work for all platforms.
770 Sun Solaris 2 thread support.
773 VxWorks thread support.
776 Microsoft Win32 API thread support.
779 Novell Kernel Services thread support.
782 Specify that the target supports TLS (Thread Local Storage).
783 Usually configure can correctly determine if TLS is supported. In
784 cases where it guesses incorrectly, TLS can be explicitly enabled
785 or disabled with `--enable-tls' or `--disable-tls'. This can
786 happen if the assembler supports TLS but the C library does not,
787 or if the assumptions made by the configure test are incorrect.
790 Specify that the target does not support TLS. This is an alias
791 for `--enable-tls=no'.
794 Specify which cpu variant the compiler should generate code for by
795 default. CPU will be used as the default value of the `-mcpu='
796 switch. This option is only supported on some targets, including
797 ARM, i386, PowerPC, and SPARC.
799 `--with-schedule=CPU'
805 These configure options provide default values for the
806 `-mschedule=', `-march=', `-mtune=', `-mabi=', and `-mfpu='
807 options and for `-mhard-float' or `-msoft-float'. As with
808 `--with-cpu', which switches will be accepted and acceptable values
809 of the arguments depend on the target.
812 Specify how the compiler should generate code for checking for
813 division by zero. This option is only supported on the MIPS
814 target. The possibilities for TYPE are:
816 Division by zero checks use conditional traps (this is the
817 default on systems that support conditional traps).
820 Division by zero checks use the break instruction.
822 `--enable-__cxa_atexit'
823 Define if you want to use __cxa_atexit, rather than atexit, to
824 register C++ destructors for local statics and global objects.
825 This is essential for fully standards-compliant handling of
826 destructors, but requires __cxa_atexit in libc. This option is
827 currently only available on systems with GNU libc. When enabled,
828 this will cause `-fuse-cxa-exit' to be passed by default.
830 `--enable-target-optspace'
831 Specify that target libraries should be optimized for code space
832 instead of code speed. This is the default for the m32r platform.
835 Specify that a user visible `cpp' program should not be installed.
837 `--with-cpp-install-dir=DIRNAME'
838 Specify that the user visible `cpp' program should be installed in
839 `PREFIX/DIRNAME/cpp', in addition to BINDIR.
841 `--enable-initfini-array'
842 Force the use of sections `.init_array' and `.fini_array' (instead
843 of `.init' and `.fini') for constructors and destructors. Option
844 `--disable-initfini-array' has the opposite effect. If neither
845 option is specified, the configure script will try to guess
846 whether the `.init_array' and `.fini_array' sections are supported
847 and, if they are, use them.
849 `--enable-maintainer-mode'
850 The build rules that regenerate the GCC master message catalog
851 `gcc.pot' are normally disabled. This is because it can only be
852 rebuilt if the complete source tree is present. If you have
853 changed the sources and want to rebuild the catalog, configuring
854 with `--enable-maintainer-mode' will enable this. Note that you
855 need a recent version of the `gettext' tools to do so.
857 `--enable-generated-files-in-srcdir'
858 Neither the .c and .h files that are generated from Bison and flex
859 nor the info manuals and man pages that are built from the .texi
860 files are present in the SVN development tree. When building GCC
861 from that development tree, or from one of our snapshots, those
862 generated files are placed in your build directory, which allows
863 for the source to be in a readonly directory.
865 If you configure with `--enable-generated-files-in-srcdir' then
866 those generated files will go into the source directory. This is
867 mainly intended for generating release or prerelease tarballs of
868 the GCC sources, since it is not a requirement that the users of
869 source releases to have flex, Bison, or makeinfo.
871 `--enable-version-specific-runtime-libs'
872 Specify that runtime libraries should be installed in the compiler
873 specific subdirectory (`LIBDIR/gcc') rather than the usual places.
874 In addition, `libstdc++''s include files will be installed into
875 `LIBDIR' unless you overruled it by using
876 `--with-gxx-include-dir=DIRNAME'. Using this option is
877 particularly useful if you intend to use several versions of GCC in
878 parallel. This is currently supported by `libgfortran',
879 `libjava', `libmudflap', `libstdc++', and `libobjc'.
881 `--with-java-home=DIRNAME'
882 This `libjava' option overrides the default value of the
883 `java.home' system property. It is also used to set
884 `sun.boot.class.path' to `DIRNAME/lib/rt.jar'. By default
885 `java.home' is set to `PREFIX' and `sun.boot.class.path' to
886 `DATADIR/java/libgcj-VERSION.jar'.
888 `--enable-languages=LANG1,LANG2,...'
889 Specify that only a particular subset of compilers and their
890 runtime libraries should be built. For a list of valid values for
891 LANGN you can issue the following command in the `gcc' directory
892 of your GCC source tree:
893 grep language= */config-lang.in
894 Currently, you can use any of the following: `all', `ada', `c',
895 `c++', `fortran', `java', `objc', `obj-c++', `treelang'. Building
896 the Ada compiler has special requirements, see below. If you do
897 not pass this flag, or specify the option `all', then all default
898 languages available in the `gcc' sub-tree will be configured.
899 Ada, Objective-C++, and treelang are not default languages; the
900 rest are. Re-defining `LANGUAGES' when calling `make bootstrap'
901 *does not* work anymore, as those language sub-directories might
902 not have been configured!
905 Specify that the run-time libraries and tools used by GNAT should
906 not be built. This can be useful for debugging, or for
907 compatibility with previous Ada build procedures, when it was
908 required to explicitly do a `make -C gcc gnatlib_and_tools'.
911 Specify that the run-time libraries for stack smashing protection
915 Specify that the compiler should use DWARF 2 debugging information
918 `--enable-targets=all'
919 `--enable-targets=TARGET_LIST'
920 Some GCC targets, e.g. powerpc64-linux, build bi-arch compilers.
921 These are compilers that are able to generate either 64-bit or
922 32-bit code. Typically, the corresponding 32-bit target, e.g.
923 powerpc-linux for powerpc64-linux, only generates 32-bit code.
924 This option enables the 32-bit target to be a bi-arch compiler,
925 which is useful when you want a bi-arch compiler that defaults to
926 32-bit, and you are building a bi-arch or multi-arch binutils in a
927 combined tree. Currently, this option only affects powerpc-linux.
930 This option enables `-msecure-plt' by default for powerpc-linux.
931 *Note RS/6000 and PowerPC Options: (gcc)RS/6000 and PowerPC
934 `--enable-win32-registry'
935 `--enable-win32-registry=KEY'
936 `--disable-win32-registry'
937 The `--enable-win32-registry' option enables Microsoft
938 Windows-hosted GCC to look up installations paths in the registry
939 using the following key:
941 `HKEY_LOCAL_MACHINE\SOFTWARE\Free Software Foundation\KEY'
943 KEY defaults to GCC version number, and can be overridden by the
944 `--enable-win32-registry=KEY' option. Vendors and distributors
945 who use custom installers are encouraged to provide a different
946 key, perhaps one comprised of vendor name and GCC version number,
947 to avoid conflict with existing installations. This feature is
948 enabled by default, and can be disabled by
949 `--disable-win32-registry' option. This option has no effect on
953 Specify that the machine does not have a floating point unit. This
954 option only applies to `m68k-sun-sunosN'. On any other system,
955 `--nfp' has no effect.
959 `--enable-werror=yes'
961 When you specify this option, it controls whether certain files in
962 the compiler are built with `-Werror' in bootstrap stage2 and
963 later. If you don't specify it, `-Werror' is turned on for the
964 main development trunk. However it defaults to off for release
965 branches and final releases. The specific files which get
966 `-Werror' are controlled by the Makefiles.
969 `--enable-checking=LIST'
970 When you specify this option, the compiler is built to perform
971 internal consistency checks of the requested complexity. This
972 does not change the generated code, but adds error checking within
973 the compiler. This will slow down the compiler and may only work
974 properly if you are building the compiler with GCC. This is `yes'
975 by default when building from SVN or snapshots, but `release' for
976 releases. More control over the checks may be had by specifying
977 LIST. The categories of checks available are `yes' (most common
978 checks `assert,misc,tree,gc,rtlflag,runtime'), `no' (no checks at
979 all), `all' (all but `valgrind'), `release' (cheapest checks
980 `assert,runtime') or `none' (same as `no'). Individual checks can
981 be enabled with these flags `assert', `fold', `gc', `gcac' `misc',
982 `rtl', `rtlflag', `runtime', `tree', and `valgrind'.
984 The `valgrind' check requires the external `valgrind' simulator,
985 available from `http://valgrind.org/'. The `rtl', `gcac' and
986 `valgrind' checks are very expensive. To disable all checking,
987 `--disable-checking' or `--enable-checking=none' must be
988 explicitly requested. Disabling assertions will make the compiler
989 and runtime slightly faster but increase the risk of undetected
990 internal errors causing wrong code to be generated.
993 `--enable-coverage=LEVEL'
994 With this option, the compiler is built to collect self coverage
995 information, every time it is run. This is for internal
996 development purposes, and only works when the compiler is being
997 built with gcc. The LEVEL argument controls whether the compiler
998 is built optimized or not, values are `opt' and `noopt'. For
999 coverage analysis you want to disable optimization, for
1000 performance analysis you want to enable optimization. When
1001 coverage is enabled, the default level is without optimization.
1003 `--enable-gather-detailed-mem-stats'
1004 When this option is specified more detailed information on memory
1005 allocation is gathered. This information is printed when using
1010 With this option you can specify the garbage collector
1011 implementation used during the compilation process. CHOICE can be
1012 one of `page' and `zone', where `page' is the default.
1016 The `--enable-nls' option enables Native Language Support (NLS),
1017 which lets GCC output diagnostics in languages other than American
1018 English. Native Language Support is enabled by default if not
1019 doing a canadian cross build. The `--disable-nls' option disables
1022 `--with-included-gettext'
1023 If NLS is enabled, the `--with-included-gettext' option causes the
1024 build procedure to prefer its copy of GNU `gettext'.
1027 If NLS is enabled, and if the host lacks `gettext' but has the
1028 inferior `catgets' interface, the GCC build procedure normally
1029 ignores `catgets' and instead uses GCC's copy of the GNU `gettext'
1030 library. The `--with-catgets' option causes the build procedure
1031 to use the host's `catgets' in this situation.
1033 `--with-libiconv-prefix=DIR'
1034 Search for libiconv header files in `DIR/include' and libiconv
1035 library files in `DIR/lib'.
1038 Enable configuration for an obsoleted system. If you attempt to
1039 configure GCC for a system (build, host, or target) which has been
1040 obsoleted, and you do not specify this flag, configure will halt
1041 with an error message.
1043 All support for systems which have been obsoleted in one release
1044 of GCC is removed entirely in the next major release, unless
1045 someone steps forward to maintain the port.
1047 Cross-Compiler-Specific Options
1048 -------------------------------
1050 The following options only apply to building cross compilers.
1052 `--with-sysroot=DIR'
1053 Tells GCC to consider DIR as the root of a tree that contains a
1054 (subset of) the root filesystem of the target operating system.
1055 Target system headers, libraries and run-time object files will be
1056 searched in there. The specified directory is not copied into the
1057 install tree, unlike the options `--with-headers' and
1058 `--with-libs' that this option obsoletes. The default value, in
1059 case `--with-sysroot' is not given an argument, is
1060 `${gcc_tooldir}/sys-root'. If the specified directory is a
1061 subdirectory of `${exec_prefix}', then it will be found relative to
1062 the GCC binaries if the installation tree is moved.
1064 `--with-build-sysroot'
1065 `--with-build-sysroot=DIR'
1066 Tells GCC to consider DIR as the system root (see
1067 `--with-sysroot') while building target libraries, instead of the
1068 directory specified with `--with-sysroot'. This option is only
1069 useful when you are already using `--with-sysroot'. You can use
1070 `--with-build-sysroot' when you are configuring with `--prefix'
1071 set to a directory that is different from the one in which you are
1072 installing GCC and your target libraries.
1074 This option affects the system root for the compiler used to build
1075 target libraries (which runs on the build system); it does not
1076 affect the compiler which is used to build GCC itself.
1079 `--with-headers=DIR'
1080 Deprecated in favor of `--with-sysroot'. Specifies that target
1081 headers are available when building a cross compiler. The DIR
1082 argument specifies a directory which has the target include files.
1083 These include files will be copied into the `gcc' install
1084 directory. _This option with the DIR argument is required_ when
1085 building a cross compiler, if `PREFIX/TARGET/sys-include' doesn't
1086 pre-exist. If `PREFIX/TARGET/sys-include' does pre-exist, the DIR
1087 argument may be omitted. `fixincludes' will be run on these files
1088 to make them compatible with GCC.
1091 Tells GCC not use any target headers from a libc when building a
1092 cross compiler. When crossing to GNU/Linux, you need the headers
1093 so GCC can build the exception handling for libgcc.
1096 `--with-libs=``DIR1 DIR2 ... DIRN'''
1097 Deprecated in favor of `--with-sysroot'. Specifies a list of
1098 directories which contain the target runtime libraries. These
1099 libraries will be copied into the `gcc' install directory. If the
1100 directory list is omitted, this option has no effect.
1103 Specifies that `newlib' is being used as the target C library.
1104 This causes `__eprintf' to be omitted from `libgcc.a' on the
1105 assumption that it will be provided by `newlib'.
1107 Fortran-specific Option
1108 -----------------------
1110 The following options apply to the build of the Fortran front end.
1112 `--with-gmp=PATHNAME'
1113 `--with-mpfr=PATHNAME'
1114 `--with-gmp-dir=PATHNAME'
1115 `--with-mpfr-dir=PATHNAME'
1116 If you don't have GMP (the GNU Multiple Precision library) and the
1117 MPFR Libraries installed in a standard location and you want to
1118 build the Fortran front-end, you can explicitly specify the
1119 directory where they are installed (`--with-gmp=gmpinstalldir',
1120 `--with-mpfr=mpfrinstalldir') or where you built them without
1121 installing (`--with-gmp-dir=gmpbuilddir',
1122 `--with-mpfr-dir=gmpbuilddir').
1125 Java-Specific Options
1126 ---------------------
1128 The following option applies to the build of the Java front end.
1131 Specify that the run-time libraries used by GCJ should not be
1132 built. This is useful in case you intend to use GCJ with some
1133 other run-time, or you're going to install it separately, or it
1134 just happens not to build on your particular machine. In general,
1135 if the Java front end is enabled, the GCJ libraries will be
1136 enabled too, unless they're known to not work on the target
1137 platform. If GCJ is enabled but `libgcj' isn't built, you may
1138 need to port it; in this case, before modifying the top-level
1139 `configure.in' so that `libgcj' is enabled by default on this
1140 platform, you may use `--enable-libgcj' to override the default.
1143 The following options apply to building `libgcj'.
1148 `--disable-getenv-properties'
1149 Don't set system properties from `GCJ_PROPERTIES'.
1151 `--enable-hash-synchronization'
1152 Use a global hash table for monitor locks. Ordinarily, `libgcj''s
1153 `configure' script automatically makes the correct choice for this
1154 option for your platform. Only use this if you know you need the
1155 library to be configured differently.
1157 `--enable-interpreter'
1158 Enable the Java interpreter. The interpreter is automatically
1159 enabled by default on all platforms that support it. This option
1160 is really only useful if you want to disable the interpreter
1161 (using `--disable-interpreter').
1163 `--disable-java-net'
1164 Disable java.net. This disables the native part of java.net only,
1165 using non-functional stubs for native method implementations.
1168 Disable JVMPI support.
1171 Enable runtime eCos target support.
1174 Don't use `libffi'. This will disable the interpreter and JNI
1175 support as well, as these require `libffi' to work.
1177 `--enable-libgcj-debug'
1178 Enable runtime debugging code.
1180 `--enable-libgcj-multifile'
1181 If specified, causes all `.java' source files to be compiled into
1182 `.class' files in one invocation of `gcj'. This can speed up
1183 build time, but is more resource-intensive. If this option is
1184 unspecified or disabled, `gcj' is invoked once for each `.java'
1185 file to compile into a `.class' file.
1187 `--with-libiconv-prefix=DIR'
1188 Search for libiconv in `DIR/include' and `DIR/lib'.
1190 `--enable-sjlj-exceptions'
1191 Force use of `builtin_setjmp' for exceptions. `configure'
1192 ordinarily picks the correct value based on the platform. Only use
1193 this option if you are sure you need a different setting.
1195 `--with-system-zlib'
1196 Use installed `zlib' rather than that included with GCC.
1198 `--with-win32-nlsapi=ansi, unicows or unicode'
1199 Indicates how MinGW `libgcj' translates between UNICODE characters
1202 Use the single-byte `char' and the Win32 A functions natively,
1203 translating to and from UNICODE when using these functions.
1204 If unspecified, this is the default.
1207 Use the `WCHAR' and Win32 W functions natively. Adds
1208 `-lunicows' to `libgcj.spec' to link with `libunicows'.
1209 `unicows.dll' needs to be deployed on Microsoft Windows 9X
1210 machines running built executables. `libunicows.a', an
1211 open-source import library around Microsoft's `unicows.dll',
1212 is obtained from `http://libunicows.sourceforge.net/', which
1213 also gives details on getting `unicows.dll' from Microsoft.
1216 Use the `WCHAR' and Win32 W functions natively. Does _not_
1217 add `-lunicows' to `libgcj.spec'. The built executables will
1218 only run on Microsoft Windows NT and above.
1220 AWT-Specific Options
1221 ....................
1224 Use the X Window System.
1226 `--enable-java-awt=PEER(S)'
1227 Specifies the AWT peer library or libraries to build alongside
1228 `libgcj'. If this option is unspecified or disabled, AWT will be
1229 non-functional. Current valid values are `gtk' and `xlib'.
1230 Multiple libraries should be separated by a comma (i.e.
1231 `--enable-java-awt=gtk,xlib').
1233 `--enable-gtk-cairo'
1234 Build the cairo Graphics2D implementation on GTK.
1236 `--enable-java-gc=TYPE'
1237 Choose garbage collector. Defaults to `boehm' if unspecified.
1240 Do not try to compile and run a test GTK+ program.
1242 `--disable-glibtest'
1243 Do not try to compile and run a test GLIB program.
1245 `--with-libart-prefix=PFX'
1246 Prefix where libart is installed (optional).
1248 `--with-libart-exec-prefix=PFX'
1249 Exec prefix where libart is installed (optional).
1251 `--disable-libarttest'
1252 Do not try to compile and run a test libart program.
1256 File: gccinstall.info, Node: Building, Next: Testing, Prev: Configuration, Up: Installing GCC
1261 Now that GCC is configured, you are ready to build the compiler and
1264 Some commands executed when making the compiler may fail (return a
1265 nonzero status) and be ignored by `make'. These failures, which are
1266 often due to files that were not found, are expected, and can safely be
1269 It is normal to have compiler warnings when compiling certain files.
1270 Unless you are a GCC developer, you can generally ignore these warnings
1271 unless they cause compilation to fail. Developers should attempt to fix
1272 any warnings encountered, however they can temporarily continue past
1273 warnings-as-errors by specifying the configure flag `--disable-werror'.
1275 On certain old systems, defining certain environment variables such
1276 as `CC' can interfere with the functioning of `make'.
1278 If you encounter seemingly strange errors when trying to build the
1279 compiler in a directory other than the source directory, it could be
1280 because you have previously configured the compiler in the source
1281 directory. Make sure you have done all the necessary preparations.
1283 If you build GCC on a BSD system using a directory stored in an old
1284 System V file system, problems may occur in running `fixincludes' if the
1285 System V file system doesn't support symbolic links. These problems
1286 result in a failure to fix the declaration of `size_t' in
1287 `sys/types.h'. If you find that `size_t' is a signed type and that
1288 type mismatches occur, this could be the cause.
1290 The solution is not to use such a directory for building GCC.
1292 When building from SVN or snapshots, or if you modify parser sources,
1293 you need the Bison parser generator installed. If you do not modify
1294 parser sources, releases contain the Bison-generated files and you do
1295 not need Bison installed to build them.
1297 When building from SVN or snapshots, or if you modify Texinfo
1298 documentation, you need version 4.2 or later of Texinfo installed if you
1299 want Info documentation to be regenerated. Releases contain Info
1300 documentation pre-built for the unmodified documentation in the release.
1302 5.1 Building a native compiler
1303 ==============================
1305 For a native build issue the command `make bootstrap'. This will build
1306 the entire GCC system, which includes the following steps:
1308 * Build host tools necessary to build the compiler such as texinfo,
1311 * Build target tools for use by the compiler such as binutils (bfd,
1312 binutils, gas, gprof, ld, and opcodes) if they have been
1313 individually linked or moved into the top level GCC source tree
1316 * Perform a 3-stage bootstrap of the compiler.
1318 * Perform a comparison test of the stage2 and stage3 compilers.
1320 * Build runtime libraries using the stage3 compiler from the
1324 If you are short on disk space you might consider `make
1325 bootstrap-lean' instead. This is identical to `make bootstrap' except
1326 that object files from the stage1 and stage2 of the 3-stage bootstrap
1327 of the compiler are deleted as soon as they are no longer needed.
1329 If you want to save additional space during the bootstrap and in the
1330 final installation as well, you can build the compiler binaries without
1331 debugging information as in the following example. This will save
1332 roughly 40% of disk space both for the bootstrap and the final
1333 installation. (Libraries will still contain debugging information.)
1335 make CFLAGS='-O' LIBCFLAGS='-g -O2' \
1336 LIBCXXFLAGS='-g -O2 -fno-implicit-templates' bootstrap
1338 If you wish to use non-default GCC flags when compiling the stage2
1339 and stage3 compilers, set `BOOT_CFLAGS' on the command line when doing
1340 `make bootstrap'. Non-default optimization flags are less well tested
1341 here than the default of `-g -O2', but should still work. In a few
1342 cases, you may find that you need to specify special flags such as
1343 `-msoft-float' here to complete the bootstrap; or, if the native
1344 compiler miscompiles the stage1 compiler, you may need to work around
1345 this, by choosing `BOOT_CFLAGS' to avoid the parts of the stage1
1346 compiler that were miscompiled, or by using `make bootstrap4' to
1347 increase the number of stages of bootstrap.
1349 Note that using non-standard `CFLAGS' can cause bootstrap to fail in
1350 `libiberty', if these trigger a warning with the new compiler. For
1351 example using `-O2 -g -mcpu=i686' on `i686-pc-linux-gnu' will cause
1352 bootstrap failure as `-mcpu=' is deprecated in 3.4.0 and above.
1354 If you used the flag `--enable-languages=...' to restrict the
1355 compilers to be built, only those you've actually enabled will be
1356 built. This will of course only build those runtime libraries, for
1357 which the particular compiler has been built. Please note, that
1358 re-defining `LANGUAGES' when calling `make bootstrap' *does not* work
1361 If the comparison of stage2 and stage3 fails, this normally indicates
1362 that the stage2 compiler has compiled GCC incorrectly, and is therefore
1363 a potentially serious bug which you should investigate and report. (On
1364 a few systems, meaningful comparison of object files is impossible; they
1365 always appear "different". If you encounter this problem, you will
1366 need to disable comparison in the `Makefile'.)
1368 5.2 Building a cross compiler
1369 =============================
1371 When building a cross compiler, it is not generally possible to do a
1372 3-stage bootstrap of the compiler. This makes for an interesting
1373 problem as parts of GCC can only be built with GCC.
1375 To build a cross compiler, we first recommend building and
1376 installing a native compiler. You can then use the native GCC compiler
1377 to build the cross compiler. The installed native compiler needs to be
1378 GCC version 2.95 or later.
1380 Assuming you have already installed a native copy of GCC and
1381 configured your cross compiler, issue the command `make', which
1382 performs the following steps:
1384 * Build host tools necessary to build the compiler.
1386 * Build target tools for use by the compiler such as binutils (bfd,
1387 binutils, gas, gprof, ld, and opcodes) if they have been
1388 individually linked or moved into the top level GCC source tree
1391 * Build the compiler (single stage only).
1393 * Build runtime libraries using the compiler from the previous step.
1395 Note that if an error occurs in any step the make process will exit.
1397 If you are not building GNU binutils in the same source tree as GCC,
1398 you will need a cross-assembler and cross-linker installed before
1399 configuring GCC. Put them in the directory `PREFIX/TARGET/bin'. Here
1400 is a table of the tools you should put in this directory:
1403 This should be the cross-assembler.
1406 This should be the cross-linker.
1409 This should be the cross-archiver: a program which can manipulate
1410 archive files (linker libraries) in the target machine's format.
1413 This should be a program to construct a symbol table in an archive
1416 The installation of GCC will find these programs in that directory,
1417 and copy or link them to the proper place to for the cross-compiler to
1418 find them when run later.
1420 The easiest way to provide these files is to build the Binutils
1421 package. Configure it with the same `--host' and `--target' options
1422 that you use for configuring GCC, then build and install them. They
1423 install their executables automatically into the proper directory.
1424 Alas, they do not support all the targets that GCC supports.
1426 If you are not building a C library in the same source tree as GCC,
1427 you should also provide the target libraries and headers before
1428 configuring GCC, specifying the directories with `--with-sysroot' or
1429 `--with-headers' and `--with-libs'. Many targets also require "start
1430 files" such as `crt0.o' and `crtn.o' which are linked into each
1431 executable. There may be several alternatives for `crt0.o', for use
1432 with profiling or other compilation options. Check your target's
1433 definition of `STARTFILE_SPEC' to find out what start files it uses.
1435 5.3 Building in parallel
1436 ========================
1438 You can use `make bootstrap MAKE="make -j 2" -j 2', or just `make -j 2
1439 bootstrap' for GNU Make 3.79 and above, instead of `make bootstrap' to
1440 build GCC in parallel. You can also specify a bigger number, and in
1441 most cases using a value greater than the number of processors in your
1442 machine will result in fewer and shorter I/O latency hits, thus
1443 improving overall throughput; this is especially true for slow drives
1444 and network filesystems.
1446 5.4 Building the Ada compiler
1447 =============================
1449 In order to build GNAT, the Ada compiler, you need a working GNAT
1450 compiler (GNAT version 3.14 or later, or GCC version 3.1 or later),
1451 including GNAT tools such as `gnatmake' and `gnatlink', since the Ada
1452 front end is written in Ada (with some GNAT-specific extensions), and
1455 `configure' does not test whether the GNAT installation works and
1456 has a sufficiently recent version; if too old a GNAT version is
1457 installed, the build will fail unless `--enable-languages' is used to
1458 disable building the Ada front end.
1460 5.5 Building with profile feedback
1461 ==================================
1463 It is possible to use profile feedback to optimize the compiler itself.
1464 This should result in a faster compiler binary. Experiments done on
1465 x86 using gcc 3.3 showed approximately 7 percent speedup on compiling C
1466 programs. To bootstrap compiler with profile feedback, use `make
1469 When `make profiledbootstrap' is run, it will first build a `stage1'
1470 compiler. This compiler is used to build a `stageprofile' compiler
1471 instrumented to collect execution counts of instruction and branch
1472 probabilities. Then runtime libraries are compiled with profile
1473 collected. Finally a `stagefeedback' compiler is built using the
1474 information collected.
1476 Unlike `make bootstrap' several additional restrictions apply. The
1477 compiler used to build `stage1' needs to support a 64-bit integral type.
1478 It is recommended to only use GCC for this. Also parallel make is
1479 currently not supported since collisions in profile collecting may
1483 File: gccinstall.info, Node: Testing, Next: Final install, Prev: Building, Up: Installing GCC
1485 6 Installing GCC: Testing
1486 *************************
1488 Before you install GCC, we encourage you to run the testsuites and to
1489 compare your results with results from a similar configuration that have
1490 been submitted to the gcc-testresults mailing list. Some of these
1491 archived results are linked from the build status lists at
1492 `http://gcc.gnu.org/buildstat.html', although not everyone who reports
1493 a successful build runs the testsuites and submits the results. This
1494 step is optional and may require you to download additional software,
1495 but it can give you confidence in your new GCC installation or point out
1496 problems before you install and start using your new GCC.
1498 First, you must have downloaded the testsuites. These are part of
1499 the full distribution, but if you downloaded the "core" compiler plus
1500 any front ends, you must download the testsuites separately.
1502 Second, you must have the testing tools installed. This includes
1503 DejaGnu, Tcl, and Expect; the DejaGnu site has links to these.
1505 If the directories where `runtest' and `expect' were installed are
1506 not in the `PATH', you may need to set the following environment
1507 variables appropriately, as in the following example (which assumes
1508 that DejaGnu has been installed under `/usr/local'):
1510 TCL_LIBRARY = /usr/local/share/tcl8.0
1511 DEJAGNULIBS = /usr/local/share/dejagnu
1513 (On systems such as Cygwin, these paths are required to be actual
1514 paths, not mounts or links; presumably this is due to some lack of
1515 portability in the DejaGnu code.)
1517 Finally, you can run the testsuite (which may take a long time):
1518 cd OBJDIR; make -k check
1520 This will test various components of GCC, such as compiler front
1521 ends and runtime libraries. While running the testsuite, DejaGnu might
1522 emit some harmless messages resembling `WARNING: Couldn't find the
1523 global config file.' or `WARNING: Couldn't find tool init file' that
1526 6.1 How can you run the testsuite on selected tests?
1527 ====================================================
1529 In order to run sets of tests selectively, there are targets `make
1530 check-gcc' and `make check-g++' in the `gcc' subdirectory of the object
1531 directory. You can also just run `make check' in a subdirectory of the
1534 A more selective way to just run all `gcc' execute tests in the
1537 make check-gcc RUNTESTFLAGS="execute.exp OTHER-OPTIONS"
1539 Likewise, in order to run only the `g++' "old-deja" tests in the
1540 testsuite with filenames matching `9805*', you would use
1542 make check-g++ RUNTESTFLAGS="old-deja.exp=9805* OTHER-OPTIONS"
1544 The `*.exp' files are located in the testsuite directories of the GCC
1545 source, the most important ones being `compile.exp', `execute.exp',
1546 `dg.exp' and `old-deja.exp'. To get a list of the possible `*.exp'
1547 files, pipe the output of `make check' into a file and look at the
1548 `Running ... .exp' lines.
1550 6.2 Passing options and running multiple testsuites
1551 ===================================================
1553 You can pass multiple options to the testsuite using the
1554 `--target_board' option of DejaGNU, either passed as part of
1555 `RUNTESTFLAGS', or directly to `runtest' if you prefer to work outside
1556 the makefiles. For example,
1558 make check-g++ RUNTESTFLAGS="--target_board=unix/-O3/-fno-strength-reduce"
1560 will run the standard `g++' testsuites ("unix" is the target name
1561 for a standard native testsuite situation), passing `-O3
1562 -fno-strength-reduce' to the compiler on every test, i.e., slashes
1565 You can run the testsuites multiple times using combinations of
1566 options with a syntax similar to the brace expansion of popular shells:
1568 ..."--target_board=arm-sim/{-mhard-float,-msoft-float}{-O1,-O2,-O3,}"
1570 (Note the empty option caused by the trailing comma in the final
1571 group.) The following will run each testsuite eight times using the
1572 `arm-sim' target, as if you had specified all possible combinations
1575 --target_board=arm-sim/-mhard-float/-O1
1576 --target_board=arm-sim/-mhard-float/-O2
1577 --target_board=arm-sim/-mhard-float/-O3
1578 --target_board=arm-sim/-mhard-float
1579 --target_board=arm-sim/-msoft-float/-O1
1580 --target_board=arm-sim/-msoft-float/-O2
1581 --target_board=arm-sim/-msoft-float/-O3
1582 --target_board=arm-sim/-msoft-float
1584 They can be combined as many times as you wish, in arbitrary ways.
1587 ..."--target_board=unix/-Wextra{-O3,-fno-strength-reduce}{-fomit-frame-pointer,}"
1589 will generate four combinations, all involving `-Wextra'.
1591 The disadvantage to this method is that the testsuites are run in
1592 serial, which is a waste on multiprocessor systems. For users with GNU
1593 Make and a shell which performs brace expansion, you can run the
1594 testsuites in parallel by having the shell perform the combinations and
1595 `make' do the parallel runs. Instead of using `--target_board', use a
1596 special makefile target:
1598 make -jN check-TESTSUITE//TEST-TARGET/OPTION1/OPTION2/...
1602 make -j3 check-gcc//sh-hms-sim/{-m1,-m2,-m3,-m3e,-m4}/{,-nofpu}
1604 will run three concurrent "make-gcc" testsuites, eventually testing
1605 all ten combinations as described above. Note that this is currently
1606 only supported in the `gcc' subdirectory. (To see how this works, try
1607 typing `echo' before the example given here.)
1609 6.3 Additional testing for Java Class Libraries
1610 ===============================================
1612 The Java runtime tests can be executed via `make check' in the
1613 `TARGET/libjava/testsuite' directory in the build tree.
1615 The Mauve Project provides a suite of tests for the Java Class
1616 Libraries. This suite can be run as part of libgcj testing by placing
1617 the Mauve tree within the libjava testsuite at
1618 `libjava/testsuite/libjava.mauve/mauve', or by specifying the location
1619 of that tree when invoking `make', as in `make MAUVEDIR=~/mauve check'.
1621 Jacks is a free testsuite that tests Java compiler front ends. This
1622 suite can be run as part of libgcj testing by placing the Jacks tree
1623 within the libjava testsuite at `libjava/testsuite/libjava.jacks/jacks'.
1625 6.4 How to interpret test results
1626 =================================
1628 The result of running the testsuite are various `*.sum' and `*.log'
1629 files in the testsuite subdirectories. The `*.log' files contain a
1630 detailed log of the compiler invocations and the corresponding results,
1631 the `*.sum' files summarize the results. These summaries contain
1632 status codes for all tests:
1634 * PASS: the test passed as expected
1636 * XPASS: the test unexpectedly passed
1638 * FAIL: the test unexpectedly failed
1640 * XFAIL: the test failed as expected
1642 * UNSUPPORTED: the test is not supported on this platform
1644 * ERROR: the testsuite detected an error
1646 * WARNING: the testsuite detected a possible problem
1648 It is normal for some tests to report unexpected failures. At the
1649 current time the testing harness does not allow fine grained control
1650 over whether or not a test is expected to fail. This problem should be
1651 fixed in future releases.
1653 6.5 Submitting test results
1654 ===========================
1656 If you want to report the results to the GCC project, use the
1657 `contrib/test_summary' shell script. Start it in the OBJDIR with
1659 SRCDIR/contrib/test_summary -p your_commentary.txt \
1660 -m gcc-testresults@gcc.gnu.org |sh
1662 This script uses the `Mail' program to send the results, so make
1663 sure it is in your `PATH'. The file `your_commentary.txt' is prepended
1664 to the testsuite summary and should contain any special remarks you
1665 have on your results or your build environment. Please do not edit the
1666 testsuite result block or the subject line, as these messages may be
1667 automatically processed.
1670 File: gccinstall.info, Node: Final install, Prev: Testing, Up: Installing GCC
1672 7 Installing GCC: Final installation
1673 ************************************
1675 Now that GCC has been built (and optionally tested), you can install
1677 cd OBJDIR; make install
1679 We strongly recommend to install into a target directory where there
1680 is no previous version of GCC present.
1682 That step completes the installation of GCC; user level binaries can
1683 be found in `PREFIX/bin' where PREFIX is the value you specified with
1684 the `--prefix' to configure (or `/usr/local' by default). (If you
1685 specified `--bindir', that directory will be used instead; otherwise,
1686 if you specified `--exec-prefix', `EXEC-PREFIX/bin' will be used.)
1687 Headers for the C++ and Java libraries are installed in
1688 `PREFIX/include'; libraries in `LIBDIR' (normally `PREFIX/lib');
1689 internal parts of the compiler in `LIBDIR/gcc' and `LIBEXECDIR/gcc';
1690 documentation in info format in `INFODIR' (normally `PREFIX/info').
1692 When installing cross-compilers, GCC's executables are not only
1693 installed into `BINDIR', that is, `EXEC-PREFIX/bin', but additionally
1694 into `EXEC-PREFIX/TARGET-ALIAS/bin', if that directory exists.
1695 Typically, such "tooldirs" hold target-specific binutils, including
1696 assembler and linker.
1698 Installation into a temporary staging area or into a `chroot' jail
1699 can be achieved with the command
1701 make DESTDIR=PATH-TO-ROOTDIR install
1703 where PATH-TO-ROOTDIR is the absolute path of a directory relative to
1704 which all installation paths will be interpreted. Note that the
1705 directory specified by `DESTDIR' need not exist yet; it will be created
1708 There is a subtle point with tooldirs and `DESTDIR': If you relocate
1709 a cross-compiler installation with e.g. `DESTDIR=ROOTDIR', then the
1710 directory `ROOTDIR/EXEC-PREFIX/TARGET-ALIAS/bin' will be filled with
1711 duplicated GCC executables only if it already exists, it will not be
1712 created otherwise. This is regarded as a feature, not as a bug,
1713 because it gives slightly more control to the packagers using the
1716 If you built a released version of GCC using `make bootstrap' then
1717 please quickly review the build status page for your release, available
1718 from `http://gcc.gnu.org/buildstat.html'. If your system is not listed
1719 for the version of GCC that you built, send a note to <gcc@gcc.gnu.org>
1720 indicating that you successfully built and installed GCC. Include the
1721 following information:
1723 * Output from running `SRCDIR/config.guess'. Do not send that file
1724 itself, just the one-line output from running it.
1726 * The output of `gcc -v' for your newly installed `gcc'. This tells
1727 us which version of GCC you built and the options you passed to
1730 * Whether you enabled all languages or a subset of them. If you
1731 used a full distribution then this information is part of the
1732 configure options in the output of `gcc -v', but if you downloaded
1733 the "core" compiler plus additional front ends then it isn't
1734 apparent which ones you built unless you tell us about it.
1736 * If the build was for GNU/Linux, also include:
1737 * The distribution name and version (e.g., Red Hat 7.1 or
1738 Debian 2.2.3); this information should be available from
1741 * The version of the Linux kernel, available from `uname
1742 --version' or `uname -a'.
1744 * The version of glibc you used; for RPM-based systems like Red
1745 Hat, Mandrake, and SuSE type `rpm -q glibc' to get the glibc
1746 version, and on systems like Debian and Progeny use `dpkg -l
1748 For other systems, you can include similar information if you
1749 think it is relevant.
1751 * Any other information that you think would be useful to people
1752 building GCC on the same configuration. The new entry in the
1753 build status list will include a link to the archived copy of your
1756 We'd also like to know if the *Note host/target specific
1757 installation notes: Specific. didn't include your host/target
1758 information or if that information is incomplete or out of date. Send
1759 a note to <gcc@gcc.gnu.org> detailing how the information should be
1762 If you find a bug, please report it following the bug reporting
1765 If you want to print the GCC manuals, do `cd OBJDIR; make dvi'. You
1766 will need to have `texi2dvi' (version at least 4.2) and TeX installed.
1767 This creates a number of `.dvi' files in subdirectories of `OBJDIR';
1768 these may be converted for printing with programs such as `dvips'. You
1769 can also buy printed manuals from the Free Software Foundation, though
1770 such manuals may not be for the most recent version of GCC.
1772 If you would like to generate online HTML documentation, do `cd
1773 OBJDIR; make html' and HTML will be generated for the gcc manuals in
1777 File: gccinstall.info, Node: Binaries, Next: Specific, Prev: Installing GCC, Up: Top
1779 8 Installing GCC: Binaries
1780 **************************
1782 We are often asked about pre-compiled versions of GCC. While we
1783 cannot provide these for all platforms, below you'll find links to
1784 binaries for various platforms where creating them by yourself is not
1785 easy due to various reasons.
1787 Please note that we did not create these binaries, nor do we support
1788 them. If you have any problems installing them, please contact their
1792 * Bull's Freeware and Shareware Archive for AIX;
1794 * UCLA Software Library for AIX.
1798 * Renesas H8/300[HS]--GNU Development Tools for the Renesas
1802 * HP-UX Porting Center;
1804 * Binaries for HP-UX 11.00 at Aachen University of Technology.
1806 * Motorola 68HC11/68HC12--GNU Development Tools for the Motorola
1809 * SCO OpenServer/Unixware.
1811 * Solaris 2 (SPARC, Intel)--Sunfreeware.
1813 * SGI--SGI Freeware.
1815 * Microsoft Windows:
1816 * The Cygwin project;
1818 * The MinGW project.
1820 * The Written Word offers binaries for AIX 4.3.2. IRIX 6.5, Digital
1821 UNIX 4.0D and 5.1, GNU/Linux (i386), HP-UX 10.20, 11.00, and
1822 11.11, and Solaris/SPARC 2.5.1, 2.6, 7, 8, and 9.
1824 * OpenPKG offers binaries for quite a number of platforms.
1826 * The GFortran Wiki has links to gfortran binaries for several
1829 In addition to those specific offerings, you can get a binary
1830 distribution CD-ROM from the Free Software Foundation. It contains
1831 binaries for a number of platforms, and includes not only GCC, but
1832 other stuff as well. The current CD does not contain the latest
1833 version of GCC, but it should allow bootstrapping the compiler. An
1834 updated version of that disk is in the works.
1837 File: gccinstall.info, Node: Specific, Next: Old, Prev: Binaries, Up: Top
1839 9 Host/target specific installation notes for GCC
1840 *************************************************
1842 Please read this document carefully _before_ installing the GNU
1843 Compiler Collection on your machine.
1848 This section contains general configuration information for all
1849 alpha-based platforms using ELF (in particular, ignore this section for
1850 DEC OSF/1, Digital UNIX and Tru64 UNIX). In addition to reading this
1851 section, please read all other sections that match your target.
1853 We require binutils 2.11.2 or newer. Previous binutils releases had
1854 a number of problems with DWARF 2 debugging information, not the least
1855 of which is incorrect linking of shared libraries.
1860 Systems using processors that implement the DEC Alpha architecture and
1861 are running the DEC/Compaq Unix (DEC OSF/1, Digital UNIX, or Compaq
1862 Tru64 UNIX) operating system, for example the DEC Alpha AXP systems.
1864 As of GCC 3.2, versions before `alpha*-dec-osf4' are no longer
1865 supported. (These are the versions which identify themselves as DEC
1868 In Digital Unix V4.0, virtual memory exhausted bootstrap failures
1869 may be fixed by configuring with `--with-gc=simple', reconfiguring
1870 Kernel Virtual Memory and Swap parameters per the `/usr/sbin/sys_check'
1871 Tuning Suggestions, or applying the patch in
1872 `http://gcc.gnu.org/ml/gcc/2002-08/msg00822.html'.
1874 In Tru64 UNIX V5.1, Compaq introduced a new assembler that does not
1875 currently (2001-06-13) work with `mips-tfile'. As a workaround, we
1876 need to use the old assembler, invoked via the barely documented
1877 `-oldas' option. To bootstrap GCC, you either need to use the Compaq C
1880 % CC=cc SRCDIR/configure [OPTIONS] [TARGET]
1882 or you can use a copy of GCC 2.95.3 or higher built on Tru64 UNIX
1885 % CC=gcc -Wa,-oldas SRCDIR/configure [OPTIONS] [TARGET]
1887 As of GNU binutils 2.11.2, neither GNU `as' nor GNU `ld' are
1888 supported on Tru64 UNIX, so you must not configure GCC with
1889 `--with-gnu-as' or `--with-gnu-ld'.
1891 GCC writes a `.verstamp' directive to the assembler output file
1892 unless it is built as a cross-compiler. It gets the version to use from
1893 the system header file `/usr/include/stamp.h'. If you install a new
1894 version of DEC Unix, you should rebuild GCC to pick up the new version
1897 Note that since the Alpha is a 64-bit architecture, cross-compilers
1898 from 32-bit machines will not generate code as efficient as that
1899 generated when the compiler is running on a 64-bit machine because many
1900 optimizations that depend on being able to represent a word on the
1901 target in an integral value on the host cannot be performed. Building
1902 cross-compilers on the Alpha for 32-bit machines has only been tested in
1903 a few cases and may not work properly.
1905 `make compare' may fail on old versions of DEC Unix unless you add
1906 `-save-temps' to `CFLAGS'. On these systems, the name of the assembler
1907 input file is stored in the object file, and that makes comparison fail
1908 if it differs between the `stage1' and `stage2' compilations. The
1909 option `-save-temps' forces a fixed name to be used for the assembler
1910 input file, instead of a randomly chosen name in `/tmp'. Do not add
1911 `-save-temps' unless the comparisons fail without that option. If you
1912 add `-save-temps', you will have to manually delete the `.i' and `.s'
1913 files after each series of compilations.
1915 GCC now supports both the native (ECOFF) debugging format used by DBX
1916 and GDB and an encapsulated STABS format for use only with GDB. See the
1917 discussion of the `--with-stabs' option of `configure' above for more
1918 information on these formats and how to select them.
1920 There is a bug in DEC's assembler that produces incorrect line
1921 numbers for ECOFF format when the `.align' directive is used. To work
1922 around this problem, GCC will not emit such alignment directives while
1923 writing ECOFF format debugging information even if optimization is
1924 being performed. Unfortunately, this has the very undesirable
1925 side-effect that code addresses when `-O' is specified are different
1926 depending on whether or not `-g' is also specified.
1928 To avoid this behavior, specify `-gstabs+' and use GDB instead of
1929 DBX. DEC is now aware of this problem with the assembler and hopes to
1930 provide a fix shortly.
1932 alphaev5-cray-unicosmk*
1933 =======================
1935 Cray T3E systems running Unicos/Mk.
1937 This port is incomplete and has many known bugs. We hope to improve
1938 the support for this target soon. Currently, only the C front end is
1939 supported, and it is not possible to build parallel applications. Cray
1940 modules are not supported; in particular, Craylibs are assumed to be in
1941 `/opt/ctl/craylibs/craylibs'.
1943 You absolutely *must* use GNU make on this platform. Also, you need
1944 to tell GCC where to find the assembler and the linker. The simplest
1945 way to do so is by providing `--with-as' and `--with-ld' to
1948 configure --with-as=/opt/ctl/bin/cam --with-ld=/opt/ctl/bin/cld \
1949 --enable-languages=c
1951 The comparison test during `make bootstrap' fails on Unicos/Mk
1952 because the assembler inserts timestamps into object files. You should
1953 be able to work around this by doing `make all' after getting this
1959 Argonaut ARC processor. This configuration is intended for embedded
1968 ARM-family processors. Subtargets that use the ELF object format
1969 require GNU binutils 2.13 or newer. Such subtargets include:
1970 `arm-*-freebsd', `arm-*-netbsdelf', `arm-*-*linux', `arm-*-rtems' and
1976 ARM-family processors. Note that there are two different varieties of
1977 PE format subtarget supported: `arm-wince-pe' and `arm-pe' as well as a
1978 standard COFF target `arm-*-coff'.
1983 ARM-family processors. These targets support the AOUT file format:
1984 `arm-*-aout', `arm-*-netbsd'.
1989 ATMEL AVR-family micro controllers. These are used in embedded
1990 applications. There are no standard Unix configurations. *Note AVR
1991 Options: (gcc)AVR Options, for the list of supported MCU types.
1993 Use `configure --target=avr --enable-languages="c"' to configure GCC.
1995 Further installation notes and other useful information about AVR
1996 tools can also be obtained from:
1998 * http://www.nongnu.org/avr/
2000 * http://home.overta.ru/users/denisc/
2002 * http://www.amelek.gda.pl/avr/
2004 We _strongly_ recommend using binutils 2.13 or newer.
2006 The following error:
2007 Error: register required
2009 indicates that you should upgrade to a newer version of the binutils.
2014 The Blackfin processor, an Analog Devices DSP. *Note Blackfin Options:
2015 (gcc)Blackfin Options,
2017 More information, and a version of binutils with support for this
2018 processor, is available at `http://blackfin.uclinux.org'
2023 Texas Instruments TMS320C3x and TMS320C4x Floating Point Digital Signal
2024 Processors. These are used in embedded applications. There are no
2025 standard Unix configurations. *Note TMS320C3x/C4x Options:
2026 (gcc)TMS320C3x/C4x Options, for the list of supported MCU types.
2028 GCC can be configured as a cross compiler for both the C3x and C4x
2029 architectures on the same system. Use `configure --target=c4x
2030 --enable-languages="c,c++"' to configure.
2032 Further installation notes and other useful information about C4x
2033 tools can also be obtained from:
2035 * http://www.elec.canterbury.ac.nz/c4x/
2040 CRIS is the CPU architecture in Axis Communications ETRAX
2041 system-on-a-chip series. These are used in embedded applications.
2043 *Note CRIS Options: (gcc)CRIS Options, for a list of CRIS-specific
2046 There are a few different CRIS targets:
2048 Old target. Includes a multilib for the `elinux' a.out-based
2049 target. No multilibs for newer architecture variants.
2052 Mainly for monolithic embedded systems. Includes a multilib for
2053 the `v10' core used in `ETRAX 100 LX'.
2055 `cris-axis-linux-gnu'
2056 A GNU/Linux port for the CRIS architecture, currently targeting
2057 `ETRAX 100 LX' by default.
2059 For `cris-axis-aout' and `cris-axis-elf' you need binutils 2.11 or
2060 newer. For `cris-axis-linux-gnu' you need binutils 2.12 or newer.
2062 Pre-packaged tools can be obtained from
2063 `ftp://ftp.axis.com/pub/axis/tools/cris/compiler-kit/'. More
2064 information about this platform is available at
2065 `http://developer.axis.com/'.
2070 The CRX CompactRISC architecture is a low-power 32-bit architecture with
2071 fast context switching and architectural extensibility features.
2073 *Note CRX Options: (gcc)CRX Options,
2075 Use `configure --target=crx-elf --enable-languages=c,c++' to
2076 configure GCC for building a CRX cross-compiler. The option
2077 `--target=crx-elf' is also used to build the `newlib' C library for CRX.
2079 It is also possible to build libstdc++-v3 for the CRX architecture.
2080 This needs to be done in a separate step with the following configure
2081 settings: `gcc/libstdc++-v3/configure --host=crx-elf --with-newlib
2082 --enable-sjlj-exceptions --enable-cxx-flags='-fexceptions -frtti''
2087 Please have a look at the binaries page.
2089 You cannot install GCC by itself on MSDOS; it will not compile under
2090 any MSDOS compiler except itself. You need to get the complete
2091 compilation package DJGPP, which includes binaries as well as sources,
2092 and includes all the necessary compilation tools and libraries.
2097 The version of binutils installed in `/usr/bin' probably works with
2098 this release of GCC. However, on FreeBSD 4, bootstrapping against the
2099 latest FSF binutils is known to improve overall testsuite results; and,
2100 on FreeBSD/alpha, using binutils 2.14 or later is required to build
2103 Support for FreeBSD 1 was discontinued in GCC 3.2.
2105 Support for FreeBSD 2 will be discontinued after GCC 3.4. The
2106 following was true for GCC 3.1 but the current status is unknown. For
2107 FreeBSD 2 or any mutant a.out versions of FreeBSD 3: All configuration
2108 support and files as shipped with GCC 2.95 are still in place. FreeBSD
2109 2.2.7 has been known to bootstrap completely; however, it is unknown
2110 which version of binutils was used (it is assumed that it was the
2111 system copy in `/usr/bin') and C++ EH failures were noted.
2113 For FreeBSD using the ELF file format: DWARF 2 debugging is now the
2114 default for all CPU architectures. It had been the default on
2115 FreeBSD/alpha since its inception. You may use `-gstabs' instead of
2116 `-g', if you really want the old debugging format. There are no known
2117 issues with mixing object files and libraries with different debugging
2118 formats. Otherwise, this release of GCC should now match more of the
2119 configuration used in the stock FreeBSD configuration of GCC. In
2120 particular, `--enable-threads' is now configured by default. However,
2121 as a general user, do not attempt to replace the system compiler with
2122 this release. Known to bootstrap and check with good results on
2123 FreeBSD 4.9-STABLE and 5-CURRENT. In the past, known to bootstrap and
2124 check with good results on FreeBSD 3.0, 3.4, 4.0, 4.2, 4.3, 4.4, 4.5,
2127 In principle, `--enable-threads' is now compatible with
2128 `--enable-libgcj' on FreeBSD. However, it has only been built and
2129 tested on `i386-*-freebsd[45]' and `alpha-*-freebsd[45]'. The static
2130 library may be incorrectly built (symbols are missing at link time).
2131 There is a rare timing-based startup hang (probably involves an
2132 assumption about the thread library). Multi-threaded boehm-gc
2133 (required for libjava) exposes severe threaded signal-handling bugs on
2134 FreeBSD before 4.5-RELEASE. Other CPU architectures supported by
2135 FreeBSD will require additional configuration tuning in, at the very
2136 least, both boehm-gc and libffi.
2138 Shared `libgcc_s.so' is now built and installed by default.
2143 Renesas H8/300 series of processors.
2145 Please have a look at the binaries page.
2147 The calling convention and structure layout has changed in release
2148 2.6. All code must be recompiled. The calling convention now passes
2149 the first three arguments in function calls in registers. Structures
2150 are no longer a multiple of 2 bytes.
2155 Support for HP-UX version 9 and older was discontinued in GCC 3.4.
2157 We require using gas/binutils on all hppa platforms; you may
2158 encounter a variety of problems if you try to use the HP assembler.
2160 Specifically, `-g' does not work on HP-UX (since that system uses a
2161 peculiar debugging format which GCC does not know about), unless you
2162 use GAS and GDB. It may be helpful to configure GCC with the
2163 `--with-gnu-as' and `--with-as=...' options to ensure that GCC can find
2166 If you wish to use the pa-risc 2.0 architecture support with a 32-bit
2167 runtime, you must use gas/binutils 2.11 or newer.
2169 There are two default scheduling models for instructions. These are
2170 PROCESSOR_7100LC and PROCESSOR_8000. They are selected from the pa-risc
2171 architecture specified for the target machine when configuring.
2172 PROCESSOR_8000 is the default. PROCESSOR_7100LC is selected when the
2173 target is a `hppa1*' machine.
2175 The PROCESSOR_8000 model is not well suited to older processors.
2176 Thus, it is important to completely specify the machine architecture
2177 when configuring if you want a model other than PROCESSOR_8000. The
2178 macro TARGET_SCHED_DEFAULT can be defined in BOOT_CFLAGS if a different
2179 default scheduling model is desired.
2181 As of GCC 4.0, GCC uses the UNIX 95 namespace for HP-UX 10.10
2182 through 11.00, and the UNIX 98 namespace for HP-UX 11.11 and later.
2183 This namespace change might cause problems when bootstrapping with an
2184 earlier version of GCC or the HP compiler as essentially the same
2185 namespace is required for an entire build. This problem can be avoided
2186 in a number of ways. With HP cc, `UNIX_STD' can be set to `95' or
2187 `98'. Another way is to add an appropriate set of predefines to `CC'.
2188 The description for the `munix=' option contains a list of the
2189 predefines used with each standard.
2191 As of GCC 4.1, `DWARF2' exception handling is available on HP-UX.
2192 It is now the default. This exposed a bug in the handling of data
2193 relocations in the GAS assembler. The handling of 64-bit data
2194 relocations was seriously broken, affecting debugging and exception
2195 support on all `hppa64-*-*' targets. Under some circumstances, 32-bit
2196 data relocations could also be handled incorrectly. This problem is
2197 fixed in GAS version 2.16.91 20051125.
2199 GCC versions prior to 4.1 incorrectly passed and returned complex
2200 values. They are now passed in the same manner as aggregates.
2202 More specific information to `hppa*-hp-hpux*' targets follows.
2207 For hpux10.20, we _highly_ recommend you pick up the latest sed patch
2208 `PHCO_19798' from HP. HP has two sites which provide patches free of
2211 * `http://us.itrc.hp.com/service/home/home.do' US, Canada,
2212 Asia-Pacific, and Latin-America.
2214 * `http://europe.itrc.hp.com/service/home/home.do' Europe.
2216 The HP assembler on these systems has some problems. Most notably
2217 the assembler inserts timestamps into each object file it creates,
2218 causing the 3-stage comparison test to fail during a `make bootstrap'.
2219 You should be able to continue by saying `make all' after getting the
2220 failure from `make bootstrap'.
2222 GCC 4.0 requires CVS binutils as of April 28, 2004 or later. Earlier
2223 versions require binutils 2.8 or later.
2225 The C++ ABI has changed incompatibly in GCC 4.0. COMDAT subspaces
2226 are used for one-only code and data. This resolves many of the previous
2227 problems in using C++ on this target. However, the ABI is not
2228 compatible with the one implemented under HP-UX 11 using secondary
2234 GCC 3.0 and up support HP-UX 11. GCC 2.95.x is not supported and cannot
2235 be used to compile GCC 3.0 and up.
2237 Refer to binaries for information about obtaining precompiled GCC
2238 binaries for HP-UX. Precompiled binaries must be obtained to build the
2239 Ada language as it can't be bootstrapped using C. Ada is only
2240 available for the 32-bit PA-RISC runtime. The libffi and libjava
2241 haven't been ported to HP-UX and don't build.
2243 It is possible to build GCC 3.3 starting with the bundled HP
2244 compiler, but the process requires several steps. GCC 3.3 can then be
2245 used to build later versions. The fastjar program contains ISO C code
2246 and can't be built with the HP bundled compiler. This problem can be
2247 avoided by not building the Java language. For example, use the
2248 `--enable-languages="c,c++,f77,objc"' option in your configure command.
2250 Starting with GCC 3.4 an ISO C compiler is required to bootstrap.
2251 The bundled compiler supports only traditional C; you will need either
2252 HP's unbundled compiler, or a binary distribution of GCC.
2254 There are several possible approaches to building the distribution.
2255 Binutils can be built first using the HP tools. Then, the GCC
2256 distribution can be built. The second approach is to build GCC first
2257 using the HP tools, then build binutils, then rebuild GCC. There have
2258 been problems with various binary distributions, so it is best not to
2259 start from a binary distribution.
2261 On 64-bit capable systems, there are two distinct targets. Different
2262 installation prefixes must be used if both are to be installed on the
2263 same system. The `hppa[1-2]*-hp-hpux11*' target generates code for the
2264 32-bit PA-RISC runtime architecture and uses the HP linker. The
2265 `hppa64-hp-hpux11*' target generates 64-bit code for the PA-RISC 2.0
2266 architecture. The HP and GNU linkers are both supported for this
2269 The script config.guess now selects the target type based on the
2270 compiler detected during configuration. You must define `PATH' or `CC'
2271 so that configure finds an appropriate compiler for the initial
2272 bootstrap. When `CC' is used, the definition should contain the
2273 options that are needed whenever `CC' is used.
2275 Specifically, options that determine the runtime architecture must be
2276 in `CC' to correctly select the target for the build. It is also
2277 convenient to place many other compiler options in `CC'. For example,
2278 `CC="cc -Ac +DA2.0W -Wp,-H16376 -D_CLASSIC_TYPES -D_HPUX_SOURCE"' can
2279 be used to bootstrap the GCC 3.3 branch with the HP compiler in 64-bit
2280 K&R/bundled mode. The `+DA2.0W' option will result in the automatic
2281 selection of the `hppa64-hp-hpux11*' target. The macro definition
2282 table of cpp needs to be increased for a successful build with the HP
2283 compiler. _CLASSIC_TYPES and _HPUX_SOURCE need to be defined when
2284 building with the bundled compiler, or when using the `-Ac' option.
2285 These defines aren't necessary with `-Ae'.
2287 It is best to explicitly configure the `hppa64-hp-hpux11*' target
2288 with the `--with-ld=...' option. This overrides the standard search
2289 for ld. The two linkers supported on this target require different
2290 commands. The default linker is determined during configuration. As a
2291 result, it's not possible to switch linkers in the middle of a GCC
2292 build. This has been been reported to sometimes occur in unified
2293 builds of binutils and GCC.
2295 GCC 3.0 through 3.2 require binutils 2.11 or above. GCC 3.3 through
2296 GCC 4.0 require binutils 2.14 or later.
2298 Although the HP assembler can be used for an initial build, it
2299 shouldn't be used with any languages other than C and perhaps Fortran
2300 due to its many limitations. For example, it does not support weak
2301 symbols or alias definitions. As a result, explicit template
2302 instantiations are required when using C++. This makes it difficult if
2303 not impossible to build many C++ applications. You can't generate
2304 debugging information when using the HP assembler. Finally, `make
2305 bootstrap' fails in the final comparison of object modules due to the
2306 time stamps that it inserts into the modules. The bootstrap can be
2307 continued from this point with `make all'.
2309 A recent linker patch must be installed for the correct operation of
2310 GCC 3.3 and later. `PHSS_26559' and `PHSS_24304' are the oldest linker
2311 patches that are known to work. They are for HP-UX 11.00 and 11.11,
2312 respectively. `PHSS_24303', the companion to `PHSS_24304', might be
2313 usable but it hasn't been tested. These patches have been superseded.
2314 Consult the HP patch database to obtain the currently recommended
2315 linker patch for your system.
2317 The patches are necessary for the support of weak symbols on the
2318 32-bit port, and for the running of initializers and finalizers. Weak
2319 symbols are implemented using SOM secondary definition symbols. Prior
2320 to HP-UX 11, there are bugs in the linker support for secondary symbols.
2321 The patches correct a problem of linker core dumps creating shared
2322 libraries containing secondary symbols, as well as various other
2323 linking issues involving secondary symbols.
2325 GCC 3.3 uses the ELF DT_INIT_ARRAY and DT_FINI_ARRAY capabilities to
2326 run initializers and finalizers on the 64-bit port. The 32-bit port
2327 uses the linker `+init' and `+fini' options for the same purpose. The
2328 patches correct various problems with the +init/+fini options,
2329 including program core dumps. Binutils 2.14 corrects a problem on the
2330 64-bit port resulting from HP's non-standard use of the .init and .fini
2331 sections for array initializers and finalizers.
2333 There are a number of issues to consider in selecting which linker to
2334 use with the 64-bit port. The GNU 64-bit linker can only create dynamic
2335 binaries. The `-static' option causes linking with archive libraries
2336 but doesn't produce a truly static binary. Dynamic binaries still
2337 require final binding by the dynamic loader to resolve a set of
2338 dynamic-loader-defined symbols. The default behavior of the HP linker
2339 is the same as the GNU linker. However, it can generate true 64-bit
2340 static binaries using the `+compat' option.
2342 The HP 64-bit linker doesn't support linkonce semantics. As a
2343 result, C++ programs have many more sections than they should.
2345 The GNU 64-bit linker has some issues with shared library support
2346 and exceptions. As a result, we only support libgcc in archive format.
2347 For similar reasons, dwarf2 unwind and exception support are disabled.
2348 The GNU linker also has problems creating binaries with `-static'. It
2349 doesn't provide stubs for internal calls to global functions in shared
2350 libraries, so these calls can't be overloaded.
2352 Thread support is not implemented in GCC 3.0 through 3.2, so the
2353 `--enable-threads' configure option does not work. In 3.3 and later,
2354 POSIX threads are supported. The optional DCE thread library is not
2357 This port still is undergoing significant development.
2362 Versions of libstdc++-v3 starting with 3.2.1 require bugfixes present
2363 in glibc 2.2.5 and later. More information is available in the
2364 libstdc++-v3 documentation.
2369 Use this configuration to generate `a.out' binaries on Linux-based GNU
2370 systems. This configuration is being superseded.
2375 As of GCC 3.3, binutils 2.13.1 or later is required for this platform.
2376 See bug 10877 for more information.
2378 If you receive Signal 11 errors when building on GNU/Linux, then it
2379 is possible you have a hardware problem. Further information on this
2380 can be found on www.bitwizard.nl.
2385 Use this for the SCO OpenServer Release 5 family of operating systems.
2387 Unlike earlier versions of GCC, the ability to generate COFF with
2388 this target is no longer provided.
2390 Earlier versions of GCC emitted DWARF 1 when generating ELF to allow
2391 the system debugger to be used. That support was too burdensome to
2392 maintain. GCC now emits only DWARF 2 for this target. This means you
2393 may use either the UDK debugger or GDB to debug programs built by this
2396 GCC is now only supported on releases 5.0.4 and later, and requires
2397 that you install Support Level Supplement OSS646B or later, and Support
2398 Level Supplement OSS631C or later. If you are using release 5.0.7 of
2399 OpenServer, you must have at least the first maintenance pack installed
2400 (this includes the relevant portions of OSS646). OSS646, also known as
2401 the "Execution Environment Update", provides updated link editors and
2402 assemblers, as well as updated standard C and math libraries. The C
2403 startup modules are also updated to support the System V gABI draft, and
2404 GCC relies on that behavior. OSS631 provides a collection of commonly
2405 used open source libraries, some of which GCC depends on (such as GNU
2406 gettext and zlib). SCO OpenServer Release 5.0.7 has all of this built
2407 in by default, but OSS631C and later also apply to that release. Please
2408 visit ftp://ftp.sco.com/pub/openserver5 for the latest versions of
2409 these (and other potentially useful) supplements.
2411 Although there is support for using the native assembler, it is
2412 recommended that you configure GCC to use the GNU assembler. You do
2413 this by using the flags `--with-gnu-as'. You should use a modern
2414 version of GNU binutils. Version 2.13.2.1 was used for all testing.
2415 In general, only the `--with-gnu-as' option is tested. A modern
2416 bintuils (as well as a plethora of other development related GNU
2417 utilities) can be found in Support Level Supplement OSS658A, the "GNU
2418 Development Tools" package. See the SCO web and ftp sites for details.
2419 That package also contains the currently "officially supported" version
2420 of GCC, version 2.95.3. It is useful for bootstrapping this version.
2425 Use this for Solaris 10 or later on x86 and x86-64 systems. This
2426 configuration is supported by GCC 4.0 and later versions only.
2428 It is recommended that you configure GCC to use the GNU assembler in
2429 `/usr/sfw/bin/gas' but the Sun linker, using the options `--with-gnu-as
2430 --with-as=/usr/sfw/bin/gas --without-gnu-ld --with-ld=/usr/ccs/bin/ld'.
2435 This target emulates the SCO Universal Development Kit and requires that
2436 package be installed. (If it is installed, you will have a
2437 `/udk/usr/ccs/bin/cc' file present.) It's very much like the
2438 `i?86-*-unixware7*' target but is meant to be used when hosting on a
2439 system where UDK isn't the default compiler such as OpenServer 5 or
2440 Unixware 2. This target will generate binaries that will run on
2441 OpenServer, Unixware 2, or Unixware 7, with the same warnings and
2442 caveats as the SCO UDK.
2444 This target is a little tricky to build because we have to
2445 distinguish it from the native tools (so it gets headers, startups, and
2446 libraries from the right place) while making the tools not think we're
2447 actually building a cross compiler. The easiest way to do this is
2448 with a configure command like this:
2450 CC=/udk/usr/ccs/bin/cc /YOUR/PATH/TO/gcc/configure \
2451 --host=i686-pc-udk --target=i686-pc-udk --program-prefix=udk-
2453 _You should substitute `i686' in the above command with the
2454 appropriate processor for your host._
2456 After the usual `make bootstrap' and `make install', you can then
2457 access the UDK-targeted GCC tools by adding `udk-' before the commonly
2458 known name. For example, to invoke the C compiler, you would use
2459 `udk-gcc'. They will coexist peacefully with any native-target GCC
2460 tools you may have installed.
2465 IA-64 processor (also known as IPF, or Itanium Processor Family)
2468 If you are using the installed system libunwind library with
2469 `--with-system-libunwind', then you must use libunwind 0.98 or later.
2471 None of the following versions of GCC has an ABI that is compatible
2472 with any of the other versions in this list, with the exception that
2473 Red Hat 2.96 and Trillian 000171 are compatible with each other: 3.1,
2474 3.0.2, 3.0.1, 3.0, Red Hat 2.96, and Trillian 000717. This primarily
2475 affects C++ programs and programs that create shared libraries. GCC
2476 3.1 or later is recommended for compiling linux, the kernel. As of
2477 version 3.1 GCC is believed to be fully ABI compliant, and hence no
2478 more major ABI changes are expected.
2483 Building GCC on this target requires the GNU Assembler. The bundled HP
2484 assembler will not work. To prevent GCC from using the wrong assembler,
2485 the option `--with-gnu-as' may be necessary.
2487 The GCC libunwind library has not been ported to HPUX. This means
2488 that for GCC versions 3.2.3 and earlier, `--enable-libunwind-exceptions'
2489 is required to build GCC. For GCC 3.3 and later, this is the default.
2490 For gcc 3.4.3 and later, `--enable-libunwind-exceptions' is removed and
2491 the system libunwind library will always be used.
2496 Support for AIX version 3 and older was discontinued in GCC 3.4.
2498 AIX Make frequently has problems with GCC makefiles. GNU Make
2499 3.79.1 or newer is recommended to build on this platform.
2501 "out of memory" bootstrap failures may indicate a problem with
2502 process resource limits (ulimit). Hard limits are configured in the
2503 `/etc/security/limits' system configuration file.
2505 To speed up the configuration phases of bootstrapping and installing
2506 GCC, one may use GNU Bash instead of AIX `/bin/sh', e.g.,
2508 % CONFIG_SHELL=/opt/freeware/bin/bash
2509 % export CONFIG_SHELL
2511 and then proceed as described in the build instructions, where we
2512 strongly recommend using GNU make and specifying an absolute path to
2513 invoke SRCDIR/configure.
2515 Errors involving `alloca' when building GCC generally are due to an
2516 incorrect definition of `CC' in the Makefile or mixing files compiled
2517 with the native C compiler and GCC. During the stage1 phase of the
2518 build, the native AIX compiler *must* be invoked as `cc' (not `xlc').
2519 Once `configure' has been informed of `xlc', one needs to use `make
2520 distclean' to remove the configure cache files and ensure that `CC'
2521 environment variable does not provide a definition that will confuse
2522 `configure'. If this error occurs during stage2 or later, then the
2523 problem most likely is the version of Make (see above).
2525 The native `as' and `ld' are recommended for bootstrapping on AIX 4
2526 and required for bootstrapping on AIX 5L. The GNU Assembler reports
2527 that it supports WEAK symbols on AIX 4, which causes GCC to try to
2528 utilize weak symbol functionality although it is not supported. The GNU
2529 Assembler and Linker do not support AIX 5L sufficiently to bootstrap
2530 GCC. The native AIX tools do interoperate with GCC.
2532 Building `libstdc++.a' requires a fix for an AIX Assembler bug APAR
2533 IY26685 (AIX 4.3) or APAR IY25528 (AIX 5.1). It also requires a fix
2534 for another AIX Assembler bug and a co-dependent AIX Archiver fix
2535 referenced as APAR IY53606 (AIX 5.2) or a APAR IY54774 (AIX 5.1)
2537 `libstdc++' in GCC 3.4 increments the major version number of the
2538 shared object and GCC installation places the `libstdc++.a' shared
2539 library in a common location which will overwrite the and GCC 3.3
2540 version of the shared library. Applications either need to be
2541 re-linked against the new shared library or the GCC 3.1 and GCC 3.3
2542 versions of the `libstdc++' shared object needs to be available to the
2543 AIX runtime loader. The GCC 3.1 `libstdc++.so.4', if present, and GCC
2544 3.3 `libstdc++.so.5' shared objects can be installed for runtime
2545 dynamic loading using the following steps to set the `F_LOADONLY' flag
2546 in the shared object for _each_ multilib `libstdc++.a' installed:
2548 Extract the shared objects from the currently installed
2549 `libstdc++.a' archive:
2550 % ar -x libstdc++.a libstdc++.so.4 libstdc++.so.5
2552 Enable the `F_LOADONLY' flag so that the shared object will be
2553 available for runtime dynamic loading, but not linking:
2554 % strip -e libstdc++.so.4 libstdc++.so.5
2556 Archive the runtime-only shared object in the GCC 3.4 `libstdc++.a'
2558 % ar -q libstdc++.a libstdc++.so.4 libstdc++.so.5
2560 Linking executables and shared libraries may produce warnings of
2561 duplicate symbols. The assembly files generated by GCC for AIX always
2562 have included multiple symbol definitions for certain global variable
2563 and function declarations in the original program. The warnings should
2564 not prevent the linker from producing a correct library or runnable
2567 AIX 4.3 utilizes a "large format" archive to support both 32-bit and
2568 64-bit object modules. The routines provided in AIX 4.3.0 and AIX 4.3.1
2569 to parse archive libraries did not handle the new format correctly.
2570 These routines are used by GCC and result in error messages during
2571 linking such as "not a COFF file". The version of the routines shipped
2572 with AIX 4.3.1 should work for a 32-bit environment. The `-g' option
2573 of the archive command may be used to create archives of 32-bit objects
2574 using the original "small format". A correct version of the routines
2575 is shipped with AIX 4.3.2 and above.
2577 Some versions of the AIX binder (linker) can fail with a relocation
2578 overflow severe error when the `-bbigtoc' option is used to link
2579 GCC-produced object files into an executable that overflows the TOC. A
2580 fix for APAR IX75823 (OVERFLOW DURING LINK WHEN USING GCC AND -BBIGTOC)
2581 is available from IBM Customer Support and from its
2582 techsupport.services.ibm.com website as PTF U455193.
2584 The AIX 4.3.2.1 linker (bos.rte.bind_cmds Level 4.3.2.1) will dump
2585 core with a segmentation fault when invoked by any version of GCC. A
2586 fix for APAR IX87327 is available from IBM Customer Support and from its
2587 techsupport.services.ibm.com website as PTF U461879. This fix is
2588 incorporated in AIX 4.3.3 and above.
2590 The initial assembler shipped with AIX 4.3.0 generates incorrect
2591 object files. A fix for APAR IX74254 (64BIT DISASSEMBLED OUTPUT FROM
2592 COMPILER FAILS TO ASSEMBLE/BIND) is available from IBM Customer Support
2593 and from its techsupport.services.ibm.com website as PTF U453956. This
2594 fix is incorporated in AIX 4.3.1 and above.
2596 AIX provides National Language Support (NLS). Compilers and
2597 assemblers use NLS to support locale-specific representations of
2598 various data formats including floating-point numbers (e.g., `.' vs
2599 `,' for separating decimal fractions). There have been problems
2600 reported where GCC does not produce the same floating-point formats
2601 that the assembler expects. If one encounters this problem, set the
2602 `LANG' environment variable to `C' or `En_US'.
2604 By default, GCC for AIX 4.1 and above produces code that can be used
2605 on both Power or PowerPC processors.
2607 A default can be specified with the `-mcpu=CPU_TYPE' switch and
2608 using the configure option `--with-cpu-CPU_TYPE'.
2613 Vitesse IQ2000 processors. These are used in embedded applications.
2614 There are no standard Unix configurations.
2619 Renesas M32C processor. This configuration is intended for embedded
2625 Renesas M32R processor. This configuration is intended for embedded
2631 Motorola 68HC11 family micro controllers. These are used in embedded
2632 applications. There are no standard Unix configurations.
2637 Motorola 68HC12 family micro controllers. These are used in embedded
2638 applications. There are no standard Unix configurations.
2643 HP 9000 series 300 or 400 running HP-UX. HP-UX version 8.0 has a bug in
2644 the assembler that prevents compilation of GCC. This bug manifests
2645 itself during the first stage of compilation, while building
2649 cc1: warning: `-g' option not supported on this version of GCC
2650 cc1: warning: `-g1' option not supported on this version of GCC
2651 ./xgcc: Internal compiler error: program as got fatal signal 11
2653 A patched version of the assembler is available as the file
2654 `ftp://altdorf.ai.mit.edu/archive/cph/hpux-8.0-assembler'. If you have
2655 HP software support, the patch can also be obtained directly from HP,
2656 as described in the following note:
2658 This is the patched assembler, to patch SR#1653-010439, where the
2659 assembler aborts on floating point constants.
2661 The bug is not really in the assembler, but in the shared library
2662 version of the function "cvtnum(3c)". The bug on "cvtnum(3c)" is
2663 SR#4701-078451. Anyway, the attached assembler uses the archive
2664 library version of "cvtnum(3c)" and thus does not exhibit the bug.
2666 This patch is also known as PHCO_4484.
2668 In addition gdb does not understand that native HP-UX format, so you
2669 must use gas if you wish to use gdb.
2671 On HP-UX version 8.05, but not on 8.07 or more recent versions, the
2672 `fixproto' shell script triggers a bug in the system shell. If you
2673 encounter this problem, upgrade your operating system or use BASH (the
2674 GNU shell) to run `fixproto'. This bug will cause the fixproto program
2675 to report an error of the form:
2677 ./fixproto: sh internal 1K buffer overflow
2679 To fix this, you can also change the first line of the fixproto
2680 script to look like:
2687 If on a MIPS system you get an error message saying "does not have gp
2688 sections for all it's [sic] sectons [sic]", don't worry about it. This
2689 happens whenever you use GAS with the MIPS linker, but there is not
2690 really anything wrong, and it is okay to use the output file. You can
2691 stop such warnings by installing the GNU linker.
2693 It would be nice to extend GAS to produce the gp tables, but they are
2694 optional, and there should not be a warning about their absence.
2696 The libstdc++ atomic locking routines for MIPS targets requires MIPS
2697 II and later. A patch went in just after the GCC 3.3 release to make
2698 `mips*-*-*' use the generic implementation instead. You can also
2699 configure for `mipsel-elf' as a workaround. The `mips*-*-linux*'
2700 target continues to use the MIPS II routines. More work on this is
2701 expected in future releases.
2703 MIPS systems check for division by zero (unless
2704 `-mno-check-zero-division' is passed to the compiler) by generating
2705 either a conditional trap or a break instruction. Using trap results
2706 in smaller code, but is only supported on MIPS II and later. Also,
2707 some versions of the Linux kernel have a bug that prevents trap from
2708 generating the proper signal (`SIGFPE'). To enable the use of break,
2709 use the `--with-divide=breaks' `configure' option when configuring GCC.
2710 The default is to use traps on systems that support them.
2712 Cross-compilers for the MIPS as target using the MIPS assembler
2713 currently do not work, because the auxiliary programs `mips-tdump.c'
2714 and `mips-tfile.c' can't be compiled on anything but a MIPS. It does
2715 work to cross compile for a MIPS if you use the GNU assembler and
2721 In order to compile GCC on an SGI running IRIX 5, the `compiler_dev.hdr'
2722 subsystem must be installed from the IDO CD-ROM supplied by SGI. It is
2723 also available for download from
2724 `ftp://ftp.sgi.com/sgi/IRIX5.3/iris-development-option-5.3.tardist'.
2726 If you use the MIPS C compiler to bootstrap, it may be necessary to
2727 increase its table size for switch statements with the `-Wf,-XNg1500'
2728 option. If you use the `-O2' optimization option, you also need to use
2731 To enable debugging under IRIX 5, you must use GNU binutils 2.15 or
2732 later, and use the `--with-gnu-ld' `configure' option when configuring
2733 GCC. You need to use GNU `ar' and `nm', also distributed with GNU
2736 Some users have reported that `/bin/sh' will hang during bootstrap.
2737 This problem can be avoided by running the commands:
2739 % CONFIG_SHELL=/bin/ksh
2740 % export CONFIG_SHELL
2742 before starting the build.
2747 If you are using SGI's MIPSpro `cc' as your bootstrap compiler, you must
2748 ensure that the N32 ABI is in use. To test this, compile a simple C
2749 file with `cc' and then run `file' on the resulting object file. The
2750 output should look like:
2752 test.o: ELF N32 MSB ...
2756 test.o: ELF 32-bit MSB ...
2760 test.o: ELF 64-bit MSB ...
2762 then your version of `cc' uses the O32 or N64 ABI by default. You
2763 should set the environment variable `CC' to `cc -n32' before
2766 If you want the resulting `gcc' to run on old 32-bit systems with
2767 the MIPS R4400 CPU, you need to ensure that only code for the `mips3'
2768 instruction set architecture (ISA) is generated. While GCC 3.x does
2769 this correctly, both GCC 2.95 and SGI's MIPSpro `cc' may change the ISA
2770 depending on the machine where GCC is built. Using one of them as the
2771 bootstrap compiler may result in `mips4' code, which won't run at all
2772 on `mips3'-only systems. For the test program above, you should see:
2774 test.o: ELF N32 MSB mips-3 ...
2778 test.o: ELF N32 MSB mips-4 ...
2780 instead, you should set the environment variable `CC' to `cc -n32
2781 -mips3' or `gcc -mips3' respectively before configuring GCC.
2783 MIPSpro C 7.4 may cause bootstrap failures, due to a bug when
2784 inlining `memcmp'. Either add `-U__INLINE_INTRINSICS' to the `CC'
2785 environment variable as a workaround or upgrade to MIPSpro C 7.4.1m.
2787 GCC on IRIX 6 is usually built to support the N32, O32 and N64 ABIs.
2788 If you build GCC on a system that doesn't have the N64 libraries
2789 installed or cannot run 64-bit binaries, you need to configure with
2790 `--disable-multilib' so GCC doesn't try to use them. This will disable
2791 building the O32 libraries, too. Look for `/usr/lib64/libc.so.1' to
2792 see if you have the 64-bit libraries installed.
2794 To enable debugging for the O32 ABI, you must use GNU `as' from GNU
2795 binutils 2.15 or later. You may also use GNU `ld', but this is not
2796 required and currently causes some problems with Ada.
2798 The `--enable-threads' option doesn't currently work, a patch is in
2799 preparation for a future release. The `--enable-libgcj' option is
2800 disabled by default: IRIX 6 uses a very low default limit (20480) for
2801 the command line length. Although `libtool' contains a workaround for
2802 this problem, at least the N64 `libgcj' is known not to build despite
2803 this, running into an internal error of the native `ld'. A sure fix is
2804 to increase this limit (`ncargs') to its maximum of 262144 bytes. If
2805 you have root access, you can use the `systune' command to do this.
2807 See `http://freeware.sgi.com/' for more information about using GCC
2813 You can specify a default version for the `-mcpu=CPU_TYPE' switch by
2814 using the configure option `--with-cpu-CPU_TYPE'.
2819 PowerPC running Darwin (Mac OS X kernel).
2821 Pre-installed versions of Mac OS X may not include any developer
2822 tools, meaning that you will not be able to build GCC from source. Tool
2823 binaries are available at
2824 `http://developer.apple.com/darwin/projects/compiler/' (free
2825 registration required).
2827 This version of GCC requires at least cctools-590.7.
2829 The version of GCC shipped by Apple typically includes a number of
2830 extensions not available in a standard GCC release. These extensions
2831 are generally for backwards compatibility and best avoided.
2833 powerpc-*-elf, powerpc-*-sysv4
2834 ==============================
2836 PowerPC system in big endian mode, running System V.4.
2838 powerpc*-*-linux-gnu*
2839 =====================
2841 You will need binutils 2.15 or newer for a working GCC.
2846 PowerPC system in big endian mode running NetBSD. To build the
2847 documentation you will need Texinfo version 4.2 (NetBSD 1.5.1 included
2848 Texinfo version 3.12).
2853 Embedded PowerPC system in big endian mode for use in running under the
2859 Embedded PowerPC system in big endian mode.
2861 powerpcle-*-elf, powerpcle-*-sysv4
2862 ==================================
2864 PowerPC system in little endian mode, running System V.4.
2869 Embedded PowerPC system in little endian mode for use in running under
2875 Embedded PowerPC system in little endian mode.
2880 S/390 system running GNU/Linux for S/390.
2885 zSeries system (64-bit) running GNU/Linux for zSeries.
2890 zSeries system (64-bit) running TPF. This platform is supported as
2891 cross-compilation target only.
2896 Sun does not ship a C compiler with Solaris 2. To bootstrap and install
2897 GCC you first have to install a pre-built compiler, see the binaries
2900 The Solaris 2 `/bin/sh' will often fail to configure `libstdc++-v3',
2901 `boehm-gc' or `libjava'. We therefore recommend using the following
2902 initial sequence of commands
2904 % CONFIG_SHELL=/bin/ksh
2905 % export CONFIG_SHELL
2907 and proceed as described in the configure instructions. In addition
2908 we strongly recommend specifying an absolute path to invoke
2911 Solaris 2 comes with a number of optional OS packages. Some of these
2912 are needed to use GCC fully, namely `SUNWarc', `SUNWbtool', `SUNWesu',
2913 `SUNWhea', `SUNWlibm', `SUNWsprot', and `SUNWtoo'. If you did not
2914 install all optional packages when installing Solaris 2, you will need
2915 to verify that the packages that GCC needs are installed.
2917 To check whether an optional package is installed, use the `pkginfo'
2918 command. To add an optional package, use the `pkgadd' command. For
2919 further details, see the Solaris 2 documentation.
2921 Trying to use the linker and other tools in `/usr/ucb' to install
2922 GCC has been observed to cause trouble. For example, the linker may
2923 hang indefinitely. The fix is to remove `/usr/ucb' from your `PATH'.
2925 The build process works more smoothly with the legacy Sun tools so,
2926 if you have `/usr/xpg4/bin' in your `PATH', we recommend that you place
2927 `/usr/bin' before `/usr/xpg4/bin' for the duration of the build.
2929 All releases of GNU binutils prior to 2.11.2 have known bugs on this
2930 platform. We recommend the use of GNU binutils 2.11.2 or later, or the
2931 vendor tools (Sun `as', Sun `ld'). Note that your mileage may vary if
2932 you use a combination of the GNU tools and the Sun tools: while the
2933 combination GNU `as' + Sun `ld' should reasonably work, the reverse
2934 combination Sun `as' + GNU `ld' is known to cause memory corruption at
2935 runtime in some cases for C++ programs.
2937 The stock GNU binutils 2.15 release is broken on this platform
2938 because of a single bug. It has been fixed on the 2.15 branch in the
2939 CVS repository. You can obtain a working version by checking out the
2940 binutils-2_15-branch from the CVS repository or applying the patch
2941 `http://sources.redhat.com/ml/binutils-cvs/2004-09/msg00036.html' to the
2944 We recommend using GNU binutils 2.16 or later in conjunction with
2945 GCC 4.x, or the vendor tools (Sun `as', Sun `ld'). However, for
2946 Solaris 10 and above, an additional patch is required in order for the
2947 GNU linker to be able to cope with a new flavor of shared libraries.
2948 You can obtain a working version by checking out the
2949 binutils-2_16-branch from the CVS repository or applying the patch
2950 `http://sourceware.org/ml/binutils-cvs/2005-07/msg00122.html' to the
2953 Sun bug 4296832 turns up when compiling X11 headers with GCC 2.95 or
2954 newer: `g++' will complain that types are missing. These headers assume
2955 that omitting the type means `int'; this assumption worked for C89 but
2956 is wrong for C++, and is now wrong for C99 also.
2958 `g++' accepts such (invalid) constructs with the option
2959 `-fpermissive'; it will assume that any missing type is `int' (as
2962 There are patches for Solaris 2.6 (105633-56 or newer for SPARC,
2963 106248-42 or newer for Intel), Solaris 7 (108376-21 or newer for SPARC,
2964 108377-20 for Intel), and Solaris 8 (108652-24 or newer for SPARC,
2965 108653-22 for Intel) that fix this bug.
2967 Sun bug 4927647 sometimes causes random spurious testsuite failures
2968 related to missing diagnostic output. This bug doesn't affect GCC
2969 itself, rather it is a kernel bug triggered by the `expect' program
2970 which is used only by the GCC testsuite driver. When the bug causes
2971 the `expect' program to miss anticipated output, extra testsuite
2974 There are patches for Solaris 8 (117350-12 or newer for SPARC,
2975 117351-12 or newer for Intel) and Solaris 9 (117171-11 or newer for
2976 SPARC, 117172-11 or newer for Intel) that address this problem.
2981 When GCC is configured to use binutils 2.11.2 or later the binaries
2982 produced are smaller than the ones produced using Sun's native tools;
2983 this difference is quite significant for binaries containing debugging
2986 Sun `as' 4.x is broken in that it cannot cope with long symbol names.
2987 A typical error message might look similar to the following:
2989 /usr/ccs/bin/as: "/var/tmp/ccMsw135.s", line 11041: error:
2990 can't compute value of an expression involving an external symbol.
2992 This is Sun bug 4237974. This is fixed with patch 108908-02 for
2993 Solaris 2.6 and has been fixed in later (5.x) versions of the assembler,
2994 starting with Solaris 7.
2996 Starting with Solaris 7, the operating system is capable of executing
2997 64-bit SPARC V9 binaries. GCC 3.1 and later properly supports this;
2998 the `-m64' option enables 64-bit code generation. However, if all you
2999 want is code tuned for the UltraSPARC CPU, you should try the
3000 `-mtune=ultrasparc' option instead, which produces code that, unlike
3001 full 64-bit code, can still run on non-UltraSPARC machines.
3003 When configuring on a Solaris 7 or later system that is running a
3004 kernel that supports only 32-bit binaries, one must configure with
3005 `--disable-multilib', since we will not be able to build the 64-bit
3008 GCC 3.3 and GCC 3.4 trigger code generation bugs in earlier versions
3009 of the GNU compiler (especially GCC 3.0.x versions), which lead to the
3010 miscompilation of the stage1 compiler and the subsequent failure of the
3011 bootstrap process. A workaround is to use GCC 3.2.3 as an intermediary
3012 stage, i.e. to bootstrap that compiler with the base compiler and then
3013 use it to bootstrap the final compiler.
3015 GCC 3.4 triggers a code generation bug in versions 5.4 (Sun ONE
3016 Studio 7) and 5.5 (Sun ONE Studio 8) of the Sun compiler, which causes
3017 a bootstrap failure in form of a miscompilation of the stage1 compiler
3018 by the Sun compiler. This is Sun bug 4974440. This is fixed with
3021 GCC 3.4 changed the default debugging format from STABS to DWARF-2
3022 for 32-bit code on Solaris 7 and later. If you use the Sun assembler,
3023 this change apparently runs afoul of Sun bug 4910101 (which is
3024 referenced as a x86-only problem by Sun, probably because they do not
3025 use DWARF-2). A symptom of the problem is that you cannot compile C++
3026 programs like `groff' 1.19.1 without getting messages similar to the
3029 ld: warning: relocation error: R_SPARC_UA32: ...
3030 external symbolic relocation against non-allocatable section
3031 .debug_info cannot be processed at runtime: relocation ignored.
3033 To work around this problem, compile with `-gstabs+' instead of
3036 When configuring the GNU Multiple Precision Library (GMP) on a
3037 Solaris 7 or later system, the canonical target triplet must be
3038 specified as the `build' parameter on the configure line:
3040 ./configure --build=sparc-sun-solaris2.7 --prefix=xxx --enable-mpfr
3042 sparc-sun-solaris2.7
3043 ====================
3045 Sun patch 107058-01 (1999-01-13) for Solaris 7/SPARC triggers a bug in
3046 the dynamic linker. This problem (Sun bug 4210064) affects GCC 2.8 and
3047 later, including all EGCS releases. Sun formerly recommended 107058-01
3048 for all Solaris 7 users, but around 1999-09-01 it started to recommend
3049 it only for people who use Sun's compilers.
3051 Here are some workarounds to this problem:
3052 * Do not install Sun patch 107058-01 until after Sun releases a
3053 complete patch for bug 4210064. This is the simplest course to
3054 take, unless you must also use Sun's C compiler. Unfortunately
3055 107058-01 is preinstalled on some new Solaris 7-based hosts, so
3056 you may have to back it out.
3058 * Copy the original, unpatched Solaris 7 `/usr/ccs/bin/as' into
3059 `/usr/local/libexec/gcc/sparc-sun-solaris2.7/3.4/as', adjusting
3060 the latter name to fit your local conventions and software version
3063 * Install Sun patch 106950-03 (1999-05-25) or later. Nobody with
3064 both 107058-01 and 106950-03 installed has reported the bug with
3065 GCC and Sun's dynamic linker. This last course of action is
3066 riskiest, for two reasons. First, you must install 106950 on all
3067 hosts that run code generated by GCC; it doesn't suffice to
3068 install it only on the hosts that run GCC itself. Second, Sun
3069 says that 106950-03 is only a partial fix for bug 4210064, but Sun
3070 doesn't know whether the partial fix is adequate for GCC.
3071 Revision -08 or later should fix the bug. The current (as of
3072 2004-05-23) revision is -24, and is included in the Solaris 7
3073 Recommended Patch Cluster.
3075 GCC 3.3 triggers a bug in version 5.0 Alpha 03/27/98 of the Sun
3076 assembler, which causes a bootstrap failure when linking the 64-bit
3077 shared version of libgcc. A typical error message is:
3079 ld: fatal: relocation error: R_SPARC_32: file libgcc/sparcv9/_muldi3.o:
3080 symbol <unknown>: offset 0xffffffff7ec133e7 is non-aligned.
3082 This bug has been fixed in the final 5.0 version of the assembler.
3084 A similar problem was reported for version Sun WorkShop 6 99/08/18
3085 of the Sun assembler, which causes a bootstrap failure with GCC 4.0.0:
3087 ld: fatal: relocation error: R_SPARC_DISP32:
3088 file .libs/libstdc++.lax/libsupc++convenience.a/vterminate.o:
3089 symbol <unknown>: offset 0xfccd33ad is non-aligned
3091 This bug has been fixed in more recent revisions of the assembler.
3096 GCC versions 3.0 and higher require binutils 2.11.2 and glibc 2.2.4 or
3097 newer on this platform. All earlier binutils and glibc releases
3098 mishandled unaligned relocations on `sparc-*-*' targets.
3103 The following compiler flags must be specified in the configure step in
3104 order to bootstrap this target with the Sun compiler:
3106 % CC="cc -xildoff -xarch=v9" SRCDIR/configure [OPTIONS] [TARGET]
3108 `-xildoff' turns off the incremental linker, and `-xarch=v9'
3109 specifies the SPARC-V9 architecture to the Sun linker and assembler.
3114 This is a synonym for sparc64-*-solaris2*.
3119 On System V release 3, you may get this error message while linking:
3121 ld fatal: failed to write symbol name SOMETHING
3122 in strings table for file WHATEVER
3124 This probably indicates that the disk is full or your ulimit won't
3125 allow the file to be as large as it needs to be.
3127 This problem can also result because the kernel parameter `MAXUMEM'
3128 is too small. If so, you must regenerate the kernel and make the value
3129 much larger. The default value is reported to be 1024; a value of 32768
3130 is said to work. Smaller values may also work.
3132 On System V, if you get an error like this,
3134 /usr/local/lib/bison.simple: In function `yyparse':
3135 /usr/local/lib/bison.simple:625: virtual memory exhausted
3137 that too indicates a problem with disk space, ulimit, or `MAXUMEM'.
3139 On a System V release 4 system, make sure `/usr/bin' precedes
3140 `/usr/ucb' in `PATH'. The `cc' command in `/usr/ucb' uses libraries
3146 Don't try compiling with VAX C (`vcc'). It produces incorrect code in
3147 some cases (for example, when `alloca' is used).
3152 Support for VxWorks is in flux. At present GCC supports _only_ the
3153 very recent VxWorks 5.5 (aka Tornado 2.2) release, and only on PowerPC.
3154 We welcome patches for other architectures supported by VxWorks 5.5.
3155 Support for VxWorks AE would also be welcome; we believe this is merely
3156 a matter of writing an appropriate "configlette" (see below). We are
3157 not interested in supporting older, a.out or COFF-based, versions of
3160 VxWorks comes with an older version of GCC installed in
3161 `$WIND_BASE/host'; we recommend you do not overwrite it. Choose an
3162 installation PREFIX entirely outside $WIND_BASE. Before running
3163 `configure', create the directories `PREFIX' and `PREFIX/bin'. Link or
3164 copy the appropriate assembler, linker, etc. into `PREFIX/bin', and set
3165 your PATH to include that directory while running both `configure' and
3168 You must give `configure' the `--with-headers=$WIND_BASE/target/h'
3169 switch so that it can find the VxWorks system headers. Since VxWorks
3170 is a cross compilation target only, you must also specify
3171 `--target=TARGET'. `configure' will attempt to create the directory
3172 `PREFIX/TARGET/sys-include' and copy files into it; make sure the user
3173 running `configure' has sufficient privilege to do so.
3175 GCC's exception handling runtime requires a special "configlette"
3176 module, `contrib/gthr_supp_vxw_5x.c'. Follow the instructions in that
3177 file to add the module to your kernel build. (Future versions of
3178 VxWorks will incorporate this module.)
3180 x86_64-*-*, amd64-*-*
3181 =====================
3183 GCC supports the x86-64 architecture implemented by the AMD64 processor
3184 (amd64-*-* is an alias for x86_64-*-*) on GNU/Linux, FreeBSD and NetBSD.
3185 On GNU/Linux the default is a bi-arch compiler which is able to generate
3186 both 64-bit x86-64 and 32-bit x86 code (via the `-m32' switch).
3191 This target is intended for embedded Xtensa systems using the `newlib'
3192 C library. It uses ELF but does not support shared objects.
3193 Designed-defined instructions specified via the Tensilica Instruction
3194 Extension (TIE) language are only supported through inline assembly.
3196 The Xtensa configuration information must be specified prior to
3197 building GCC. The `include/xtensa-config.h' header file contains the
3198 configuration information. If you created your own Xtensa
3199 configuration with the Xtensa Processor Generator, the downloaded files
3200 include a customized copy of this header file, which you can use to
3201 replace the default header file.
3206 This target is for Xtensa systems running GNU/Linux. It supports ELF
3207 shared objects and the GNU C library (glibc). It also generates
3208 position-independent code (PIC) regardless of whether the `-fpic' or
3209 `-fPIC' options are used. In other respects, this target is the same
3210 as the `xtensa-*-elf' target.
3212 Microsoft Windows (32-bit)
3213 ==========================
3215 Ports of GCC are included with the Cygwin environment.
3217 GCC will build under Cygwin without modification; it does not build
3218 with Microsoft's C++ compiler and there are no plans to make it do so.
3223 GCC does not currently support OS/2. However, Andrew Zabolotny has been
3224 working on a generic OS/2 port with pgcc. The current code can be found
3225 at http://www.goof.com/pcg/os2/.
3230 GCC contains support files for many older (1980s and early 1990s) Unix
3231 variants. For the most part, support for these systems has not been
3232 deliberately removed, but it has not been maintained for several years
3233 and may suffer from bitrot.
3235 Starting with GCC 3.1, each release has a list of "obsoleted"
3236 systems. Support for these systems is still present in that release,
3237 but `configure' will fail unless the `--enable-obsolete' option is
3238 given. Unless a maintainer steps forward, support for these systems
3239 will be removed from the next release of GCC.
3241 Support for old systems as hosts for GCC can cause problems if the
3242 workarounds for compiler, library and operating system bugs affect the
3243 cleanliness or maintainability of the rest of GCC. In some cases, to
3244 bring GCC up on such a system, if still possible with current GCC, may
3245 require first installing an old version of GCC which did work on that
3246 system, and using it to compile a more recent GCC, to avoid bugs in the
3247 vendor compiler. Old releases of GCC 1 and GCC 2 are available in the
3248 `old-releases' directory on the GCC mirror sites. Header bugs may
3249 generally be avoided using `fixincludes', but bugs or deficiencies in
3250 libraries and the operating system may still cause problems.
3252 Support for older systems as targets for cross-compilation is less
3253 problematic than support for them as hosts for GCC; if an enthusiast
3254 wishes to make such a target work again (including resurrecting any of
3255 the targets that never worked with GCC 2, starting from the last
3256 version before they were removed), patches following the usual
3257 requirements would be likely to be accepted, since they should not
3258 affect the support for more modern targets.
3260 For some systems, old versions of GNU binutils may also be useful,
3261 and are available from `pub/binutils/old-releases' on
3262 sources.redhat.com mirror sites.
3264 Some of the information on specific systems above relates to such
3265 older systems, but much of the information about GCC on such systems
3266 (which may no longer be applicable to current GCC) is to be found in
3267 the GCC texinfo manual.
3269 all ELF targets (SVR4, Solaris 2, etc.)
3270 =======================================
3272 C++ support is significantly better on ELF targets if you use the GNU
3273 linker; duplicate copies of inlines, vtables and template
3274 instantiations will be discarded automatically.
3277 File: gccinstall.info, Node: Old, Next: GNU Free Documentation License, Prev: Specific, Up: Top
3279 10 Old installation documentation
3280 *********************************
3282 Note most of this information is out of date and superseded by the
3283 previous chapters of this manual. It is provided for historical
3284 reference only, because of a lack of volunteers to merge it into the
3289 * Configurations:: Configurations Supported by GCC.
3291 Here is the procedure for installing GCC on a GNU or Unix system.
3293 1. If you have chosen a configuration for GCC which requires other GNU
3294 tools (such as GAS or the GNU linker) instead of the standard
3295 system tools, install the required tools in the build directory
3296 under the names `as', `ld' or whatever is appropriate.
3298 Alternatively, you can do subsequent compilation using a value of
3299 the `PATH' environment variable such that the necessary GNU tools
3300 come before the standard system tools.
3302 2. Specify the host, build and target machine configurations. You do
3303 this when you run the `configure' script.
3305 The "build" machine is the system which you are using, the "host"
3306 machine is the system where you want to run the resulting compiler
3307 (normally the build machine), and the "target" machine is the
3308 system for which you want the compiler to generate code.
3310 If you are building a compiler to produce code for the machine it
3311 runs on (a native compiler), you normally do not need to specify
3312 any operands to `configure'; it will try to guess the type of
3313 machine you are on and use that as the build, host and target
3314 machines. So you don't need to specify a configuration when
3315 building a native compiler unless `configure' cannot figure out
3316 what your configuration is or guesses wrong.
3318 In those cases, specify the build machine's "configuration name"
3319 with the `--host' option; the host and target will default to be
3320 the same as the host machine.
3324 ./configure --host=sparc-sun-sunos4.1
3326 A configuration name may be canonical or it may be more or less
3329 A canonical configuration name has three parts, separated by
3330 dashes. It looks like this: `CPU-COMPANY-SYSTEM'. (The three
3331 parts may themselves contain dashes; `configure' can figure out
3332 which dashes serve which purpose.) For example,
3333 `m68k-sun-sunos4.1' specifies a Sun 3.
3335 You can also replace parts of the configuration by nicknames or
3336 aliases. For example, `sun3' stands for `m68k-sun', so
3337 `sun3-sunos4.1' is another way to specify a Sun 3.
3339 You can specify a version number after any of the system types,
3340 and some of the CPU types. In most cases, the version is
3341 irrelevant, and will be ignored. So you might as well specify the
3342 version if you know it.
3344 See *Note Configurations::, for a list of supported configuration
3345 names and notes on many of the configurations. You should check
3346 the notes in that section before proceeding any further with the
3347 installation of GCC.
3351 File: gccinstall.info, Node: Configurations, Up: Old
3353 10.1 Configurations Supported by GCC
3354 ====================================
3356 Here are the possible CPU types:
3358 1750a, a29k, alpha, arm, avr, cN, clipper, dsp16xx, elxsi, fr30,
3359 h8300, hppa1.0, hppa1.1, i370, i386, i486, i586, i686, i786, i860,
3360 i960, ip2k, m32r, m68000, m68k, m6811, m6812, m88k, mcore, mips,
3361 mipsel, mips64, mips64el, mn10200, mn10300, ns32k, pdp11, powerpc,
3362 powerpcle, romp, rs6000, sh, sparc, sparclite, sparc64, v850, vax,
3365 Here are the recognized company names. As you can see, customary
3366 abbreviations are used rather than the longer official names.
3368 acorn, alliant, altos, apollo, apple, att, bull, cbm, convergent,
3369 convex, crds, dec, dg, dolphin, elxsi, encore, harris, hitachi,
3370 hp, ibm, intergraph, isi, mips, motorola, ncr, next, ns, omron,
3371 plexus, sequent, sgi, sony, sun, tti, unicom, wrs.
3373 The company name is meaningful only to disambiguate when the rest of
3374 the information supplied is insufficient. You can omit it, writing
3375 just `CPU-SYSTEM', if it is not needed. For example, `vax-ultrix4.2'
3376 is equivalent to `vax-dec-ultrix4.2'.
3378 Here is a list of system types:
3380 386bsd, aix, acis, amigaos, aos, aout, aux, bosx, bsd, clix, coff,
3381 ctix, cxux, dgux, dynix, ebmon, ecoff, elf, esix, freebsd, hms,
3382 genix, gnu, linux, linux-gnu, hiux, hpux, iris, irix, isc, luna,
3383 lynxos, mach, minix, msdos, mvs, netbsd, newsos, nindy, ns, osf,
3384 osfrose, ptx, riscix, riscos, rtu, sco, sim, solaris, sunos, sym,
3385 sysv, udi, ultrix, unicos, uniplus, unos, vms, vsta, vxworks,
3388 You can omit the system type; then `configure' guesses the operating
3389 system from the CPU and company.
3391 You can add a version number to the system type; this may or may not
3392 make a difference. For example, you can write `bsd4.3' or `bsd4.4' to
3393 distinguish versions of BSD. In practice, the version number is most
3394 needed for `sysv3' and `sysv4', which are often treated differently.
3396 `linux-gnu' is the canonical name for the GNU/Linux target; however
3397 GCC will also accept `linux'. The version of the kernel in use is not
3398 relevant on these systems. A suffix such as `libc1' or `aout'
3399 distinguishes major versions of the C library; all of the suffixed
3400 versions are obsolete.
3402 If you specify an impossible combination such as `i860-dg-vms', then
3403 you may get an error message from `configure', or it may ignore part of
3404 the information and do the best it can with the rest. `configure'
3405 always prints the canonical name for the alternative that it used. GCC
3406 does not support all possible alternatives.
3408 Often a particular model of machine has a name. Many machine names
3409 are recognized as aliases for CPU/company combinations. Thus, the
3410 machine name `sun3', mentioned above, is an alias for `m68k-sun'.
3411 Sometimes we accept a company name as a machine name, when the name is
3412 popularly used for a particular machine. Here is a table of the known
3415 3300, 3b1, 3bN, 7300, altos3068, altos, apollo68, att-7300,
3416 balance, convex-cN, crds, decstation-3100, decstation, delta,
3417 encore, fx2800, gmicro, hp7NN, hp8NN, hp9k2NN, hp9k3NN, hp9k7NN,
3418 hp9k8NN, iris4d, iris, isi68, m3230, magnum, merlin, miniframe,
3419 mmax, news-3600, news800, news, next, pbd, pc532, pmax, powerpc,
3420 powerpcle, ps2, risc-news, rtpc, sun2, sun386i, sun386, sun3,
3421 sun4, symmetry, tower-32, tower.
3423 Remember that a machine name specifies both the cpu type and the company
3424 name. If you want to install your own homemade configuration files,
3425 you can use `local' as the company name to access them. If you use
3426 configuration `CPU-local', the configuration name without the cpu prefix
3427 is used to form the configuration file names.
3429 Thus, if you specify `m68k-local', configuration uses files
3430 `m68k.md', `local.h', `m68k.c', `xm-local.h', `t-local', and `x-local',
3431 all in the directory `config/m68k'.
3434 File: gccinstall.info, Node: GNU Free Documentation License, Next: Concept Index, Prev: Old, Up: Top
3436 GNU Free Documentation License
3437 ******************************
3439 Version 1.2, November 2002
3441 Copyright (C) 2000,2001,2002 Free Software Foundation, Inc.
3442 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
3444 Everyone is permitted to copy and distribute verbatim copies
3445 of this license document, but changing it is not allowed.
3449 The purpose of this License is to make a manual, textbook, or other
3450 functional and useful document "free" in the sense of freedom: to
3451 assure everyone the effective freedom to copy and redistribute it,
3452 with or without modifying it, either commercially or
3453 noncommercially. Secondarily, this License preserves for the
3454 author and publisher a way to get credit for their work, while not
3455 being considered responsible for modifications made by others.
3457 This License is a kind of "copyleft", which means that derivative
3458 works of the document must themselves be free in the same sense.
3459 It complements the GNU General Public License, which is a copyleft
3460 license designed for free software.
3462 We have designed this License in order to use it for manuals for
3463 free software, because free software needs free documentation: a
3464 free program should come with manuals providing the same freedoms
3465 that the software does. But this License is not limited to
3466 software manuals; it can be used for any textual work, regardless
3467 of subject matter or whether it is published as a printed book.
3468 We recommend this License principally for works whose purpose is
3469 instruction or reference.
3471 1. APPLICABILITY AND DEFINITIONS
3473 This License applies to any manual or other work, in any medium,
3474 that contains a notice placed by the copyright holder saying it
3475 can be distributed under the terms of this License. Such a notice
3476 grants a world-wide, royalty-free license, unlimited in duration,
3477 to use that work under the conditions stated herein. The
3478 "Document", below, refers to any such manual or work. Any member
3479 of the public is a licensee, and is addressed as "you". You
3480 accept the license if you copy, modify or distribute the work in a
3481 way requiring permission under copyright law.
3483 A "Modified Version" of the Document means any work containing the
3484 Document or a portion of it, either copied verbatim, or with
3485 modifications and/or translated into another language.
3487 A "Secondary Section" is a named appendix or a front-matter section
3488 of the Document that deals exclusively with the relationship of the
3489 publishers or authors of the Document to the Document's overall
3490 subject (or to related matters) and contains nothing that could
3491 fall directly within that overall subject. (Thus, if the Document
3492 is in part a textbook of mathematics, a Secondary Section may not
3493 explain any mathematics.) The relationship could be a matter of
3494 historical connection with the subject or with related matters, or
3495 of legal, commercial, philosophical, ethical or political position
3498 The "Invariant Sections" are certain Secondary Sections whose
3499 titles are designated, as being those of Invariant Sections, in
3500 the notice that says that the Document is released under this
3501 License. If a section does not fit the above definition of
3502 Secondary then it is not allowed to be designated as Invariant.
3503 The Document may contain zero Invariant Sections. If the Document
3504 does not identify any Invariant Sections then there are none.
3506 The "Cover Texts" are certain short passages of text that are
3507 listed, as Front-Cover Texts or Back-Cover Texts, in the notice
3508 that says that the Document is released under this License. A
3509 Front-Cover Text may be at most 5 words, and a Back-Cover Text may
3510 be at most 25 words.
3512 A "Transparent" copy of the Document means a machine-readable copy,
3513 represented in a format whose specification is available to the
3514 general public, that is suitable for revising the document
3515 straightforwardly with generic text editors or (for images
3516 composed of pixels) generic paint programs or (for drawings) some
3517 widely available drawing editor, and that is suitable for input to
3518 text formatters or for automatic translation to a variety of
3519 formats suitable for input to text formatters. A copy made in an
3520 otherwise Transparent file format whose markup, or absence of
3521 markup, has been arranged to thwart or discourage subsequent
3522 modification by readers is not Transparent. An image format is
3523 not Transparent if used for any substantial amount of text. A
3524 copy that is not "Transparent" is called "Opaque".
3526 Examples of suitable formats for Transparent copies include plain
3527 ASCII without markup, Texinfo input format, LaTeX input format,
3528 SGML or XML using a publicly available DTD, and
3529 standard-conforming simple HTML, PostScript or PDF designed for
3530 human modification. Examples of transparent image formats include
3531 PNG, XCF and JPG. Opaque formats include proprietary formats that
3532 can be read and edited only by proprietary word processors, SGML or
3533 XML for which the DTD and/or processing tools are not generally
3534 available, and the machine-generated HTML, PostScript or PDF
3535 produced by some word processors for output purposes only.
3537 The "Title Page" means, for a printed book, the title page itself,
3538 plus such following pages as are needed to hold, legibly, the
3539 material this License requires to appear in the title page. For
3540 works in formats which do not have any title page as such, "Title
3541 Page" means the text near the most prominent appearance of the
3542 work's title, preceding the beginning of the body of the text.
3544 A section "Entitled XYZ" means a named subunit of the Document
3545 whose title either is precisely XYZ or contains XYZ in parentheses
3546 following text that translates XYZ in another language. (Here XYZ
3547 stands for a specific section name mentioned below, such as
3548 "Acknowledgements", "Dedications", "Endorsements", or "History".)
3549 To "Preserve the Title" of such a section when you modify the
3550 Document means that it remains a section "Entitled XYZ" according
3553 The Document may include Warranty Disclaimers next to the notice
3554 which states that this License applies to the Document. These
3555 Warranty Disclaimers are considered to be included by reference in
3556 this License, but only as regards disclaiming warranties: any other
3557 implication that these Warranty Disclaimers may have is void and
3558 has no effect on the meaning of this License.
3562 You may copy and distribute the Document in any medium, either
3563 commercially or noncommercially, provided that this License, the
3564 copyright notices, and the license notice saying this License
3565 applies to the Document are reproduced in all copies, and that you
3566 add no other conditions whatsoever to those of this License. You
3567 may not use technical measures to obstruct or control the reading
3568 or further copying of the copies you make or distribute. However,
3569 you may accept compensation in exchange for copies. If you
3570 distribute a large enough number of copies you must also follow
3571 the conditions in section 3.
3573 You may also lend copies, under the same conditions stated above,
3574 and you may publicly display copies.
3576 3. COPYING IN QUANTITY
3578 If you publish printed copies (or copies in media that commonly
3579 have printed covers) of the Document, numbering more than 100, and
3580 the Document's license notice requires Cover Texts, you must
3581 enclose the copies in covers that carry, clearly and legibly, all
3582 these Cover Texts: Front-Cover Texts on the front cover, and
3583 Back-Cover Texts on the back cover. Both covers must also clearly
3584 and legibly identify you as the publisher of these copies. The
3585 front cover must present the full title with all words of the
3586 title equally prominent and visible. You may add other material
3587 on the covers in addition. Copying with changes limited to the
3588 covers, as long as they preserve the title of the Document and
3589 satisfy these conditions, can be treated as verbatim copying in
3592 If the required texts for either cover are too voluminous to fit
3593 legibly, you should put the first ones listed (as many as fit
3594 reasonably) on the actual cover, and continue the rest onto
3597 If you publish or distribute Opaque copies of the Document
3598 numbering more than 100, you must either include a
3599 machine-readable Transparent copy along with each Opaque copy, or
3600 state in or with each Opaque copy a computer-network location from
3601 which the general network-using public has access to download
3602 using public-standard network protocols a complete Transparent
3603 copy of the Document, free of added material. If you use the
3604 latter option, you must take reasonably prudent steps, when you
3605 begin distribution of Opaque copies in quantity, to ensure that
3606 this Transparent copy will remain thus accessible at the stated
3607 location until at least one year after the last time you
3608 distribute an Opaque copy (directly or through your agents or
3609 retailers) of that edition to the public.
3611 It is requested, but not required, that you contact the authors of
3612 the Document well before redistributing any large number of
3613 copies, to give them a chance to provide you with an updated
3614 version of the Document.
3618 You may copy and distribute a Modified Version of the Document
3619 under the conditions of sections 2 and 3 above, provided that you
3620 release the Modified Version under precisely this License, with
3621 the Modified Version filling the role of the Document, thus
3622 licensing distribution and modification of the Modified Version to
3623 whoever possesses a copy of it. In addition, you must do these
3624 things in the Modified Version:
3626 A. Use in the Title Page (and on the covers, if any) a title
3627 distinct from that of the Document, and from those of
3628 previous versions (which should, if there were any, be listed
3629 in the History section of the Document). You may use the
3630 same title as a previous version if the original publisher of
3631 that version gives permission.
3633 B. List on the Title Page, as authors, one or more persons or
3634 entities responsible for authorship of the modifications in
3635 the Modified Version, together with at least five of the
3636 principal authors of the Document (all of its principal
3637 authors, if it has fewer than five), unless they release you
3638 from this requirement.
3640 C. State on the Title page the name of the publisher of the
3641 Modified Version, as the publisher.
3643 D. Preserve all the copyright notices of the Document.
3645 E. Add an appropriate copyright notice for your modifications
3646 adjacent to the other copyright notices.
3648 F. Include, immediately after the copyright notices, a license
3649 notice giving the public permission to use the Modified
3650 Version under the terms of this License, in the form shown in
3653 G. Preserve in that license notice the full lists of Invariant
3654 Sections and required Cover Texts given in the Document's
3657 H. Include an unaltered copy of this License.
3659 I. Preserve the section Entitled "History", Preserve its Title,
3660 and add to it an item stating at least the title, year, new
3661 authors, and publisher of the Modified Version as given on
3662 the Title Page. If there is no section Entitled "History" in
3663 the Document, create one stating the title, year, authors,
3664 and publisher of the Document as given on its Title Page,
3665 then add an item describing the Modified Version as stated in
3666 the previous sentence.
3668 J. Preserve the network location, if any, given in the Document
3669 for public access to a Transparent copy of the Document, and
3670 likewise the network locations given in the Document for
3671 previous versions it was based on. These may be placed in
3672 the "History" section. You may omit a network location for a
3673 work that was published at least four years before the
3674 Document itself, or if the original publisher of the version
3675 it refers to gives permission.
3677 K. For any section Entitled "Acknowledgements" or "Dedications",
3678 Preserve the Title of the section, and preserve in the
3679 section all the substance and tone of each of the contributor
3680 acknowledgements and/or dedications given therein.
3682 L. Preserve all the Invariant Sections of the Document,
3683 unaltered in their text and in their titles. Section numbers
3684 or the equivalent are not considered part of the section
3687 M. Delete any section Entitled "Endorsements". Such a section
3688 may not be included in the Modified Version.
3690 N. Do not retitle any existing section to be Entitled
3691 "Endorsements" or to conflict in title with any Invariant
3694 O. Preserve any Warranty Disclaimers.
3696 If the Modified Version includes new front-matter sections or
3697 appendices that qualify as Secondary Sections and contain no
3698 material copied from the Document, you may at your option
3699 designate some or all of these sections as invariant. To do this,
3700 add their titles to the list of Invariant Sections in the Modified
3701 Version's license notice. These titles must be distinct from any
3702 other section titles.
3704 You may add a section Entitled "Endorsements", provided it contains
3705 nothing but endorsements of your Modified Version by various
3706 parties--for example, statements of peer review or that the text
3707 has been approved by an organization as the authoritative
3708 definition of a standard.
3710 You may add a passage of up to five words as a Front-Cover Text,
3711 and a passage of up to 25 words as a Back-Cover Text, to the end
3712 of the list of Cover Texts in the Modified Version. Only one
3713 passage of Front-Cover Text and one of Back-Cover Text may be
3714 added by (or through arrangements made by) any one entity. If the
3715 Document already includes a cover text for the same cover,
3716 previously added by you or by arrangement made by the same entity
3717 you are acting on behalf of, you may not add another; but you may
3718 replace the old one, on explicit permission from the previous
3719 publisher that added the old one.
3721 The author(s) and publisher(s) of the Document do not by this
3722 License give permission to use their names for publicity for or to
3723 assert or imply endorsement of any Modified Version.
3725 5. COMBINING DOCUMENTS
3727 You may combine the Document with other documents released under
3728 this License, under the terms defined in section 4 above for
3729 modified versions, provided that you include in the combination
3730 all of the Invariant Sections of all of the original documents,
3731 unmodified, and list them all as Invariant Sections of your
3732 combined work in its license notice, and that you preserve all
3733 their Warranty Disclaimers.
3735 The combined work need only contain one copy of this License, and
3736 multiple identical Invariant Sections may be replaced with a single
3737 copy. If there are multiple Invariant Sections with the same name
3738 but different contents, make the title of each such section unique
3739 by adding at the end of it, in parentheses, the name of the
3740 original author or publisher of that section if known, or else a
3741 unique number. Make the same adjustment to the section titles in
3742 the list of Invariant Sections in the license notice of the
3745 In the combination, you must combine any sections Entitled
3746 "History" in the various original documents, forming one section
3747 Entitled "History"; likewise combine any sections Entitled
3748 "Acknowledgements", and any sections Entitled "Dedications". You
3749 must delete all sections Entitled "Endorsements."
3751 6. COLLECTIONS OF DOCUMENTS
3753 You may make a collection consisting of the Document and other
3754 documents released under this License, and replace the individual
3755 copies of this License in the various documents with a single copy
3756 that is included in the collection, provided that you follow the
3757 rules of this License for verbatim copying of each of the
3758 documents in all other respects.
3760 You may extract a single document from such a collection, and
3761 distribute it individually under this License, provided you insert
3762 a copy of this License into the extracted document, and follow
3763 this License in all other respects regarding verbatim copying of
3766 7. AGGREGATION WITH INDEPENDENT WORKS
3768 A compilation of the Document or its derivatives with other
3769 separate and independent documents or works, in or on a volume of
3770 a storage or distribution medium, is called an "aggregate" if the
3771 copyright resulting from the compilation is not used to limit the
3772 legal rights of the compilation's users beyond what the individual
3773 works permit. When the Document is included in an aggregate, this
3774 License does not apply to the other works in the aggregate which
3775 are not themselves derivative works of the Document.
3777 If the Cover Text requirement of section 3 is applicable to these
3778 copies of the Document, then if the Document is less than one half
3779 of the entire aggregate, the Document's Cover Texts may be placed
3780 on covers that bracket the Document within the aggregate, or the
3781 electronic equivalent of covers if the Document is in electronic
3782 form. Otherwise they must appear on printed covers that bracket
3783 the whole aggregate.
3787 Translation is considered a kind of modification, so you may
3788 distribute translations of the Document under the terms of section
3789 4. Replacing Invariant Sections with translations requires special
3790 permission from their copyright holders, but you may include
3791 translations of some or all Invariant Sections in addition to the
3792 original versions of these Invariant Sections. You may include a
3793 translation of this License, and all the license notices in the
3794 Document, and any Warranty Disclaimers, provided that you also
3795 include the original English version of this License and the
3796 original versions of those notices and disclaimers. In case of a
3797 disagreement between the translation and the original version of
3798 this License or a notice or disclaimer, the original version will
3801 If a section in the Document is Entitled "Acknowledgements",
3802 "Dedications", or "History", the requirement (section 4) to
3803 Preserve its Title (section 1) will typically require changing the
3808 You may not copy, modify, sublicense, or distribute the Document
3809 except as expressly provided for under this License. Any other
3810 attempt to copy, modify, sublicense or distribute the Document is
3811 void, and will automatically terminate your rights under this
3812 License. However, parties who have received copies, or rights,
3813 from you under this License will not have their licenses
3814 terminated so long as such parties remain in full compliance.
3816 10. FUTURE REVISIONS OF THIS LICENSE
3818 The Free Software Foundation may publish new, revised versions of
3819 the GNU Free Documentation License from time to time. Such new
3820 versions will be similar in spirit to the present version, but may
3821 differ in detail to address new problems or concerns. See
3822 `http://www.gnu.org/copyleft/'.
3824 Each version of the License is given a distinguishing version
3825 number. If the Document specifies that a particular numbered
3826 version of this License "or any later version" applies to it, you
3827 have the option of following the terms and conditions either of
3828 that specified version or of any later version that has been
3829 published (not as a draft) by the Free Software Foundation. If
3830 the Document does not specify a version number of this License,
3831 you may choose any version ever published (not as a draft) by the
3832 Free Software Foundation.
3834 ADDENDUM: How to use this License for your documents
3835 ====================================================
3837 To use this License in a document you have written, include a copy of
3838 the License in the document and put the following copyright and license
3839 notices just after the title page:
3841 Copyright (C) YEAR YOUR NAME.
3842 Permission is granted to copy, distribute and/or modify this document
3843 under the terms of the GNU Free Documentation License, Version 1.2
3844 or any later version published by the Free Software Foundation;
3845 with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
3846 Texts. A copy of the license is included in the section entitled ``GNU
3847 Free Documentation License''.
3849 If you have Invariant Sections, Front-Cover Texts and Back-Cover
3850 Texts, replace the "with...Texts." line with this:
3852 with the Invariant Sections being LIST THEIR TITLES, with
3853 the Front-Cover Texts being LIST, and with the Back-Cover Texts
3856 If you have Invariant Sections without Cover Texts, or some other
3857 combination of the three, merge those two alternatives to suit the
3860 If your document contains nontrivial examples of program code, we
3861 recommend releasing these examples in parallel under your choice of
3862 free software license, such as the GNU General Public License, to
3863 permit their use in free software.
3866 File: gccinstall.info, Node: Concept Index, Prev: GNU Free Documentation License, Up: Top
3874 * Binaries: Binaries. (line 6)
3875 * Configuration: Configuration. (line 6)
3876 * configurations supported by GCC: Configurations. (line 6)
3877 * Downloading GCC: Downloading the source.
3879 * Downloading the Source: Downloading the source.
3881 * FDL, GNU Free Documentation License: GNU Free Documentation License.
3883 * Host specific installation: Specific. (line 6)
3884 * Installing GCC: Binaries: Binaries. (line 6)
3885 * Installing GCC: Building: Building. (line 6)
3886 * Installing GCC: Configuration: Configuration. (line 6)
3887 * Installing GCC: Testing: Testing. (line 6)
3888 * Prerequisites: Prerequisites. (line 6)
3889 * Specific: Specific. (line 6)
3890 * Specific installation notes: Specific. (line 6)
3891 * Target specific installation: Specific. (line 6)
3892 * Target specific installation notes: Specific. (line 6)
3893 * Testing: Testing. (line 6)
3894 * Testsuite: Testing. (line 6)
3900 Node: Installing GCC
\7f2482
3901 Node: Prerequisites
\7f3997
3902 Node: Downloading the source
\7f10645
3903 Node: Configuration
\7f12326
3904 Ref: with-gnu-as
\7f25155
3905 Ref: with-as
\7f26342
3906 Ref: with-gnu-ld
\7f27347
3907 Node: Building
\7f52835
3908 Node: Testing
\7f63002
3909 Node: Final install
\7f70864
3910 Node: Binaries
\7f75727
3911 Node: Specific
\7f77588
3912 Ref: alpha-x-x
\7f77875
3913 Ref: alpha-dec-osf
\7f78364
3914 Ref: alphaev5-cray-unicosmk
\7f81941
3915 Ref: arc-x-elf
\7f82888
3916 Ref: arm-x-elf
\7f82988
3917 Ref: xscale-x-x
\7f83009
3918 Ref: arm-x-coff
\7f83245
3919 Ref: arm-x-aout
\7f83447
3926 Ref: x-x-freebsd
\7f87061
3927 Ref: h8300-hms
\7f89444
3928 Ref: hppa-hp-hpux
\7f89796
3929 Ref: hppa-hp-hpux10
\7f92284
3930 Ref: hppa-hp-hpux11
\7f93341
3931 Ref: x-x-linux-gnu
\7f100196
3932 Ref: ix86-x-linuxaout
\7f100388
3933 Ref: ix86-x-linux
\7f100547
3934 Ref: ix86-x-sco32v5
\7f100860
3935 Ref: ix86-x-solaris210
\7f103029
3936 Ref: ix86-x-udk
\7f103415
3937 Ref: ia64-x-linux
\7f104779
3938 Ref: ia64-x-hpux
\7f105549
3939 Ref: x-ibm-aix
\7f106104
3940 Ref: iq2000-x-elf
\7f111960
3941 Ref: m32c-x-elf
\7f112100
3942 Ref: m32r-x-elf
\7f112202
3943 Ref: m6811-elf
\7f112304
3944 Ref: m6812-elf
\7f112454
3945 Ref: m68k-hp-hpux
\7f112604
3946 Ref: mips-x-x
\7f114343
3947 Ref: mips-sgi-irix5
\7f116012
3948 Ref: mips-sgi-irix6
\7f116960
3949 Ref: powerpc-x-x
\7f119652
3950 Ref: powerpc-x-darwin
\7f119797
3951 Ref: powerpc-x-elf
\7f120388
3952 Ref: powerpc-x-linux-gnu
\7f120507
3953 Ref: powerpc-x-netbsd
\7f120609
3954 Ref: powerpc-x-eabisim
\7f120805
3955 Ref: powerpc-x-eabi
\7f120931
3956 Ref: powerpcle-x-elf
\7f121007
3957 Ref: powerpcle-x-eabisim
\7f121137
3958 Ref: powerpcle-x-eabi
\7f121270
3959 Ref: s390-x-linux
\7f121353
3960 Ref: s390x-x-linux
\7f121425
3961 Ref: s390x-ibm-tpf
\7f121512
3962 Ref: x-x-solaris2
\7f121643
3963 Ref: sparc-sun-solaris2
\7f125675
3964 Ref: sparc-sun-solaris27
\7f128664
3965 Ref: sparc-x-linux
\7f131128
3966 Ref: sparc64-x-solaris2
\7f131353
3967 Ref: sparcv9-x-solaris2
\7f131729
3968 Ref: x-x-sysv
\7f131814
3969 Ref: vax-dec-ultrix
\7f132775
3970 Ref: x-x-vxworks
\7f132927
3971 Ref: x86-64-x-x
\7f134449
3972 Ref: xtensa-x-elf
\7f134777
3973 Ref: xtensa-x-linux
\7f135446
3974 Ref: windows
\7f135784
3979 Node: Configurations
\7f141745
3980 Node: GNU Free Documentation License
\7f145727
3981 Node: Concept Index
\7f168143