Initial import of binutils 2.22 on the new vendor branch
[dragonfly.git] / contrib / gcc-4.1 / gcc / doc / gccinstall.info
1 This is doc/gccinstall.info, produced by makeinfo version 4.8 from
2 /scratch/mitchell/gcc-releases/gcc-4.1.2/gcc-4.1.2/gcc/doc/install.texi.
3
4    Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
5 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
6
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".
13
14    (a) The FSF's Front-Cover Text is:
15
16    A GNU Manual
17
18    (b) The FSF's Back-Cover Text is:
19
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.
23
24    Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
25 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
26
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".
33
34    (a) The FSF's Front-Cover Text is:
35
36    A GNU Manual
37
38    (b) The FSF's Back-Cover Text is:
39
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.
43
44 INFO-DIR-SECTION Programming
45 START-INFO-DIR-ENTRY
46 * gccinstall: (gccinstall).    Installing the GNU Compiler Collection.
47 END-INFO-DIR-ENTRY
48
49 \1f
50 File: gccinstall.info,  Node: Top,  Up: (dir)
51
52 * Menu:
53
54 * Installing GCC::  This document describes the generic installation
55                     procedure for GCC as well as detailing some target
56                     specific installation instructions.
57
58 * Specific::        Host/target specific installation notes for GCC.
59 * Binaries::        Where to get pre-compiled binaries.
60
61 * Old::             Old installation documentation.
62
63 * GNU Free Documentation License:: How you can copy and share this manual.
64 * Concept Index::   This index has two entries.
65
66 \1f
67 File: gccinstall.info,  Node: Installing GCC,  Next: Binaries,  Up: Top
68
69 1 Installing GCC
70 ****************
71
72    The latest version of this document is always available at
73 http://gcc.gnu.org/install/.
74
75    This document describes the generic installation procedure for GCC
76 as well as detailing some target specific installation instructions.
77
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.
81
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.
85
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.
89
90    The installation procedure itself is broken into five steps.
91
92 * Menu:
93
94 * Prerequisites::
95 * Downloading the source::
96 * Configuration::
97 * Building::
98 * Testing:: (optional)
99 * Final install::
100
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.
107
108 \1f
109 File: gccinstall.info,  Node: Prerequisites,  Next: Downloading the source,  Up: Installing GCC
110
111 2 Prerequisites
112 ***************
113
114    GCC requires that various tools and packages be available for use in
115 the build procedure.  Modifying GCC sources requires additional tools
116 described below.
117
118 Tools/packages necessary for building GCC
119 =========================================
120
121 ISO C90 compiler
122      Necessary to bootstrap GCC, although versions of GCC prior to 3.4
123      also allow bootstrapping with a traditional (K&R) C compiler.
124
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.
129
130 GNAT
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.
135
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.
142
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
147      `configure'/`make'.
148
149      `zsh' is not a fully compliant POSIX shell and will not work when
150      configuring GCC.
151
152 GNU binutils
153      Necessary in some circumstances, optional in others.  See the
154      host/target specific instructions for your platform for the exact
155      requirements.
156
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.
161
162 GNU make version 3.79.1 (or later)
163      You must have GNU make installed to build GCC.
164
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
168      have problems.
169
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.
174
175 MPFR Library
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'.
179
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
182      path.
183
184
185 Tools/packages necessary for modifying GCC
186 ==========================================
187
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).
194
195 automake versions 1.9.3
196      Necessary when modifying a `Makefile.am' file to regenerate its
197      associated `Makefile.in'.
198
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.
203
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.
208
209 gettext version 0.14.5 (or later)
210      Needed to regenerate `gcc.pot'.
211
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.
215      `gcc/cp/cfns.h'.
216
217 DejaGnu 1.4.4
218 Expect
219 Tcl
220      Necessary to run the GCC testsuite; see the section on testing for
221      details.
222
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'.
227
228      Necessary to run `make check' for `fixinc'.
229
230      Necessary to regenerate the top level `Makefile.in' file from
231      `Makefile.tpl' and `Makefile.def'.
232
233 GNU Bison version 1.28 (or later)
234      Berkeley `yacc' (`byacc') is also reported to work other than for
235      GCJ.
236
237      Necessary when modifying `*.y' files.
238
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.
242
243 Flex version 2.5.4 (or later)
244      Necessary when modifying `*.l' files.
245
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.
249
250 Texinfo version 4.2 (or later)
251      Necessary for running `makeinfo' when modifying `*.texi' files to
252      test your changes.
253
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.
257
258 TeX (any working version)
259      Necessary for running `texi2dvi', used when running `make dvi' to
260      create DVI files.
261
262 SVN (any version)
263 SSH (any version)
264      Necessary to access the SVN repository.  Public releases and weekly
265      snapshots of the development sources are also available via FTP.
266
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)
274      from source tables.
275
276 GNU diffutils version 2.7 (or later)
277      Useful when submitting patches for the GCC source code.
278
279 patch version 2.5.4 (or later)
280      Necessary when applying patches, created with `diff', to one's own
281      sources.
282
283
284 \1f
285 File: gccinstall.info,  Node: Downloading the source,  Next: Configuration,  Prev: Prerequisites,  Up: Installing GCC
286
287 3 Downloading GCC
288 *****************
289
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
292 components.
293
294    Please refer to the releases web page for information on how to
295 obtain GCC.
296
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.
303
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
309 appropriate).
310
311    Unpack the core distribution as well as any language specific
312 distributions in the same directory.
313
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.
321
322 \1f
323 File: gccinstall.info,  Node: Configuration,  Next: Building,  Prev: Downloading the source,  Up: Installing GCC
324
325 4 Installing GCC: Configuration
326 *******************************
327
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.
331
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.
334
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.
338
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.
345
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.
351
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.
360
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.
364
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.
370
371    To configure GCC:
372
373         % mkdir OBJDIR
374         % cd OBJDIR
375         % SRCDIR/configure [OPTIONS] [TARGET]
376
377 Target specification
378 ====================
379
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.
383
384    * TARGET must be specified as `--target=TARGET' when configuring a
385      cross compiler; examples of valid targets would be m68k-coff,
386      sh-elf, etc.
387
388    * Specifying just TARGET instead of `--target=TARGET' implies that
389      the host defaults to TARGET.
390
391 Options specification
392 =====================
393
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
397 normally be used.
398
399    Note that each `--enable' option has a corresponding `--disable'
400 option and that each `--with' option has a corresponding `--without'
401 option.
402
403 `--prefix=DIRNAME'
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
407      `/usr/local'.
408
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
413      `$HOME' instead.
414
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'.
420
421     `--bindir=DIRNAME'
422           Specify the installation directory for the executables called
423           by users (such as `gcc' and `g++').  The default is
424           `EXEC-PREFIX/bin'.
425
426     `--libdir=DIRNAME'
427           Specify the installation directory for object code libraries
428           and internal data files of GCC.  The default is
429           `EXEC-PREFIX/lib'.
430
431     `--libexecdir=DIRNAME'
432           Specify the installation directory for internal executables
433           of GCC.    The default is `EXEC-PREFIX/libexec'.
434
435     `--with-slibdir=DIRNAME'
436           Specify the installation directory for the shared libgcc
437           library.  The default is `LIBDIR'.
438
439     `--infodir=DIRNAME'
440           Specify the installation directory for documentation in info
441           format.  The default is `PREFIX/info'.
442
443     `--datadir=DIRNAME'
444           Specify the installation directory for some
445           architecture-independent data files referenced by GCC.  The
446           default is `PREFIX/share'.
447
448     `--mandir=DIRNAME'
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.)
454
455     `--with-gxx-include-dir=DIRNAME'
456           Specify the installation directory for G++ header files.  The
457           default is `PREFIX/include/c++/VERSION'.
458
459
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'.
466
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'.
471
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.
483
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.
488
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
492      options.
493
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'.
501
502      As a last shortcoming, none of the installed Ada programs are
503      transformed yet, which will be fixed in some time.
504
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'.
510
511      You should specify `--with-local-prefix' *only* if your site has a
512      different convention (not `/usr/local') for where to put
513      site-specific files.
514
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.
519
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.)
525
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.
534
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.
542
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'.
549
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').
559
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'.
563
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.
570
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.
575
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.
581
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.
589
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.
593
594 `--with-gnu-as'
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'.
603
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.
607
608         * `hppa1.0-ANY-ANY'
609
610         * `hppa1.1-ANY-ANY'
611
612         * `i386-ANY-sysv'
613
614         * `m68k-bull-sysv'
615
616         * `m68k-hp-hpux'
617
618         * `m68000-hp-hpux'
619
620         * `m68000-att-sysv'
621
622         * `sparc-sun-solaris2.ANY'
623
624         * `sparc64-ANY-solaris2.ANY'
625
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').
629
630 `--with-as=PATHNAME'
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,
640           such as 3.0.
641
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
648      rules.
649
650 `--with-gnu-ld'
651      Same as `--with-gnu-as' but for the linker.
652
653 `--with-ld=PATHNAME'
654      Same as `--with-as' but for the linker.
655
656 `--with-stabs'
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.
660
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.
667
668      Normally, GCC uses the ECOFF debugging format by default; if you
669      prefer BSD stabs, specify `--with-stabs' when you configure GCC.
670
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.
674
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
679      does not.
680
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.
687
688 `--disable-multilib'
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.
692
693      Some targets provide finer-grained control over which multilibs
694      are built (e.g., `--disable-softfloat'):
695     `arc-*-elf*'
696           biendian.
697
698     `arm-*-*'
699           fpu, 26bit, underscore, interwork, biendian, nofmult.
700
701     `m68*-*-*'
702           softfloat, m68881, m68000, m68020.
703
704     `mips*-*-*'
705           single-float, biendian, softfloat.
706
707     `powerpc*-*-*, rs6000*-*-*'
708           aix64, pthread, softfloat, powercpu, powerpccpu, powerpcos,
709           biendian, sysv, aix.
710
711
712 `--enable-threads'
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
716      the default.
717
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'.
723
724 `--disable-threads'
725      Specify that threading support should be disabled for the system.
726      This is an alias for `--enable-threads=single'.
727
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
732      are:
733
734     `aix'
735           AIX thread support.
736
737     `dce'
738           DCE thread support.
739
740     `gnat'
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
746           most Ada targets.
747
748     `mach'
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.)
753
754     `no'
755           This is an alias for `single'.
756
757     `posix'
758           Generic POSIX/Unix98 thread support.
759
760     `posix95'
761           Generic POSIX/Unix95 thread support.
762
763     `rtems'
764           RTEMS thread support.
765
766     `single'
767           Disable thread support, should work for all platforms.
768
769     `solaris'
770           Sun Solaris 2 thread support.
771
772     `vxworks'
773           VxWorks thread support.
774
775     `win32'
776           Microsoft Win32 API thread support.
777
778     `nks'
779           Novell Kernel Services thread support.
780
781 `--enable-tls'
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.
788
789 `--disable-tls'
790      Specify that the target does not support TLS.  This is an alias
791      for `--enable-tls=no'.
792
793 `--with-cpu=CPU'
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.
798
799 `--with-schedule=CPU'
800 `--with-arch=CPU'
801 `--with-tune=CPU'
802 `--with-abi=ABI'
803 `--with-fpu=TYPE'
804 `--with-float=TYPE'
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.
810
811 `--with-divide=TYPE'
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:
815     `traps'
816           Division by zero checks use conditional traps (this is the
817           default on systems that support conditional traps).
818
819     `breaks'
820           Division by zero checks use the break instruction.
821
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.
829
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.
833
834 `--disable-cpp'
835      Specify that a user visible `cpp' program should not be installed.
836
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.
840
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.
848
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.
856
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.
864
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.
870
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'.
880
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'.
887
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!
903
904 `--disable-libada'
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'.
909
910 `--disable-libssp'
911      Specify that the run-time libraries for stack smashing protection
912      should not be built.
913
914 `--with-dwarf2'
915      Specify that the compiler should use DWARF 2 debugging information
916      as the default.
917
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.
928
929 `--enable-secureplt'
930      This option enables `-msecure-plt' by default for powerpc-linux.
931      *Note RS/6000 and PowerPC Options: (gcc)RS/6000 and PowerPC
932      Options,
933
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:
940
941           `HKEY_LOCAL_MACHINE\SOFTWARE\Free Software Foundation\KEY'
942
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
950      the other hosts.
951
952 `--nfp'
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.
956
957 `--enable-werror'
958 `--disable-werror'
959 `--enable-werror=yes'
960 `--enable-werror=no'
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.
967
968 `--enable-checking'
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'.
983
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.
991
992 `--enable-coverage'
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.
1002
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
1006      `-fmem-report'.
1007
1008 `--with-gc'
1009 `--with-gc=CHOICE'
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.
1013
1014 `--enable-nls'
1015 `--disable-nls'
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
1020      NLS.
1021
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'.
1025
1026 `--with-catgets'
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.
1032
1033 `--with-libiconv-prefix=DIR'
1034      Search for libiconv header files in `DIR/include' and libiconv
1035      library files in `DIR/lib'.
1036
1037 `--enable-obsolete'
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.
1042
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.
1046
1047 Cross-Compiler-Specific Options
1048 -------------------------------
1049
1050 The following options only apply to building cross compilers.
1051 `--with-sysroot'
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.
1063
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.
1073
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.
1077
1078 `--with-headers'
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.
1089
1090 `--without-headers'
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.
1094
1095 `--with-libs'
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.
1101
1102 `--with-newlib'
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'.
1106
1107 Fortran-specific Option
1108 -----------------------
1109
1110 The following options apply to the build of the Fortran front end.
1111
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').
1123
1124
1125 Java-Specific Options
1126 ---------------------
1127
1128 The following option applies to the build of the Java front end.
1129
1130 `--disable-libgcj'
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.
1141
1142
1143    The following options apply to building `libgcj'.
1144
1145 General Options
1146 ...............
1147
1148 `--disable-getenv-properties'
1149      Don't set system properties from `GCJ_PROPERTIES'.
1150
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.
1156
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').
1162
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.
1166
1167 `--disable-jvmpi'
1168      Disable JVMPI support.
1169
1170 `--with-ecos'
1171      Enable runtime eCos target support.
1172
1173 `--without-libffi'
1174      Don't use `libffi'.  This will disable the interpreter and JNI
1175      support as well, as these require `libffi' to work.
1176
1177 `--enable-libgcj-debug'
1178      Enable runtime debugging code.
1179
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.
1186
1187 `--with-libiconv-prefix=DIR'
1188      Search for libiconv in `DIR/include' and `DIR/lib'.
1189
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.
1194
1195 `--with-system-zlib'
1196      Use installed `zlib' rather than that included with GCC.
1197
1198 `--with-win32-nlsapi=ansi, unicows or unicode'
1199      Indicates how MinGW `libgcj' translates between UNICODE characters
1200      and the Win32 API.
1201     `ansi'
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.
1205
1206     `unicows'
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.
1214
1215     `unicode'
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.
1219
1220 AWT-Specific Options
1221 ....................
1222
1223 `--with-x'
1224      Use the X Window System.
1225
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').
1232
1233 `--enable-gtk-cairo'
1234      Build the cairo Graphics2D implementation on GTK.
1235
1236 `--enable-java-gc=TYPE'
1237      Choose garbage collector.  Defaults to `boehm' if unspecified.
1238
1239 `--disable-gtktest'
1240      Do not try to compile and run a test GTK+ program.
1241
1242 `--disable-glibtest'
1243      Do not try to compile and run a test GLIB program.
1244
1245 `--with-libart-prefix=PFX'
1246      Prefix where libart is installed (optional).
1247
1248 `--with-libart-exec-prefix=PFX'
1249      Exec prefix where libart is installed (optional).
1250
1251 `--disable-libarttest'
1252      Do not try to compile and run a test libart program.
1253
1254
1255 \1f
1256 File: gccinstall.info,  Node: Building,  Next: Testing,  Prev: Configuration,  Up: Installing GCC
1257
1258 5 Building
1259 **********
1260
1261    Now that GCC is configured, you are ready to build the compiler and
1262 runtime libraries.
1263
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
1267 ignored.
1268
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'.
1274
1275    On certain old systems, defining certain environment variables such
1276 as `CC' can interfere with the functioning of `make'.
1277
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.
1282
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.
1289
1290    The solution is not to use such a directory for building GCC.
1291
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.
1296
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.
1301
1302 5.1 Building a native compiler
1303 ==============================
1304
1305 For a native build issue the command `make bootstrap'.  This will build
1306 the entire GCC system, which includes the following steps:
1307
1308    * Build host tools necessary to build the compiler such as texinfo,
1309      bison, gperf.
1310
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
1314      before configuring.
1315
1316    * Perform a 3-stage bootstrap of the compiler.
1317
1318    * Perform a comparison test of the stage2 and stage3 compilers.
1319
1320    * Build runtime libraries using the stage3 compiler from the
1321      previous step.
1322
1323
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.
1328
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.)
1334
1335           make CFLAGS='-O' LIBCFLAGS='-g -O2' \
1336             LIBCXXFLAGS='-g -O2 -fno-implicit-templates' bootstrap
1337
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.
1348
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.
1353
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
1359 anymore!
1360
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'.)
1367
1368 5.2 Building a cross compiler
1369 =============================
1370
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.
1374
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.
1379
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:
1383
1384    * Build host tools necessary to build the compiler.
1385
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
1389      before configuring.
1390
1391    * Build the compiler (single stage only).
1392
1393    * Build runtime libraries using the compiler from the previous step.
1394
1395    Note that if an error occurs in any step the make process will exit.
1396
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:
1401
1402 `as'
1403      This should be the cross-assembler.
1404
1405 `ld'
1406      This should be the cross-linker.
1407
1408 `ar'
1409      This should be the cross-archiver: a program which can manipulate
1410      archive files (linker libraries) in the target machine's format.
1411
1412 `ranlib'
1413      This should be a program to construct a symbol table in an archive
1414      file.
1415
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.
1419
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.
1425
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.
1434
1435 5.3 Building in parallel
1436 ========================
1437
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.
1445
1446 5.4 Building the Ada compiler
1447 =============================
1448
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
1453 GNU make.
1454
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.
1459
1460 5.5 Building with profile feedback
1461 ==================================
1462
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
1467 profiledbootstrap'.
1468
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.
1475
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
1480 occur.
1481
1482 \1f
1483 File: gccinstall.info,  Node: Testing,  Next: Final install,  Prev: Building,  Up: Installing GCC
1484
1485 6 Installing GCC: Testing
1486 *************************
1487
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.
1497
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.
1501
1502    Second, you must have the testing tools installed.  This includes
1503 DejaGnu, Tcl, and Expect; the DejaGnu site has links to these.
1504
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'):
1509
1510           TCL_LIBRARY = /usr/local/share/tcl8.0
1511           DEJAGNULIBS = /usr/local/share/dejagnu
1512
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.)
1516
1517    Finally, you can run the testsuite (which may take a long time):
1518           cd OBJDIR; make -k check
1519
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
1524 can be ignored.
1525
1526 6.1 How can you run the testsuite on selected tests?
1527 ====================================================
1528
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
1532 object directory.
1533
1534    A more selective way to just run all `gcc' execute tests in the
1535 testsuite is to use
1536
1537          make check-gcc RUNTESTFLAGS="execute.exp OTHER-OPTIONS"
1538
1539    Likewise, in order to run only the `g++' "old-deja" tests in the
1540 testsuite with filenames matching `9805*', you would use
1541
1542          make check-g++ RUNTESTFLAGS="old-deja.exp=9805* OTHER-OPTIONS"
1543
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.
1549
1550 6.2 Passing options and running multiple testsuites
1551 ===================================================
1552
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,
1557
1558          make check-g++ RUNTESTFLAGS="--target_board=unix/-O3/-fno-strength-reduce"
1559
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
1563 separate options.
1564
1565    You can run the testsuites multiple times using combinations of
1566 options with a syntax similar to the brace expansion of popular shells:
1567
1568          ..."--target_board=arm-sim/{-mhard-float,-msoft-float}{-O1,-O2,-O3,}"
1569
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
1573 yourself:
1574
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
1583
1584    They can be combined as many times as you wish, in arbitrary ways.
1585 This list:
1586
1587          ..."--target_board=unix/-Wextra{-O3,-fno-strength-reduce}{-fomit-frame-pointer,}"
1588
1589    will generate four combinations, all involving `-Wextra'.
1590
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:
1597
1598          make -jN check-TESTSUITE//TEST-TARGET/OPTION1/OPTION2/...
1599
1600    For example,
1601
1602          make -j3 check-gcc//sh-hms-sim/{-m1,-m2,-m3,-m3e,-m4}/{,-nofpu}
1603
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.)
1608
1609 6.3 Additional testing for Java Class Libraries
1610 ===============================================
1611
1612 The Java runtime tests can be executed via `make check' in the
1613 `TARGET/libjava/testsuite' directory in the build tree.
1614
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'.
1620
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'.
1624
1625 6.4 How to interpret test results
1626 =================================
1627
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:
1633
1634    * PASS: the test passed as expected
1635
1636    * XPASS: the test unexpectedly passed
1637
1638    * FAIL: the test unexpectedly failed
1639
1640    * XFAIL: the test failed as expected
1641
1642    * UNSUPPORTED: the test is not supported on this platform
1643
1644    * ERROR: the testsuite detected an error
1645
1646    * WARNING: the testsuite detected a possible problem
1647
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.
1652
1653 6.5 Submitting test results
1654 ===========================
1655
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
1658
1659          SRCDIR/contrib/test_summary -p your_commentary.txt \
1660              -m gcc-testresults@gcc.gnu.org |sh
1661
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.
1668
1669 \1f
1670 File: gccinstall.info,  Node: Final install,  Prev: Testing,  Up: Installing GCC
1671
1672 7 Installing GCC: Final installation
1673 ************************************
1674
1675    Now that GCC has been built (and optionally tested), you can install
1676 it with
1677      cd OBJDIR; make install
1678
1679    We strongly recommend to install into a target directory where there
1680 is no previous version of GCC present.  Also, the GNAT runtime should
1681 not be stripped, as this would break certain features of the debugger
1682 that depend on this debugging information (catching Ada exceptions for
1683 instance).
1684
1685    That step completes the installation of GCC; user level binaries can
1686 be found in `PREFIX/bin' where PREFIX is the value you specified with
1687 the `--prefix' to configure (or `/usr/local' by default).  (If you
1688 specified `--bindir', that directory will be used instead; otherwise,
1689 if you specified `--exec-prefix', `EXEC-PREFIX/bin' will be used.)
1690 Headers for the C++ and Java libraries are installed in
1691 `PREFIX/include'; libraries in `LIBDIR' (normally `PREFIX/lib');
1692 internal parts of the compiler in `LIBDIR/gcc' and `LIBEXECDIR/gcc';
1693 documentation in info format in `INFODIR' (normally `PREFIX/info').
1694
1695    When installing cross-compilers, GCC's executables are not only
1696 installed into `BINDIR', that is, `EXEC-PREFIX/bin', but additionally
1697 into `EXEC-PREFIX/TARGET-ALIAS/bin', if that directory exists.
1698 Typically, such "tooldirs" hold target-specific binutils, including
1699 assembler and linker.
1700
1701    Installation into a temporary staging area or into a `chroot' jail
1702 can be achieved with the command
1703
1704      make DESTDIR=PATH-TO-ROOTDIR install
1705
1706 where PATH-TO-ROOTDIR is the absolute path of a directory relative to
1707 which all installation paths will be interpreted.  Note that the
1708 directory specified by `DESTDIR' need not exist yet; it will be created
1709 if necessary.
1710
1711    There is a subtle point with tooldirs and `DESTDIR': If you relocate
1712 a cross-compiler installation with e.g. `DESTDIR=ROOTDIR', then the
1713 directory `ROOTDIR/EXEC-PREFIX/TARGET-ALIAS/bin' will be filled with
1714 duplicated GCC executables only if it already exists, it will not be
1715 created otherwise.  This is regarded as a feature, not as a bug,
1716 because it gives slightly more control to the packagers using the
1717 `DESTDIR' feature.
1718
1719    If you built a released version of GCC using `make bootstrap' then
1720 please quickly review the build status page for your release, available
1721 from `http://gcc.gnu.org/buildstat.html'.  If your system is not listed
1722 for the version of GCC that you built, send a note to <gcc@gcc.gnu.org>
1723 indicating that you successfully built and installed GCC.  Include the
1724 following information:
1725
1726    * Output from running `SRCDIR/config.guess'.  Do not send that file
1727      itself, just the one-line output from running it.
1728
1729    * The output of `gcc -v' for your newly installed `gcc'.  This tells
1730      us which version of GCC you built and the options you passed to
1731      configure.
1732
1733    * Whether you enabled all languages or a subset of them.  If you
1734      used a full distribution then this information is part of the
1735      configure options in the output of `gcc -v', but if you downloaded
1736      the "core" compiler plus additional front ends then it isn't
1737      apparent which ones you built unless you tell us about it.
1738
1739    * If the build was for GNU/Linux, also include:
1740         * The distribution name and version (e.g., Red Hat 7.1 or
1741           Debian 2.2.3); this information should be available from
1742           `/etc/issue'.
1743
1744         * The version of the Linux kernel, available from `uname
1745           --version' or `uname -a'.
1746
1747         * The version of glibc you used; for RPM-based systems like Red
1748           Hat, Mandrake, and SuSE type `rpm -q glibc' to get the glibc
1749           version, and on systems like Debian and Progeny use `dpkg -l
1750           libc6'.
1751      For other systems, you can include similar information if you
1752      think it is relevant.
1753
1754    * Any other information that you think would be useful to people
1755      building GCC on the same configuration.  The new entry in the
1756      build status list will include a link to the archived copy of your
1757      message.
1758
1759    We'd also like to know if the *Note host/target specific
1760 installation notes: Specific.  didn't include your host/target
1761 information or if that information is incomplete or out of date.  Send
1762 a note to <gcc@gcc.gnu.org> detailing how the information should be
1763 changed.
1764
1765    If you find a bug, please report it following the bug reporting
1766 guidelines.
1767
1768    If you want to print the GCC manuals, do `cd OBJDIR; make dvi'.  You
1769 will need to have `texi2dvi' (version at least 4.2) and TeX installed.
1770 This creates a number of `.dvi' files in subdirectories of `OBJDIR';
1771 these may be converted for printing with programs such as `dvips'.  You
1772 can also buy printed manuals from the Free Software Foundation, though
1773 such manuals may not be for the most recent version of GCC.
1774
1775    If you would like to generate online HTML documentation, do `cd
1776 OBJDIR; make html' and HTML will be generated for the gcc manuals in
1777 `OBJDIR/gcc/HTML'.
1778
1779 \1f
1780 File: gccinstall.info,  Node: Binaries,  Next: Specific,  Prev: Installing GCC,  Up: Top
1781
1782 8 Installing GCC: Binaries
1783 **************************
1784
1785    We are often asked about pre-compiled versions of GCC.  While we
1786 cannot provide these for all platforms, below you'll find links to
1787 binaries for various platforms where creating them by yourself is not
1788 easy due to various reasons.
1789
1790    Please note that we did not create these binaries, nor do we support
1791 them.  If you have any problems installing them, please contact their
1792 makers.
1793
1794    * AIX:
1795         * Bull's Freeware and Shareware Archive for AIX;
1796
1797         * UCLA Software Library for AIX.
1798
1799    * DOS--DJGPP.
1800
1801    * Renesas H8/300[HS]--GNU Development Tools for the Renesas
1802      H8/300[HS] Series.
1803
1804    * HP-UX:
1805         * HP-UX Porting Center;
1806
1807         * Binaries for HP-UX 11.00 at Aachen University of Technology.
1808
1809    * Motorola 68HC11/68HC12--GNU Development Tools for the Motorola
1810      68HC11/68HC12.
1811
1812    * SCO OpenServer/Unixware.
1813
1814    * Solaris 2 (SPARC, Intel)--Sunfreeware.
1815
1816    * SGI--SGI Freeware.
1817
1818    * Microsoft Windows:
1819         * The Cygwin project;
1820
1821         * The MinGW project.
1822
1823    * The Written Word offers binaries for AIX 4.3.2.  IRIX 6.5, Digital
1824      UNIX 4.0D and 5.1, GNU/Linux (i386), HP-UX 10.20, 11.00, and
1825      11.11, and Solaris/SPARC 2.5.1, 2.6, 7, 8, and 9.
1826
1827    * OpenPKG offers binaries for quite a number of platforms.
1828
1829    * The GFortran Wiki has links to gfortran binaries for several
1830      platforms.
1831
1832    In addition to those specific offerings, you can get a binary
1833 distribution CD-ROM from the Free Software Foundation.  It contains
1834 binaries for a number of platforms, and includes not only GCC, but
1835 other stuff as well.  The current CD does not contain the latest
1836 version of GCC, but it should allow bootstrapping the compiler.  An
1837 updated version of that disk is in the works.
1838
1839 \1f
1840 File: gccinstall.info,  Node: Specific,  Next: Old,  Prev: Binaries,  Up: Top
1841
1842 9 Host/target specific installation notes for GCC
1843 *************************************************
1844
1845    Please read this document carefully _before_ installing the GNU
1846 Compiler Collection on your machine.
1847
1848 alpha*-*-*
1849 ==========
1850
1851 This section contains general configuration information for all
1852 alpha-based platforms using ELF (in particular, ignore this section for
1853 DEC OSF/1, Digital UNIX and Tru64 UNIX).  In addition to reading this
1854 section, please read all other sections that match your target.
1855
1856    We require binutils 2.11.2 or newer.  Previous binutils releases had
1857 a number of problems with DWARF 2 debugging information, not the least
1858 of which is incorrect linking of shared libraries.
1859
1860 alpha*-dec-osf*
1861 ===============
1862
1863 Systems using processors that implement the DEC Alpha architecture and
1864 are running the DEC/Compaq Unix (DEC OSF/1, Digital UNIX, or Compaq
1865 Tru64 UNIX) operating system, for example the DEC Alpha AXP systems.
1866
1867    As of GCC 3.2, versions before `alpha*-dec-osf4' are no longer
1868 supported.  (These are the versions which identify themselves as DEC
1869 OSF/1.)
1870
1871    In Digital Unix V4.0, virtual memory exhausted bootstrap failures
1872 may be fixed by configuring with `--with-gc=simple', reconfiguring
1873 Kernel Virtual Memory and Swap parameters per the `/usr/sbin/sys_check'
1874 Tuning Suggestions, or applying the patch in
1875 `http://gcc.gnu.org/ml/gcc/2002-08/msg00822.html'.
1876
1877    In Tru64 UNIX V5.1, Compaq introduced a new assembler that does not
1878 currently (2001-06-13) work with `mips-tfile'.  As a workaround, we
1879 need to use the old assembler, invoked via the barely documented
1880 `-oldas' option.  To bootstrap GCC, you either need to use the Compaq C
1881 Compiler:
1882
1883         % CC=cc SRCDIR/configure [OPTIONS] [TARGET]
1884
1885    or you can use a copy of GCC 2.95.3 or higher built on Tru64 UNIX
1886 V4.0:
1887
1888         % CC=gcc -Wa,-oldas SRCDIR/configure [OPTIONS] [TARGET]
1889
1890    As of GNU binutils 2.11.2, neither GNU `as' nor GNU `ld' are
1891 supported on Tru64 UNIX, so you must not configure GCC with
1892 `--with-gnu-as' or `--with-gnu-ld'.
1893
1894    GCC writes a `.verstamp' directive to the assembler output file
1895 unless it is built as a cross-compiler.  It gets the version to use from
1896 the system header file `/usr/include/stamp.h'.  If you install a new
1897 version of DEC Unix, you should rebuild GCC to pick up the new version
1898 stamp.
1899
1900    Note that since the Alpha is a 64-bit architecture, cross-compilers
1901 from 32-bit machines will not generate code as efficient as that
1902 generated when the compiler is running on a 64-bit machine because many
1903 optimizations that depend on being able to represent a word on the
1904 target in an integral value on the host cannot be performed.  Building
1905 cross-compilers on the Alpha for 32-bit machines has only been tested in
1906 a few cases and may not work properly.
1907
1908    `make compare' may fail on old versions of DEC Unix unless you add
1909 `-save-temps' to `CFLAGS'.  On these systems, the name of the assembler
1910 input file is stored in the object file, and that makes comparison fail
1911 if it differs between the `stage1' and `stage2' compilations.  The
1912 option `-save-temps' forces a fixed name to be used for the assembler
1913 input file, instead of a randomly chosen name in `/tmp'.  Do not add
1914 `-save-temps' unless the comparisons fail without that option.  If you
1915 add `-save-temps', you will have to manually delete the `.i' and `.s'
1916 files after each series of compilations.
1917
1918    GCC now supports both the native (ECOFF) debugging format used by DBX
1919 and GDB and an encapsulated STABS format for use only with GDB.  See the
1920 discussion of the `--with-stabs' option of `configure' above for more
1921 information on these formats and how to select them.
1922
1923    There is a bug in DEC's assembler that produces incorrect line
1924 numbers for ECOFF format when the `.align' directive is used.  To work
1925 around this problem, GCC will not emit such alignment directives while
1926 writing ECOFF format debugging information even if optimization is
1927 being performed.  Unfortunately, this has the very undesirable
1928 side-effect that code addresses when `-O' is specified are different
1929 depending on whether or not `-g' is also specified.
1930
1931    To avoid this behavior, specify `-gstabs+' and use GDB instead of
1932 DBX.  DEC is now aware of this problem with the assembler and hopes to
1933 provide a fix shortly.
1934
1935 alphaev5-cray-unicosmk*
1936 =======================
1937
1938 Cray T3E systems running Unicos/Mk.
1939
1940    This port is incomplete and has many known bugs.  We hope to improve
1941 the support for this target soon.  Currently, only the C front end is
1942 supported, and it is not possible to build parallel applications.  Cray
1943 modules are not supported; in particular, Craylibs are assumed to be in
1944 `/opt/ctl/craylibs/craylibs'.
1945
1946    You absolutely *must* use GNU make on this platform.  Also, you need
1947 to tell GCC where to find the assembler and the linker.  The simplest
1948 way to do so is by providing `--with-as' and `--with-ld' to
1949 `configure', e.g.
1950
1951          configure --with-as=/opt/ctl/bin/cam --with-ld=/opt/ctl/bin/cld \
1952            --enable-languages=c
1953
1954    The comparison test during `make bootstrap' fails on Unicos/Mk
1955 because the assembler inserts timestamps into object files.  You should
1956 be able to work around this by doing `make all' after getting this
1957 failure.
1958
1959 arc-*-elf
1960 =========
1961
1962 Argonaut ARC processor.  This configuration is intended for embedded
1963 systems.
1964
1965 arm-*-elf
1966 =========
1967
1968 xscale-*-*
1969 ==========
1970
1971 ARM-family processors.  Subtargets that use the ELF object format
1972 require GNU binutils 2.13 or newer.  Such subtargets include:
1973 `arm-*-freebsd', `arm-*-netbsdelf', `arm-*-*linux', `arm-*-rtems' and
1974 `arm-*-kaos'.
1975
1976 arm-*-coff
1977 ==========
1978
1979 ARM-family processors.  Note that there are two different varieties of
1980 PE format subtarget supported: `arm-wince-pe' and `arm-pe' as well as a
1981 standard COFF target `arm-*-coff'.
1982
1983 arm-*-aout
1984 ==========
1985
1986 ARM-family processors.  These targets support the AOUT file format:
1987 `arm-*-aout', `arm-*-netbsd'.
1988
1989 avr
1990 ===
1991
1992 ATMEL AVR-family micro controllers.  These are used in embedded
1993 applications.  There are no standard Unix configurations.  *Note AVR
1994 Options: (gcc)AVR Options, for the list of supported MCU types.
1995
1996    Use `configure --target=avr --enable-languages="c"' to configure GCC.
1997
1998    Further installation notes and other useful information about AVR
1999 tools can also be obtained from:
2000
2001    * http://www.nongnu.org/avr/
2002
2003    * http://home.overta.ru/users/denisc/
2004
2005    * http://www.amelek.gda.pl/avr/
2006
2007    We _strongly_ recommend using binutils 2.13 or newer.
2008
2009    The following error:
2010        Error: register required
2011
2012    indicates that you should upgrade to a newer version of the binutils.
2013
2014 Blackfin
2015 ========
2016
2017 The Blackfin processor, an Analog Devices DSP.  *Note Blackfin Options:
2018 (gcc)Blackfin Options,
2019
2020    More information, and a version of binutils with support for this
2021 processor, is available at `http://blackfin.uclinux.org'
2022
2023 c4x
2024 ===
2025
2026 Texas Instruments TMS320C3x and TMS320C4x Floating Point Digital Signal
2027 Processors.  These are used in embedded applications.  There are no
2028 standard Unix configurations.  *Note TMS320C3x/C4x Options:
2029 (gcc)TMS320C3x/C4x Options, for the list of supported MCU types.
2030
2031    GCC can be configured as a cross compiler for both the C3x and C4x
2032 architectures on the same system.  Use `configure --target=c4x
2033 --enable-languages="c,c++"' to configure.
2034
2035    Further installation notes and other useful information about C4x
2036 tools can also be obtained from:
2037
2038    * http://www.elec.canterbury.ac.nz/c4x/
2039
2040 CRIS
2041 ====
2042
2043 CRIS is the CPU architecture in Axis Communications ETRAX
2044 system-on-a-chip series.  These are used in embedded applications.
2045
2046    *Note CRIS Options: (gcc)CRIS Options, for a list of CRIS-specific
2047 options.
2048
2049    There are a few different CRIS targets:
2050 `cris-axis-aout'
2051      Old target.  Includes a multilib for the `elinux' a.out-based
2052      target.  No multilibs for newer architecture variants.
2053
2054 `cris-axis-elf'
2055      Mainly for monolithic embedded systems.  Includes a multilib for
2056      the `v10' core used in `ETRAX 100 LX'.
2057
2058 `cris-axis-linux-gnu'
2059      A GNU/Linux port for the CRIS architecture, currently targeting
2060      `ETRAX 100 LX' by default.
2061
2062    For `cris-axis-aout' and `cris-axis-elf' you need binutils 2.11 or
2063 newer.  For `cris-axis-linux-gnu' you need binutils 2.12 or newer.
2064
2065    Pre-packaged tools can be obtained from
2066 `ftp://ftp.axis.com/pub/axis/tools/cris/compiler-kit/'.  More
2067 information about this platform is available at
2068 `http://developer.axis.com/'.
2069
2070 CRX
2071 ===
2072
2073 The CRX CompactRISC architecture is a low-power 32-bit architecture with
2074 fast context switching and architectural extensibility features.
2075
2076    *Note CRX Options: (gcc)CRX Options,
2077
2078    Use `configure --target=crx-elf --enable-languages=c,c++' to
2079 configure GCC for building a CRX cross-compiler. The option
2080 `--target=crx-elf' is also used to build the `newlib' C library for CRX.
2081
2082    It is also possible to build libstdc++-v3 for the CRX architecture.
2083 This needs to be done in a separate step with the following configure
2084 settings: `gcc/libstdc++-v3/configure --host=crx-elf --with-newlib
2085 --enable-sjlj-exceptions --enable-cxx-flags='-fexceptions -frtti''
2086
2087 DOS
2088 ===
2089
2090 Please have a look at the binaries page.
2091
2092    You cannot install GCC by itself on MSDOS; it will not compile under
2093 any MSDOS compiler except itself.  You need to get the complete
2094 compilation package DJGPP, which includes binaries as well as sources,
2095 and includes all the necessary compilation tools and libraries.
2096
2097 *-*-freebsd*
2098 ============
2099
2100 The version of binutils installed in `/usr/bin' probably works with
2101 this release of GCC.  However, on FreeBSD 4, bootstrapping against the
2102 latest FSF binutils is known to improve overall testsuite results; and,
2103 on FreeBSD/alpha, using binutils 2.14 or later is required to build
2104 libjava.
2105
2106    Support for FreeBSD 1 was discontinued in GCC 3.2.
2107
2108    Support for FreeBSD 2 will be discontinued after GCC 3.4.  The
2109 following was true for GCC 3.1 but the current status is unknown.  For
2110 FreeBSD 2 or any mutant a.out versions of FreeBSD 3: All configuration
2111 support and files as shipped with GCC 2.95 are still in place.  FreeBSD
2112 2.2.7 has been known to bootstrap completely; however, it is unknown
2113 which version of binutils was used (it is assumed that it was the
2114 system copy in `/usr/bin') and C++ EH failures were noted.
2115
2116    For FreeBSD using the ELF file format: DWARF 2 debugging is now the
2117 default for all CPU architectures.  It had been the default on
2118 FreeBSD/alpha since its inception.  You may use `-gstabs' instead of
2119 `-g', if you really want the old debugging format.  There are no known
2120 issues with mixing object files and libraries with different debugging
2121 formats.  Otherwise, this release of GCC should now match more of the
2122 configuration used in the stock FreeBSD configuration of GCC.  In
2123 particular, `--enable-threads' is now configured by default.  However,
2124 as a general user, do not attempt to replace the system compiler with
2125 this release.  Known to bootstrap and check with good results on
2126 FreeBSD 4.9-STABLE and 5-CURRENT.  In the past, known to bootstrap and
2127 check with good results on FreeBSD 3.0, 3.4, 4.0, 4.2, 4.3, 4.4, 4.5,
2128 4.8-STABLE.
2129
2130    In principle, `--enable-threads' is now compatible with
2131 `--enable-libgcj' on FreeBSD.  However, it has only been built and
2132 tested on `i386-*-freebsd[45]' and `alpha-*-freebsd[45]'.  The static
2133 library may be incorrectly built (symbols are missing at link time).
2134 There is a rare timing-based startup hang (probably involves an
2135 assumption about the thread library).  Multi-threaded boehm-gc
2136 (required for libjava) exposes severe threaded signal-handling bugs on
2137 FreeBSD before 4.5-RELEASE.  Other CPU architectures supported by
2138 FreeBSD will require additional configuration tuning in, at the very
2139 least, both boehm-gc and libffi.
2140
2141    Shared `libgcc_s.so' is now built and installed by default.
2142
2143 h8300-hms
2144 =========
2145
2146 Renesas H8/300 series of processors.
2147
2148    Please have a look at the binaries page.
2149
2150    The calling convention and structure layout has changed in release
2151 2.6.  All code must be recompiled.  The calling convention now passes
2152 the first three arguments in function calls in registers.  Structures
2153 are no longer a multiple of 2 bytes.
2154
2155 hppa*-hp-hpux*
2156 ==============
2157
2158 Support for HP-UX version 9 and older was discontinued in GCC 3.4.
2159
2160    We require using gas/binutils on all hppa platforms; you may
2161 encounter a variety of problems if you try to use the HP assembler.
2162
2163    Specifically, `-g' does not work on HP-UX (since that system uses a
2164 peculiar debugging format which GCC does not know about), unless you
2165 use GAS and GDB.  It may be helpful to configure GCC with the
2166 `--with-gnu-as' and `--with-as=...' options to ensure that GCC can find
2167 GAS.
2168
2169    If you wish to use the pa-risc 2.0 architecture support with a 32-bit
2170 runtime, you must use gas/binutils 2.11 or newer.
2171
2172    There are two default scheduling models for instructions.  These are
2173 PROCESSOR_7100LC and PROCESSOR_8000.  They are selected from the pa-risc
2174 architecture specified for the target machine when configuring.
2175 PROCESSOR_8000 is the default.  PROCESSOR_7100LC is selected when the
2176 target is a `hppa1*' machine.
2177
2178    The PROCESSOR_8000 model is not well suited to older processors.
2179 Thus, it is important to completely specify the machine architecture
2180 when configuring if you want a model other than PROCESSOR_8000.  The
2181 macro TARGET_SCHED_DEFAULT can be defined in BOOT_CFLAGS if a different
2182 default scheduling model is desired.
2183
2184    As of GCC 4.0, GCC uses the UNIX 95 namespace for HP-UX 10.10
2185 through 11.00, and the UNIX 98 namespace for HP-UX 11.11 and later.
2186 This namespace change might cause problems when bootstrapping with an
2187 earlier version of GCC or the HP compiler as essentially the same
2188 namespace is required for an entire build.  This problem can be avoided
2189 in a number of ways.  With HP cc, `UNIX_STD' can be set to `95' or
2190 `98'.  Another way is to add an appropriate set of predefines to `CC'.
2191 The description for the `munix=' option contains a list of the
2192 predefines used with each standard.
2193
2194    As of GCC 4.1, `DWARF2' exception handling is available on HP-UX.
2195 It is now the default.  This exposed a bug in the handling of data
2196 relocations in the GAS assembler.  The handling of 64-bit data
2197 relocations was seriously broken, affecting debugging and exception
2198 support on all `hppa64-*-*' targets.  Under some circumstances, 32-bit
2199 data relocations could also be handled incorrectly.  This problem is
2200 fixed in GAS version 2.16.91 20051125.
2201
2202    GCC versions prior to 4.1 incorrectly passed and returned complex
2203 values.  They are now passed in the same manner as aggregates.
2204
2205    More specific information to `hppa*-hp-hpux*' targets follows.
2206
2207 hppa*-hp-hpux10
2208 ===============
2209
2210 For hpux10.20, we _highly_ recommend you pick up the latest sed patch
2211 `PHCO_19798' from HP.  HP has two sites which provide patches free of
2212 charge:
2213
2214    * `http://us.itrc.hp.com/service/home/home.do' US, Canada,
2215      Asia-Pacific, and Latin-America.
2216
2217    * `http://europe.itrc.hp.com/service/home/home.do' Europe.
2218
2219    The HP assembler on these systems has some problems.  Most notably
2220 the assembler inserts timestamps into each object file it creates,
2221 causing the 3-stage comparison test to fail during a `make bootstrap'.
2222 You should be able to continue by saying `make all' after getting the
2223 failure from `make bootstrap'.
2224
2225    GCC 4.0 requires CVS binutils as of April 28, 2004 or later.  Earlier
2226 versions require binutils 2.8 or later.
2227
2228    The C++ ABI has changed incompatibly in GCC 4.0.  COMDAT subspaces
2229 are used for one-only code and data.  This resolves many of the previous
2230 problems in using C++ on this target.  However, the ABI is not
2231 compatible with the one implemented under HP-UX 11 using secondary
2232 definitions.
2233
2234 hppa*-hp-hpux11
2235 ===============
2236
2237 GCC 3.0 and up support HP-UX 11.  GCC 2.95.x is not supported and cannot
2238 be used to compile GCC 3.0 and up.
2239
2240    Refer to binaries for information about obtaining precompiled GCC
2241 binaries for HP-UX.  Precompiled binaries must be obtained to build the
2242 Ada language as it can't be bootstrapped using C.  Ada is only
2243 available for the 32-bit PA-RISC runtime.  The libffi and libjava
2244 haven't been ported to HP-UX and don't build.
2245
2246    It is possible to build GCC 3.3 starting with the bundled HP
2247 compiler, but the process requires several steps.  GCC 3.3 can then be
2248 used to build later versions.  The fastjar program contains ISO C code
2249 and can't be built with the HP bundled compiler.  This problem can be
2250 avoided by not building the Java language.  For example, use the
2251 `--enable-languages="c,c++,f77,objc"' option in your configure command.
2252
2253    Starting with GCC 3.4 an ISO C compiler is required to bootstrap.
2254 The bundled compiler supports only traditional C; you will need either
2255 HP's unbundled compiler, or a binary distribution of GCC.
2256
2257    There are several possible approaches to building the distribution.
2258 Binutils can be built first using the HP tools.  Then, the GCC
2259 distribution can be built.  The second approach is to build GCC first
2260 using the HP tools, then build binutils, then rebuild GCC.  There have
2261 been problems with various binary distributions, so it is best not to
2262 start from a binary distribution.
2263
2264    On 64-bit capable systems, there are two distinct targets.  Different
2265 installation prefixes must be used if both are to be installed on the
2266 same system.  The `hppa[1-2]*-hp-hpux11*' target generates code for the
2267 32-bit PA-RISC runtime architecture and uses the HP linker.  The
2268 `hppa64-hp-hpux11*' target generates 64-bit code for the PA-RISC 2.0
2269 architecture.  The HP and GNU linkers are both supported for this
2270 target.
2271
2272    The script config.guess now selects the target type based on the
2273 compiler detected during configuration.  You must define `PATH' or `CC'
2274 so that configure finds an appropriate compiler for the initial
2275 bootstrap.  When `CC' is used, the definition should contain the
2276 options that are needed whenever `CC' is used.
2277
2278    Specifically, options that determine the runtime architecture must be
2279 in `CC' to correctly select the target for the build.  It is also
2280 convenient to place many other compiler options in `CC'.  For example,
2281 `CC="cc -Ac +DA2.0W -Wp,-H16376 -D_CLASSIC_TYPES -D_HPUX_SOURCE"' can
2282 be used to bootstrap the GCC 3.3 branch with the HP compiler in 64-bit
2283 K&R/bundled mode.  The `+DA2.0W' option will result in the automatic
2284 selection of the `hppa64-hp-hpux11*' target.  The macro definition
2285 table of cpp needs to be increased for a successful build with the HP
2286 compiler.  _CLASSIC_TYPES and _HPUX_SOURCE need to be defined when
2287 building with the bundled compiler, or when using the `-Ac' option.
2288 These defines aren't necessary with `-Ae'.
2289
2290    It is best to explicitly configure the `hppa64-hp-hpux11*' target
2291 with the `--with-ld=...' option.  This overrides the standard search
2292 for ld.  The two linkers supported on this target require different
2293 commands.  The default linker is determined during configuration.  As a
2294 result, it's not possible to switch linkers in the middle of a GCC
2295 build.  This has been been reported to sometimes occur in unified
2296 builds of binutils and GCC.
2297
2298    GCC 3.0 through 3.2 require binutils 2.11 or above.  GCC 3.3 through
2299 GCC 4.0 require binutils 2.14 or later.
2300
2301    Although the HP assembler can be used for an initial build, it
2302 shouldn't be used with any languages other than C and perhaps Fortran
2303 due to its many limitations.  For example, it does not support weak
2304 symbols or alias definitions.  As a result, explicit template
2305 instantiations are required when using C++.  This makes it difficult if
2306 not impossible to build many C++ applications.  You can't generate
2307 debugging information when using the HP assembler.  Finally, `make
2308 bootstrap' fails in the final comparison of object modules due to the
2309 time stamps that it inserts into the modules.  The bootstrap can be
2310 continued from this point with `make all'.
2311
2312    A recent linker patch must be installed for the correct operation of
2313 GCC 3.3 and later.  `PHSS_26559' and `PHSS_24304' are the oldest linker
2314 patches that are known to work.  They are for HP-UX 11.00 and 11.11,
2315 respectively.  `PHSS_24303', the companion to `PHSS_24304', might be
2316 usable but it hasn't been tested.  These patches have been superseded.
2317 Consult the HP patch database to obtain the currently recommended
2318 linker patch for your system.
2319
2320    The patches are necessary for the support of weak symbols on the
2321 32-bit port, and for the running of initializers and finalizers.  Weak
2322 symbols are implemented using SOM secondary definition symbols.  Prior
2323 to HP-UX 11, there are bugs in the linker support for secondary symbols.
2324 The patches correct a problem of linker core dumps creating shared
2325 libraries containing secondary symbols, as well as various other
2326 linking issues involving secondary symbols.
2327
2328    GCC 3.3 uses the ELF DT_INIT_ARRAY and DT_FINI_ARRAY capabilities to
2329 run initializers and finalizers on the 64-bit port.  The 32-bit port
2330 uses the linker `+init' and `+fini' options for the same purpose.  The
2331 patches correct various problems with the +init/+fini options,
2332 including program core dumps.  Binutils 2.14 corrects a problem on the
2333 64-bit port resulting from HP's non-standard use of the .init and .fini
2334 sections for array initializers and finalizers.
2335
2336    There are a number of issues to consider in selecting which linker to
2337 use with the 64-bit port.  The GNU 64-bit linker can only create dynamic
2338 binaries.  The `-static' option causes linking with archive libraries
2339 but doesn't produce a truly static binary.  Dynamic binaries still
2340 require final binding by the dynamic loader to resolve a set of
2341 dynamic-loader-defined symbols.  The default behavior of the HP linker
2342 is the same as the GNU linker.  However, it can generate true 64-bit
2343 static binaries using the `+compat' option.
2344
2345    The HP 64-bit linker doesn't support linkonce semantics.  As a
2346 result, C++ programs have many more sections than they should.
2347
2348    The GNU 64-bit linker has some issues with shared library support
2349 and exceptions.  As a result, we only support libgcc in archive format.
2350 For similar reasons, dwarf2 unwind and exception support are disabled.
2351 The GNU linker also has problems creating binaries with `-static'.  It
2352 doesn't provide stubs for internal calls to global functions in shared
2353 libraries, so these calls can't be overloaded.
2354
2355    Thread support is not implemented in GCC 3.0 through 3.2, so the
2356 `--enable-threads' configure option does not work.  In 3.3 and later,
2357 POSIX threads are supported.  The optional DCE thread library is not
2358 supported.
2359
2360    This port still is undergoing significant development.
2361
2362 *-*-linux-gnu
2363 =============
2364
2365 Versions of libstdc++-v3 starting with 3.2.1 require bugfixes present
2366 in glibc 2.2.5 and later.  More information is available in the
2367 libstdc++-v3 documentation.
2368
2369 i?86-*-linux*aout
2370 =================
2371
2372 Use this configuration to generate `a.out' binaries on Linux-based GNU
2373 systems.  This configuration is being superseded.
2374
2375 i?86-*-linux*
2376 =============
2377
2378 As of GCC 3.3, binutils 2.13.1 or later is required for this platform.
2379 See bug 10877 for more information.
2380
2381    If you receive Signal 11 errors when building on GNU/Linux, then it
2382 is possible you have a hardware problem.  Further information on this
2383 can be found on www.bitwizard.nl.
2384
2385 i?86-*-sco3.2v5*
2386 ================
2387
2388 Use this for the SCO OpenServer Release 5 family of operating systems.
2389
2390    Unlike earlier versions of GCC, the ability to generate COFF with
2391 this target is no longer provided.
2392
2393    Earlier versions of GCC emitted DWARF 1 when generating ELF to allow
2394 the system debugger to be used.  That support was too burdensome to
2395 maintain.  GCC now emits only DWARF 2 for this target.  This means you
2396 may use either the UDK debugger or GDB to debug programs built by this
2397 version of GCC.
2398
2399    GCC is now only supported on releases 5.0.4 and later, and requires
2400 that you install Support Level Supplement OSS646B or later, and Support
2401 Level Supplement OSS631C or later.  If you are using release 5.0.7 of
2402 OpenServer, you must have at least the first maintenance pack installed
2403 (this includes the relevant portions of OSS646).  OSS646, also known as
2404 the "Execution Environment Update", provides updated link editors and
2405 assemblers, as well as updated standard C and math libraries.  The C
2406 startup modules are also updated to support the System V gABI draft, and
2407 GCC relies on that behavior.  OSS631 provides a collection of commonly
2408 used open source libraries, some of which GCC depends on (such as GNU
2409 gettext and zlib).  SCO OpenServer Release 5.0.7 has all of this built
2410 in by default, but OSS631C and later also apply to that release.  Please
2411 visit ftp://ftp.sco.com/pub/openserver5 for the latest versions of
2412 these (and other potentially useful) supplements.
2413
2414    Although there is support for using the native assembler, it is
2415 recommended that you configure GCC to use the GNU assembler.  You do
2416 this by using the flags `--with-gnu-as'.  You should use a modern
2417 version of GNU binutils.  Version 2.13.2.1 was used for all testing.
2418 In general, only the `--with-gnu-as' option is tested.  A modern
2419 bintuils (as well as a plethora of other development related GNU
2420 utilities) can be found in Support Level Supplement OSS658A, the "GNU
2421 Development Tools" package.  See the SCO web and ftp sites for details.
2422 That package also contains the currently "officially supported" version
2423 of GCC, version 2.95.3.  It is useful for bootstrapping this version.
2424
2425 i?86-*-solaris2.10
2426 ==================
2427
2428 Use this for Solaris 10 or later on x86 and x86-64 systems.  This
2429 configuration is supported by GCC 4.0 and later versions only.
2430
2431    It is recommended that you configure GCC to use the GNU assembler in
2432 `/usr/sfw/bin/gas' but the Sun linker, using the options `--with-gnu-as
2433 --with-as=/usr/sfw/bin/gas --without-gnu-ld --with-ld=/usr/ccs/bin/ld'.
2434
2435 i?86-*-udk
2436 ==========
2437
2438 This target emulates the SCO Universal Development Kit and requires that
2439 package be installed.  (If it is installed, you will have a
2440 `/udk/usr/ccs/bin/cc' file present.)  It's very much like the
2441 `i?86-*-unixware7*' target but is meant to be used when hosting on a
2442 system where UDK isn't the default compiler such as OpenServer 5 or
2443 Unixware 2.  This target will generate binaries that will run on
2444 OpenServer, Unixware 2, or Unixware 7, with the same warnings and
2445 caveats as the SCO UDK.
2446
2447    This target is a little tricky to build because we have to
2448 distinguish it from the native tools (so it gets headers, startups, and
2449 libraries from the right place) while making the tools not think we're
2450 actually building a cross compiler.   The easiest way to do this is
2451 with a configure command like this:
2452
2453          CC=/udk/usr/ccs/bin/cc /YOUR/PATH/TO/gcc/configure \
2454            --host=i686-pc-udk --target=i686-pc-udk --program-prefix=udk-
2455
2456    _You should substitute `i686' in the above command with the
2457 appropriate processor for your host._
2458
2459    After the usual `make bootstrap' and `make install', you can then
2460 access the UDK-targeted GCC tools by adding `udk-' before the commonly
2461 known name.  For example, to invoke the C compiler, you would use
2462 `udk-gcc'.  They will coexist peacefully with any native-target GCC
2463 tools you may have installed.
2464
2465 ia64-*-linux
2466 ============
2467
2468 IA-64 processor (also known as IPF, or Itanium Processor Family)
2469 running GNU/Linux.
2470
2471    If you are using the installed system libunwind library with
2472 `--with-system-libunwind', then you must use libunwind 0.98 or later.
2473
2474    None of the following versions of GCC has an ABI that is compatible
2475 with any of the other versions in this list, with the exception that
2476 Red Hat 2.96 and Trillian 000171 are compatible with each other: 3.1,
2477 3.0.2, 3.0.1, 3.0, Red Hat 2.96, and Trillian 000717.  This primarily
2478 affects C++ programs and programs that create shared libraries.  GCC
2479 3.1 or later is recommended for compiling linux, the kernel.  As of
2480 version 3.1 GCC is believed to be fully ABI compliant, and hence no
2481 more major ABI changes are expected.
2482
2483 ia64-*-hpux*
2484 ============
2485
2486 Building GCC on this target requires the GNU Assembler.  The bundled HP
2487 assembler will not work.  To prevent GCC from using the wrong assembler,
2488 the option `--with-gnu-as' may be necessary.
2489
2490    The GCC libunwind library has not been ported to HPUX.  This means
2491 that for GCC versions 3.2.3 and earlier, `--enable-libunwind-exceptions'
2492 is required to build GCC.  For GCC 3.3 and later, this is the default.
2493 For gcc 3.4.3 and later, `--enable-libunwind-exceptions' is removed and
2494 the system libunwind library will always be used.
2495
2496 *-ibm-aix*
2497 ==========
2498
2499 Support for AIX version 3 and older was discontinued in GCC 3.4.
2500
2501    AIX Make frequently has problems with GCC makefiles.  GNU Make
2502 3.79.1 or newer is recommended to build on this platform.
2503
2504    "out of memory" bootstrap failures may indicate a problem with
2505 process resource limits (ulimit).  Hard limits are configured in the
2506 `/etc/security/limits' system configuration file.
2507
2508    To speed up the configuration phases of bootstrapping and installing
2509 GCC, one may use GNU Bash instead of AIX `/bin/sh', e.g.,
2510
2511         % CONFIG_SHELL=/opt/freeware/bin/bash
2512         % export CONFIG_SHELL
2513
2514    and then proceed as described in the build instructions, where we
2515 strongly recommend using GNU make and specifying an absolute path to
2516 invoke SRCDIR/configure.
2517
2518    Errors involving `alloca' when building GCC generally are due to an
2519 incorrect definition of `CC' in the Makefile or mixing files compiled
2520 with the native C compiler and GCC.  During the stage1 phase of the
2521 build, the native AIX compiler *must* be invoked as `cc' (not `xlc').
2522 Once `configure' has been informed of `xlc', one needs to use `make
2523 distclean' to remove the configure cache files and ensure that `CC'
2524 environment variable does not provide a definition that will confuse
2525 `configure'.  If this error occurs during stage2 or later, then the
2526 problem most likely is the version of Make (see above).
2527
2528    The native `as' and `ld' are recommended for bootstrapping on AIX 4
2529 and required for bootstrapping on AIX 5L.  The GNU Assembler reports
2530 that it supports WEAK symbols on AIX 4, which causes GCC to try to
2531 utilize weak symbol functionality although it is not supported.  The GNU
2532 Assembler and Linker do not support AIX 5L sufficiently to bootstrap
2533 GCC.  The native AIX tools do interoperate with GCC.
2534
2535    Building `libstdc++.a' requires a fix for an AIX Assembler bug APAR
2536 IY26685 (AIX 4.3) or APAR IY25528 (AIX 5.1).  It also requires a fix
2537 for another AIX Assembler bug and a co-dependent AIX Archiver fix
2538 referenced as APAR IY53606 (AIX 5.2) or a APAR IY54774 (AIX 5.1)
2539
2540    `libstdc++' in GCC 3.4 increments the major version number of the
2541 shared object and GCC installation places the `libstdc++.a' shared
2542 library in a common location which will overwrite the and GCC 3.3
2543 version of the shared library.  Applications either need to be
2544 re-linked against the new shared library or the GCC 3.1 and GCC 3.3
2545 versions of the `libstdc++' shared object needs to be available to the
2546 AIX runtime loader.  The GCC 3.1 `libstdc++.so.4', if present, and GCC
2547 3.3 `libstdc++.so.5' shared objects can be installed for runtime
2548 dynamic loading using the following steps to set the `F_LOADONLY' flag
2549 in the shared object for _each_ multilib `libstdc++.a' installed:
2550
2551    Extract the shared objects from the currently installed
2552 `libstdc++.a' archive:
2553         % ar -x libstdc++.a libstdc++.so.4 libstdc++.so.5
2554
2555    Enable the `F_LOADONLY' flag so that the shared object will be
2556 available for runtime dynamic loading, but not linking:
2557         % strip -e libstdc++.so.4 libstdc++.so.5
2558
2559    Archive the runtime-only shared object in the GCC 3.4 `libstdc++.a'
2560 archive:
2561         % ar -q libstdc++.a libstdc++.so.4 libstdc++.so.5
2562
2563    Linking executables and shared libraries may produce warnings of
2564 duplicate symbols.  The assembly files generated by GCC for AIX always
2565 have included multiple symbol definitions for certain global variable
2566 and function declarations in the original program.  The warnings should
2567 not prevent the linker from producing a correct library or runnable
2568 executable.
2569
2570    AIX 4.3 utilizes a "large format" archive to support both 32-bit and
2571 64-bit object modules.  The routines provided in AIX 4.3.0 and AIX 4.3.1
2572 to parse archive libraries did not handle the new format correctly.
2573 These routines are used by GCC and result in error messages during
2574 linking such as "not a COFF file".  The version of the routines shipped
2575 with AIX 4.3.1 should work for a 32-bit environment.  The `-g' option
2576 of the archive command may be used to create archives of 32-bit objects
2577 using the original "small format".  A correct version of the routines
2578 is shipped with AIX 4.3.2 and above.
2579
2580    Some versions of the AIX binder (linker) can fail with a relocation
2581 overflow severe error when the `-bbigtoc' option is used to link
2582 GCC-produced object files into an executable that overflows the TOC.  A
2583 fix for APAR IX75823 (OVERFLOW DURING LINK WHEN USING GCC AND -BBIGTOC)
2584 is available from IBM Customer Support and from its
2585 techsupport.services.ibm.com website as PTF U455193.
2586
2587    The AIX 4.3.2.1 linker (bos.rte.bind_cmds Level 4.3.2.1) will dump
2588 core with a segmentation fault when invoked by any version of GCC.  A
2589 fix for APAR IX87327 is available from IBM Customer Support and from its
2590 techsupport.services.ibm.com website as PTF U461879.  This fix is
2591 incorporated in AIX 4.3.3 and above.
2592
2593    The initial assembler shipped with AIX 4.3.0 generates incorrect
2594 object files.  A fix for APAR IX74254 (64BIT DISASSEMBLED OUTPUT FROM
2595 COMPILER FAILS TO ASSEMBLE/BIND) is available from IBM Customer Support
2596 and from its techsupport.services.ibm.com website as PTF U453956.  This
2597 fix is incorporated in AIX 4.3.1 and above.
2598
2599    AIX provides National Language Support (NLS).  Compilers and
2600 assemblers use NLS to support locale-specific representations of
2601 various data formats including floating-point numbers (e.g., `.'  vs
2602 `,' for separating decimal fractions).  There have been problems
2603 reported where GCC does not produce the same floating-point formats
2604 that the assembler expects.  If one encounters this problem, set the
2605 `LANG' environment variable to `C' or `En_US'.
2606
2607    By default, GCC for AIX 4.1 and above produces code that can be used
2608 on both Power or PowerPC processors.
2609
2610    A default can be specified with the `-mcpu=CPU_TYPE' switch and
2611 using the configure option `--with-cpu-CPU_TYPE'.
2612
2613 iq2000-*-elf
2614 ============
2615
2616 Vitesse IQ2000 processors.  These are used in embedded applications.
2617 There are no standard Unix configurations.
2618
2619 m32c-*-elf
2620 ==========
2621
2622 Renesas M32C processor.  This configuration is intended for embedded
2623 systems.
2624
2625 m32r-*-elf
2626 ==========
2627
2628 Renesas M32R processor.  This configuration is intended for embedded
2629 systems.
2630
2631 m6811-elf
2632 =========
2633
2634 Motorola 68HC11 family micro controllers.  These are used in embedded
2635 applications.  There are no standard Unix configurations.
2636
2637 m6812-elf
2638 =========
2639
2640 Motorola 68HC12 family micro controllers.  These are used in embedded
2641 applications.  There are no standard Unix configurations.
2642
2643 m68k-hp-hpux
2644 ============
2645
2646 HP 9000 series 300 or 400 running HP-UX.  HP-UX version 8.0 has a bug in
2647 the assembler that prevents compilation of GCC.  This bug manifests
2648 itself during the first stage of compilation, while building
2649 `libgcc2.a':
2650
2651      _floatdisf
2652      cc1: warning: `-g' option not supported on this version of GCC
2653      cc1: warning: `-g1' option not supported on this version of GCC
2654      ./xgcc: Internal compiler error: program as got fatal signal 11
2655
2656    A patched version of the assembler is available as the file
2657 `ftp://altdorf.ai.mit.edu/archive/cph/hpux-8.0-assembler'.  If you have
2658 HP software support, the patch can also be obtained directly from HP,
2659 as described in the following note:
2660
2661      This is the patched assembler, to patch SR#1653-010439, where the
2662      assembler aborts on floating point constants.
2663
2664      The bug is not really in the assembler, but in the shared library
2665      version of the function "cvtnum(3c)".  The bug on "cvtnum(3c)" is
2666      SR#4701-078451.  Anyway, the attached assembler uses the archive
2667      library version of "cvtnum(3c)" and thus does not exhibit the bug.
2668
2669    This patch is also known as PHCO_4484.
2670
2671    In addition gdb does not understand that native HP-UX format, so you
2672 must use gas if you wish to use gdb.
2673
2674    On HP-UX version 8.05, but not on 8.07 or more recent versions, the
2675 `fixproto' shell script triggers a bug in the system shell.  If you
2676 encounter this problem, upgrade your operating system or use BASH (the
2677 GNU shell) to run `fixproto'.  This bug will cause the fixproto program
2678 to report an error of the form:
2679
2680      ./fixproto: sh internal 1K buffer overflow
2681
2682    To fix this, you can also change the first line of the fixproto
2683 script to look like:
2684
2685      #!/bin/ksh
2686
2687 mips-*-*
2688 ========
2689
2690 If on a MIPS system you get an error message saying "does not have gp
2691 sections for all it's [sic] sectons [sic]", don't worry about it.  This
2692 happens whenever you use GAS with the MIPS linker, but there is not
2693 really anything wrong, and it is okay to use the output file.  You can
2694 stop such warnings by installing the GNU linker.
2695
2696    It would be nice to extend GAS to produce the gp tables, but they are
2697 optional, and there should not be a warning about their absence.
2698
2699    The libstdc++ atomic locking routines for MIPS targets requires MIPS
2700 II and later.  A patch went in just after the GCC 3.3 release to make
2701 `mips*-*-*' use the generic implementation instead.  You can also
2702 configure for `mipsel-elf' as a workaround.  The `mips*-*-linux*'
2703 target continues to use the MIPS II routines.  More work on this is
2704 expected in future releases.
2705
2706    MIPS systems check for division by zero (unless
2707 `-mno-check-zero-division' is passed to the compiler) by generating
2708 either a conditional trap or a break instruction.  Using trap results
2709 in smaller code, but is only supported on MIPS II and later.  Also,
2710 some versions of the Linux kernel have a bug that prevents trap from
2711 generating the proper signal (`SIGFPE').  To enable the use of break,
2712 use the `--with-divide=breaks' `configure' option when configuring GCC.
2713 The default is to use traps on systems that support them.
2714
2715    Cross-compilers for the MIPS as target using the MIPS assembler
2716 currently do not work, because the auxiliary programs `mips-tdump.c'
2717 and `mips-tfile.c' can't be compiled on anything but a MIPS.  It does
2718 work to cross compile for a MIPS if you use the GNU assembler and
2719 linker.
2720
2721 mips-sgi-irix5
2722 ==============
2723
2724 In order to compile GCC on an SGI running IRIX 5, the `compiler_dev.hdr'
2725 subsystem must be installed from the IDO CD-ROM supplied by SGI.  It is
2726 also available for download from
2727 `ftp://ftp.sgi.com/sgi/IRIX5.3/iris-development-option-5.3.tardist'.
2728
2729    If you use the MIPS C compiler to bootstrap, it may be necessary to
2730 increase its table size for switch statements with the `-Wf,-XNg1500'
2731 option.  If you use the `-O2' optimization option, you also need to use
2732 `-Olimit 3000'.
2733
2734    To enable debugging under IRIX 5, you must use GNU binutils 2.15 or
2735 later, and use the `--with-gnu-ld' `configure' option when configuring
2736 GCC.  You need to use GNU `ar' and `nm', also distributed with GNU
2737 binutils.
2738
2739    Some users have reported that `/bin/sh' will hang during bootstrap.
2740 This problem can be avoided by running the commands:
2741
2742         % CONFIG_SHELL=/bin/ksh
2743         % export CONFIG_SHELL
2744
2745    before starting the build.
2746
2747 mips-sgi-irix6
2748 ==============
2749
2750 If you are using SGI's MIPSpro `cc' as your bootstrap compiler, you must
2751 ensure that the N32 ABI is in use.  To test this, compile a simple C
2752 file with `cc' and then run `file' on the resulting object file.  The
2753 output should look like:
2754
2755      test.o: ELF N32 MSB ...
2756
2757    If you see:
2758
2759      test.o: ELF 32-bit MSB ...
2760
2761    or
2762
2763      test.o: ELF 64-bit MSB ...
2764
2765    then your version of `cc' uses the O32 or N64 ABI by default.  You
2766 should set the environment variable `CC' to `cc -n32' before
2767 configuring GCC.
2768
2769    If you want the resulting `gcc' to run on old 32-bit systems with
2770 the MIPS R4400 CPU, you need to ensure that only code for the `mips3'
2771 instruction set architecture (ISA) is generated.  While GCC 3.x does
2772 this correctly, both GCC 2.95 and SGI's MIPSpro `cc' may change the ISA
2773 depending on the machine where GCC is built.  Using one of them as the
2774 bootstrap compiler may result in `mips4' code, which won't run at all
2775 on `mips3'-only systems.  For the test program above, you should see:
2776
2777      test.o: ELF N32 MSB mips-3 ...
2778
2779    If you get:
2780
2781      test.o: ELF N32 MSB mips-4 ...
2782
2783    instead, you should set the environment variable `CC' to `cc -n32
2784 -mips3' or `gcc -mips3' respectively before configuring GCC.
2785
2786    MIPSpro C 7.4 may cause bootstrap failures, due to a bug when
2787 inlining `memcmp'.  Either add `-U__INLINE_INTRINSICS' to the `CC'
2788 environment variable as a workaround or upgrade to MIPSpro C 7.4.1m.
2789
2790    GCC on IRIX 6 is usually built to support the N32, O32 and N64 ABIs.
2791 If you build GCC on a system that doesn't have the N64 libraries
2792 installed or cannot run 64-bit binaries, you need to configure with
2793 `--disable-multilib' so GCC doesn't try to use them.  This will disable
2794 building the O32 libraries, too.  Look for `/usr/lib64/libc.so.1' to
2795 see if you have the 64-bit libraries installed.
2796
2797    To enable debugging for the O32 ABI, you must use GNU `as' from GNU
2798 binutils 2.15 or later.  You may also use GNU `ld', but this is not
2799 required and currently causes some problems with Ada.
2800
2801    The `--enable-threads' option doesn't currently work, a patch is in
2802 preparation for a future release.  The `--enable-libgcj' option is
2803 disabled by default: IRIX 6 uses a very low default limit (20480) for
2804 the command line length.  Although `libtool' contains a workaround for
2805 this problem, at least the N64 `libgcj' is known not to build despite
2806 this, running into an internal error of the native `ld'.  A sure fix is
2807 to increase this limit (`ncargs') to its maximum of 262144 bytes.  If
2808 you have root access, you can use the `systune' command to do this.
2809
2810    `wchar_t' support in `libstdc++' is not available for old IRIX 6.5.x
2811 releases, x < 19.  The problem cannot be autodetected and in order to
2812 build GCC for such targets you need to configure with
2813 `--disable-wchar_t'.
2814
2815    See `http://freeware.sgi.com/' for more information about using GCC
2816 on IRIX platforms.
2817
2818 powerpc-*-*
2819 ===========
2820
2821 You can specify a default version for the `-mcpu=CPU_TYPE' switch by
2822 using the configure option `--with-cpu-CPU_TYPE'.
2823
2824 powerpc-*-darwin*
2825 =================
2826
2827 PowerPC running Darwin (Mac OS X kernel).
2828
2829    Pre-installed versions of Mac OS X may not include any developer
2830 tools, meaning that you will not be able to build GCC from source.  Tool
2831 binaries are available at
2832 `http://developer.apple.com/darwin/projects/compiler/' (free
2833 registration required).
2834
2835    This version of GCC requires at least cctools-590.7.
2836
2837    The version of GCC shipped by Apple typically includes a number of
2838 extensions not available in a standard GCC release.  These extensions
2839 are generally for backwards compatibility and best avoided.
2840
2841 powerpc-*-elf, powerpc-*-sysv4
2842 ==============================
2843
2844 PowerPC system in big endian mode, running System V.4.
2845
2846 powerpc*-*-linux-gnu*
2847 =====================
2848
2849 You will need binutils 2.15 or newer for a working GCC.
2850
2851 powerpc-*-netbsd*
2852 =================
2853
2854 PowerPC system in big endian mode running NetBSD.  To build the
2855 documentation you will need Texinfo version 4.2 (NetBSD 1.5.1 included
2856 Texinfo version 3.12).
2857
2858 powerpc-*-eabisim
2859 =================
2860
2861 Embedded PowerPC system in big endian mode for use in running under the
2862 PSIM simulator.
2863
2864 powerpc-*-eabi
2865 ==============
2866
2867 Embedded PowerPC system in big endian mode.
2868
2869 powerpcle-*-elf, powerpcle-*-sysv4
2870 ==================================
2871
2872 PowerPC system in little endian mode, running System V.4.
2873
2874 powerpcle-*-eabisim
2875 ===================
2876
2877 Embedded PowerPC system in little endian mode for use in running under
2878 the PSIM simulator.
2879
2880 powerpcle-*-eabi
2881 ================
2882
2883 Embedded PowerPC system in little endian mode.
2884
2885 s390-*-linux*
2886 =============
2887
2888 S/390 system running GNU/Linux for S/390.
2889
2890 s390x-*-linux*
2891 ==============
2892
2893 zSeries system (64-bit) running GNU/Linux for zSeries.
2894
2895 s390x-ibm-tpf*
2896 ==============
2897
2898 zSeries system (64-bit) running TPF.  This platform is supported as
2899 cross-compilation target only.
2900
2901 *-*-solaris2*
2902 =============
2903
2904 Sun does not ship a C compiler with Solaris 2.  To bootstrap and install
2905 GCC you first have to install a pre-built compiler, see the binaries
2906 page for details.
2907
2908    The Solaris 2 `/bin/sh' will often fail to configure `libstdc++-v3',
2909 `boehm-gc' or `libjava'.  We therefore recommend using the following
2910 initial sequence of commands
2911
2912         % CONFIG_SHELL=/bin/ksh
2913         % export CONFIG_SHELL
2914
2915    and proceed as described in the configure instructions.  In addition
2916 we strongly recommend specifying an absolute path to invoke
2917 SRCDIR/configure.
2918
2919    Solaris 2 comes with a number of optional OS packages.  Some of these
2920 are needed to use GCC fully, namely `SUNWarc', `SUNWbtool', `SUNWesu',
2921 `SUNWhea', `SUNWlibm', `SUNWsprot', and `SUNWtoo'.  If you did not
2922 install all optional packages when installing Solaris 2, you will need
2923 to verify that the packages that GCC needs are installed.
2924
2925    To check whether an optional package is installed, use the `pkginfo'
2926 command.  To add an optional package, use the `pkgadd' command.  For
2927 further details, see the Solaris 2 documentation.
2928
2929    Trying to use the linker and other tools in `/usr/ucb' to install
2930 GCC has been observed to cause trouble.  For example, the linker may
2931 hang indefinitely.  The fix is to remove `/usr/ucb' from your `PATH'.
2932
2933    The build process works more smoothly with the legacy Sun tools so,
2934 if you have `/usr/xpg4/bin' in your `PATH', we recommend that you place
2935 `/usr/bin' before `/usr/xpg4/bin' for the duration of the build.
2936
2937    All releases of GNU binutils prior to 2.11.2 have known bugs on this
2938 platform.  We recommend the use of GNU binutils 2.11.2 or later, or the
2939 vendor tools (Sun `as', Sun `ld').  Note that your mileage may vary if
2940 you use a combination of the GNU tools and the Sun tools: while the
2941 combination GNU `as' + Sun `ld' should reasonably work, the reverse
2942 combination Sun `as' + GNU `ld' is known to cause memory corruption at
2943 runtime in some cases for C++ programs.
2944
2945    The stock GNU binutils 2.15 release is broken on this platform
2946 because of a single bug.  It has been fixed on the 2.15 branch in the
2947 CVS repository.  You can obtain a working version by checking out the
2948 binutils-2_15-branch from the CVS repository or applying the patch
2949 `http://sourceware.org/ml/binutils-cvs/2004-09/msg00036.html' to the
2950 release.
2951
2952    We recommend using GNU binutils 2.16 or later in conjunction with
2953 GCC 4.x, or the vendor tools (Sun `as', Sun `ld').  However, for
2954 Solaris 10 and above, an additional patch is required in order for the
2955 GNU linker to be able to cope with a new flavor of shared libraries.
2956 You can obtain a working version by checking out the
2957 binutils-2_16-branch from the CVS repository or applying the patch
2958 `http://sourceware.org/ml/binutils-cvs/2005-07/msg00122.html' to the
2959 release.
2960
2961    Sun bug 4296832 turns up when compiling X11 headers with GCC 2.95 or
2962 newer: `g++' will complain that types are missing.  These headers assume
2963 that omitting the type means `int'; this assumption worked for C89 but
2964 is wrong for C++, and is now wrong for C99 also.
2965
2966    `g++' accepts such (invalid) constructs with the option
2967 `-fpermissive'; it will assume that any missing type is `int' (as
2968 defined by C89).
2969
2970    There are patches for Solaris 2.6 (105633-56 or newer for SPARC,
2971 106248-42 or newer for Intel), Solaris 7 (108376-21 or newer for SPARC,
2972 108377-20 for Intel), and Solaris 8 (108652-24 or newer for SPARC,
2973 108653-22 for Intel) that fix this bug.
2974
2975    Sun bug 4927647 sometimes causes random spurious testsuite failures
2976 related to missing diagnostic output.  This bug doesn't affect GCC
2977 itself, rather it is a kernel bug triggered by the `expect' program
2978 which is used only by the GCC testsuite driver.  When the bug causes
2979 the `expect' program to miss anticipated output, extra testsuite
2980 failures appear.
2981
2982    There are patches for Solaris 8 (117350-12 or newer for SPARC,
2983 117351-12 or newer for Intel) and Solaris 9 (117171-11 or newer for
2984 SPARC, 117172-11 or newer for Intel) that address this problem.
2985
2986 sparc-sun-solaris2*
2987 ===================
2988
2989 When GCC is configured to use binutils 2.11.2 or later the binaries
2990 produced are smaller than the ones produced using Sun's native tools;
2991 this difference is quite significant for binaries containing debugging
2992 information.
2993
2994    Sun `as' 4.x is broken in that it cannot cope with long symbol names.
2995 A typical error message might look similar to the following:
2996
2997      /usr/ccs/bin/as: "/var/tmp/ccMsw135.s", line 11041: error:
2998        can't compute value of an expression involving an external symbol.
2999
3000    This is Sun bug 4237974.  This is fixed with patch 108908-02 for
3001 Solaris 2.6 and has been fixed in later (5.x) versions of the assembler,
3002 starting with Solaris 7.
3003
3004    Starting with Solaris 7, the operating system is capable of executing
3005 64-bit SPARC V9 binaries.  GCC 3.1 and later properly supports this;
3006 the `-m64' option enables 64-bit code generation.  However, if all you
3007 want is code tuned for the UltraSPARC CPU, you should try the
3008 `-mtune=ultrasparc' option instead, which produces code that, unlike
3009 full 64-bit code, can still run on non-UltraSPARC machines.
3010
3011    When configuring on a Solaris 7 or later system that is running a
3012 kernel that supports only 32-bit binaries, one must configure with
3013 `--disable-multilib', since we will not be able to build the 64-bit
3014 target libraries.
3015
3016    GCC 3.3 and GCC 3.4 trigger code generation bugs in earlier versions
3017 of the GNU compiler (especially GCC 3.0.x versions), which lead to the
3018 miscompilation of the stage1 compiler and the subsequent failure of the
3019 bootstrap process.  A workaround is to use GCC 3.2.3 as an intermediary
3020 stage, i.e. to bootstrap that compiler with the base compiler and then
3021 use it to bootstrap the final compiler.
3022
3023    GCC 3.4 triggers a code generation bug in versions 5.4 (Sun ONE
3024 Studio 7) and 5.5 (Sun ONE Studio 8) of the Sun compiler, which causes
3025 a bootstrap failure in form of a miscompilation of the stage1 compiler
3026 by the Sun compiler.  This is Sun bug 4974440.  This is fixed with
3027 patch 112760-07.
3028
3029    GCC 3.4 changed the default debugging format from STABS to DWARF-2
3030 for 32-bit code on Solaris 7 and later.  If you use the Sun assembler,
3031 this change apparently runs afoul of Sun bug 4910101 (which is
3032 referenced as a x86-only problem by Sun, probably because they do not
3033 use DWARF-2).  A symptom of the problem is that you cannot compile C++
3034 programs like `groff' 1.19.1 without getting messages similar to the
3035 following:
3036
3037      ld: warning: relocation error: R_SPARC_UA32: ...
3038        external symbolic relocation against non-allocatable section
3039        .debug_info cannot be processed at runtime: relocation ignored.
3040
3041    To work around this problem, compile with `-gstabs+' instead of
3042 plain `-g'.
3043
3044    When configuring the GNU Multiple Precision Library (GMP) or the MPFR
3045 library on a Solaris 7 or later system, the canonical target triplet
3046 must be specified as the `build' parameter on the configure line.  This
3047 triplet can be obtained by invoking ./config.guess in the toplevel
3048 source directory of GCC (and not that of GMP or MPFR).  For example on
3049 a Solaris 7 system:
3050
3051         % ./configure --build=sparc-sun-solaris2.7 --prefix=xxx
3052
3053 sparc-sun-solaris2.7
3054 ====================
3055
3056 Sun patch 107058-01 (1999-01-13) for Solaris 7/SPARC triggers a bug in
3057 the dynamic linker.  This problem (Sun bug 4210064) affects GCC 2.8 and
3058 later, including all EGCS releases.  Sun formerly recommended 107058-01
3059 for all Solaris 7 users, but around 1999-09-01 it started to recommend
3060 it only for people who use Sun's compilers.
3061
3062    Here are some workarounds to this problem:
3063    * Do not install Sun patch 107058-01 until after Sun releases a
3064      complete patch for bug 4210064.  This is the simplest course to
3065      take, unless you must also use Sun's C compiler.  Unfortunately
3066      107058-01 is preinstalled on some new Solaris 7-based hosts, so
3067      you may have to back it out.
3068
3069    * Copy the original, unpatched Solaris 7 `/usr/ccs/bin/as' into
3070      `/usr/local/libexec/gcc/sparc-sun-solaris2.7/3.4/as', adjusting
3071      the latter name to fit your local conventions and software version
3072      numbers.
3073
3074    * Install Sun patch 106950-03 (1999-05-25) or later.  Nobody with
3075      both 107058-01 and 106950-03 installed has reported the bug with
3076      GCC and Sun's dynamic linker.  This last course of action is
3077      riskiest, for two reasons.  First, you must install 106950 on all
3078      hosts that run code generated by GCC; it doesn't suffice to
3079      install it only on the hosts that run GCC itself.  Second, Sun
3080      says that 106950-03 is only a partial fix for bug 4210064, but Sun
3081      doesn't know whether the partial fix is adequate for GCC.
3082      Revision -08 or later should fix the bug.  The current (as of
3083      2004-05-23) revision is -24, and is included in the Solaris 7
3084      Recommended Patch Cluster.
3085
3086    GCC 3.3 triggers a bug in version 5.0 Alpha 03/27/98 of the Sun
3087 assembler, which causes a bootstrap failure when linking the 64-bit
3088 shared version of libgcc.  A typical error message is:
3089
3090      ld: fatal: relocation error: R_SPARC_32: file libgcc/sparcv9/_muldi3.o:
3091        symbol <unknown>:  offset 0xffffffff7ec133e7 is non-aligned.
3092
3093    This bug has been fixed in the final 5.0 version of the assembler.
3094
3095    A similar problem was reported for version Sun WorkShop 6 99/08/18
3096 of the Sun assembler, which causes a bootstrap failure with GCC 4.0.0:
3097
3098      ld: fatal: relocation error: R_SPARC_DISP32:
3099        file .libs/libstdc++.lax/libsupc++convenience.a/vterminate.o:
3100          symbol <unknown>: offset 0xfccd33ad is non-aligned
3101
3102    This bug has been fixed in more recent revisions of the assembler.
3103
3104 sparc-*-linux*
3105 ==============
3106
3107 GCC versions 3.0 and higher require binutils 2.11.2 and glibc 2.2.4 or
3108 newer on this platform.  All earlier binutils and glibc releases
3109 mishandled unaligned relocations on `sparc-*-*' targets.
3110
3111 sparc64-*-solaris2*
3112 ===================
3113
3114 When configuring the GNU Multiple Precision Library (GMP) or the MPFR
3115 library, the canonical target triplet must be specified as the `build'
3116 parameter on the configure line.  For example on a Solaris 7 system:
3117
3118         % ./configure --build=sparc64-sun-solaris2.7 --prefix=xxx
3119
3120    The following compiler flags must be specified in the configure step
3121 in order to bootstrap this target with the Sun compiler:
3122
3123         % CC="cc -xarch=v9 -xildoff" SRCDIR/configure [OPTIONS] [TARGET]
3124
3125    `-xarch=v9' specifies the SPARC-V9 architecture to the Sun toolchain
3126 and `-xildoff' turns off the incremental linker.
3127
3128 sparcv9-*-solaris2*
3129 ===================
3130
3131 This is a synonym for sparc64-*-solaris2*.
3132
3133 *-*-sysv*
3134 =========
3135
3136 On System V release 3, you may get this error message while linking:
3137
3138      ld fatal: failed to write symbol name SOMETHING
3139       in strings table for file WHATEVER
3140
3141    This probably indicates that the disk is full or your ulimit won't
3142 allow the file to be as large as it needs to be.
3143
3144    This problem can also result because the kernel parameter `MAXUMEM'
3145 is too small.  If so, you must regenerate the kernel and make the value
3146 much larger.  The default value is reported to be 1024; a value of 32768
3147 is said to work.  Smaller values may also work.
3148
3149    On System V, if you get an error like this,
3150
3151      /usr/local/lib/bison.simple: In function `yyparse':
3152      /usr/local/lib/bison.simple:625: virtual memory exhausted
3153
3154 that too indicates a problem with disk space, ulimit, or `MAXUMEM'.
3155
3156    On a System V release 4 system, make sure `/usr/bin' precedes
3157 `/usr/ucb' in `PATH'.  The `cc' command in `/usr/ucb' uses libraries
3158 which have bugs.
3159
3160 vax-dec-ultrix
3161 ==============
3162
3163 Don't try compiling with VAX C (`vcc').  It produces incorrect code in
3164 some cases (for example, when `alloca' is used).
3165
3166 *-*-vxworks*
3167 ============
3168
3169 Support for VxWorks is in flux.  At present GCC supports _only_ the
3170 very recent VxWorks 5.5 (aka Tornado 2.2) release, and only on PowerPC.
3171 We welcome patches for other architectures supported by VxWorks 5.5.
3172 Support for VxWorks AE would also be welcome; we believe this is merely
3173 a matter of writing an appropriate "configlette" (see below).  We are
3174 not interested in supporting older, a.out or COFF-based, versions of
3175 VxWorks in GCC 3.
3176
3177    VxWorks comes with an older version of GCC installed in
3178 `$WIND_BASE/host'; we recommend you do not overwrite it.  Choose an
3179 installation PREFIX entirely outside $WIND_BASE.  Before running
3180 `configure', create the directories `PREFIX' and `PREFIX/bin'.  Link or
3181 copy the appropriate assembler, linker, etc. into `PREFIX/bin', and set
3182 your PATH to include that directory while running both `configure' and
3183 `make'.
3184
3185    You must give `configure' the `--with-headers=$WIND_BASE/target/h'
3186 switch so that it can find the VxWorks system headers.  Since VxWorks
3187 is a cross compilation target only, you must also specify
3188 `--target=TARGET'.  `configure' will attempt to create the directory
3189 `PREFIX/TARGET/sys-include' and copy files into it; make sure the user
3190 running `configure' has sufficient privilege to do so.
3191
3192    GCC's exception handling runtime requires a special "configlette"
3193 module, `contrib/gthr_supp_vxw_5x.c'.  Follow the instructions in that
3194 file to add the module to your kernel build.  (Future versions of
3195 VxWorks will incorporate this module.)
3196
3197 x86_64-*-*, amd64-*-*
3198 =====================
3199
3200 GCC supports the x86-64 architecture implemented by the AMD64 processor
3201 (amd64-*-* is an alias for x86_64-*-*) on GNU/Linux, FreeBSD and NetBSD.
3202 On GNU/Linux the default is a bi-arch compiler which is able to generate
3203 both 64-bit x86-64 and 32-bit x86 code (via the `-m32' switch).
3204
3205 xtensa-*-elf
3206 ============
3207
3208 This target is intended for embedded Xtensa systems using the `newlib'
3209 C library.  It uses ELF but does not support shared objects.
3210 Designed-defined instructions specified via the Tensilica Instruction
3211 Extension (TIE) language are only supported through inline assembly.
3212
3213    The Xtensa configuration information must be specified prior to
3214 building GCC.  The `include/xtensa-config.h' header file contains the
3215 configuration information.  If you created your own Xtensa
3216 configuration with the Xtensa Processor Generator, the downloaded files
3217 include a customized copy of this header file, which you can use to
3218 replace the default header file.
3219
3220 xtensa-*-linux*
3221 ===============
3222
3223 This target is for Xtensa systems running GNU/Linux.  It supports ELF
3224 shared objects and the GNU C library (glibc).  It also generates
3225 position-independent code (PIC) regardless of whether the `-fpic' or
3226 `-fPIC' options are used.  In other respects, this target is the same
3227 as the `xtensa-*-elf' target.
3228
3229 Microsoft Windows (32-bit)
3230 ==========================
3231
3232 Ports of GCC are included with the Cygwin environment.
3233
3234    GCC will build under Cygwin without modification; it does not build
3235 with Microsoft's C++ compiler and there are no plans to make it do so.
3236
3237 OS/2
3238 ====
3239
3240 GCC does not currently support OS/2.  However, Andrew Zabolotny has been
3241 working on a generic OS/2 port with pgcc.  The current code can be found
3242 at http://www.goof.com/pcg/os2/.
3243
3244 Older systems
3245 =============
3246
3247 GCC contains support files for many older (1980s and early 1990s) Unix
3248 variants.  For the most part, support for these systems has not been
3249 deliberately removed, but it has not been maintained for several years
3250 and may suffer from bitrot.
3251
3252    Starting with GCC 3.1, each release has a list of "obsoleted"
3253 systems.  Support for these systems is still present in that release,
3254 but `configure' will fail unless the `--enable-obsolete' option is
3255 given.  Unless a maintainer steps forward, support for these systems
3256 will be removed from the next release of GCC.
3257
3258    Support for old systems as hosts for GCC can cause problems if the
3259 workarounds for compiler, library and operating system bugs affect the
3260 cleanliness or maintainability of the rest of GCC.  In some cases, to
3261 bring GCC up on such a system, if still possible with current GCC, may
3262 require first installing an old version of GCC which did work on that
3263 system, and using it to compile a more recent GCC, to avoid bugs in the
3264 vendor compiler.  Old releases of GCC 1 and GCC 2 are available in the
3265 `old-releases' directory on the GCC mirror sites.  Header bugs may
3266 generally be avoided using `fixincludes', but bugs or deficiencies in
3267 libraries and the operating system may still cause problems.
3268
3269    Support for older systems as targets for cross-compilation is less
3270 problematic than support for them as hosts for GCC; if an enthusiast
3271 wishes to make such a target work again (including resurrecting any of
3272 the targets that never worked with GCC 2, starting from the last
3273 version before they were removed), patches following the usual
3274 requirements would be likely to be accepted, since they should not
3275 affect the support for more modern targets.
3276
3277    For some systems, old versions of GNU binutils may also be useful,
3278 and are available from `pub/binutils/old-releases' on sourceware.org
3279 mirror sites.
3280
3281    Some of the information on specific systems above relates to such
3282 older systems, but much of the information about GCC on such systems
3283 (which may no longer be applicable to current GCC) is to be found in
3284 the GCC texinfo manual.
3285
3286 all ELF targets (SVR4, Solaris 2, etc.)
3287 =======================================
3288
3289 C++ support is significantly better on ELF targets if you use the GNU
3290 linker; duplicate copies of inlines, vtables and template
3291 instantiations will be discarded automatically.
3292
3293 \1f
3294 File: gccinstall.info,  Node: Old,  Next: GNU Free Documentation License,  Prev: Specific,  Up: Top
3295
3296 10 Old installation documentation
3297 *********************************
3298
3299    Note most of this information is out of date and superseded by the
3300 previous chapters of this manual.  It is provided for historical
3301 reference only, because of a lack of volunteers to merge it into the
3302 main manual.
3303
3304 * Menu:
3305
3306 * Configurations::    Configurations Supported by GCC.
3307
3308    Here is the procedure for installing GCC on a GNU or Unix system.
3309
3310   1. If you have chosen a configuration for GCC which requires other GNU
3311      tools (such as GAS or the GNU linker) instead of the standard
3312      system tools, install the required tools in the build directory
3313      under the names `as', `ld' or whatever is appropriate.
3314
3315      Alternatively, you can do subsequent compilation using a value of
3316      the `PATH' environment variable such that the necessary GNU tools
3317      come before the standard system tools.
3318
3319   2. Specify the host, build and target machine configurations.  You do
3320      this when you run the `configure' script.
3321
3322      The "build" machine is the system which you are using, the "host"
3323      machine is the system where you want to run the resulting compiler
3324      (normally the build machine), and the "target" machine is the
3325      system for which you want the compiler to generate code.
3326
3327      If you are building a compiler to produce code for the machine it
3328      runs on (a native compiler), you normally do not need to specify
3329      any operands to `configure'; it will try to guess the type of
3330      machine you are on and use that as the build, host and target
3331      machines.  So you don't need to specify a configuration when
3332      building a native compiler unless `configure' cannot figure out
3333      what your configuration is or guesses wrong.
3334
3335      In those cases, specify the build machine's "configuration name"
3336      with the `--host' option; the host and target will default to be
3337      the same as the host machine.
3338
3339      Here is an example:
3340
3341           ./configure --host=sparc-sun-sunos4.1
3342
3343      A configuration name may be canonical or it may be more or less
3344      abbreviated.
3345
3346      A canonical configuration name has three parts, separated by
3347      dashes.  It looks like this: `CPU-COMPANY-SYSTEM'.  (The three
3348      parts may themselves contain dashes; `configure' can figure out
3349      which dashes serve which purpose.)  For example,
3350      `m68k-sun-sunos4.1' specifies a Sun 3.
3351
3352      You can also replace parts of the configuration by nicknames or
3353      aliases.  For example, `sun3' stands for `m68k-sun', so
3354      `sun3-sunos4.1' is another way to specify a Sun 3.
3355
3356      You can specify a version number after any of the system types,
3357      and some of the CPU types.  In most cases, the version is
3358      irrelevant, and will be ignored.  So you might as well specify the
3359      version if you know it.
3360
3361      See *Note Configurations::, for a list of supported configuration
3362      names and notes on many of the configurations.  You should check
3363      the notes in that section before proceeding any further with the
3364      installation of GCC.
3365
3366
3367 \1f
3368 File: gccinstall.info,  Node: Configurations,  Up: Old
3369
3370 10.1 Configurations Supported by GCC
3371 ====================================
3372
3373    Here are the possible CPU types:
3374
3375      1750a, a29k, alpha, arm, avr, cN, clipper, dsp16xx, elxsi, fr30,
3376      h8300, hppa1.0, hppa1.1, i370, i386, i486, i586, i686, i786, i860,
3377      i960, ip2k, m32r, m68000, m68k, m6811, m6812, m88k, mcore, mips,
3378      mipsel, mips64, mips64el, mn10200, mn10300, ns32k, pdp11, powerpc,
3379      powerpcle, romp, rs6000, sh, sparc, sparclite, sparc64, v850, vax,
3380      we32k.
3381
3382    Here are the recognized company names.  As you can see, customary
3383 abbreviations are used rather than the longer official names.
3384
3385      acorn, alliant, altos, apollo, apple, att, bull, cbm, convergent,
3386      convex, crds, dec, dg, dolphin, elxsi, encore, harris, hitachi,
3387      hp, ibm, intergraph, isi, mips, motorola, ncr, next, ns, omron,
3388      plexus, sequent, sgi, sony, sun, tti, unicom, wrs.
3389
3390    The company name is meaningful only to disambiguate when the rest of
3391 the information supplied is insufficient.  You can omit it, writing
3392 just `CPU-SYSTEM', if it is not needed.  For example, `vax-ultrix4.2'
3393 is equivalent to `vax-dec-ultrix4.2'.
3394
3395    Here is a list of system types:
3396
3397      386bsd, aix, acis, amigaos, aos, aout, aux, bosx, bsd, clix, coff,
3398      ctix, cxux, dgux, dynix, ebmon, ecoff, elf, esix, freebsd, hms,
3399      genix, gnu, linux, linux-gnu, hiux, hpux, iris, irix, isc, luna,
3400      lynxos, mach, minix, msdos, mvs, netbsd, newsos, nindy, ns, osf,
3401      osfrose, ptx, riscix, riscos, rtu, sco, sim, solaris, sunos, sym,
3402      sysv, udi, ultrix, unicos, uniplus, unos, vms, vsta, vxworks,
3403      winnt, xenix.
3404
3405 You can omit the system type; then `configure' guesses the operating
3406 system from the CPU and company.
3407
3408    You can add a version number to the system type; this may or may not
3409 make a difference.  For example, you can write `bsd4.3' or `bsd4.4' to
3410 distinguish versions of BSD.  In practice, the version number is most
3411 needed for `sysv3' and `sysv4', which are often treated differently.
3412
3413    `linux-gnu' is the canonical name for the GNU/Linux target; however
3414 GCC will also accept `linux'.  The version of the kernel in use is not
3415 relevant on these systems.  A suffix such as `libc1' or `aout'
3416 distinguishes major versions of the C library; all of the suffixed
3417 versions are obsolete.
3418
3419    If you specify an impossible combination such as `i860-dg-vms', then
3420 you may get an error message from `configure', or it may ignore part of
3421 the information and do the best it can with the rest.  `configure'
3422 always prints the canonical name for the alternative that it used.  GCC
3423 does not support all possible alternatives.
3424
3425    Often a particular model of machine has a name.  Many machine names
3426 are recognized as aliases for CPU/company combinations.  Thus, the
3427 machine name `sun3', mentioned above, is an alias for `m68k-sun'.
3428 Sometimes we accept a company name as a machine name, when the name is
3429 popularly used for a particular machine.  Here is a table of the known
3430 machine names:
3431
3432      3300, 3b1, 3bN, 7300, altos3068, altos, apollo68, att-7300,
3433      balance, convex-cN, crds, decstation-3100, decstation, delta,
3434      encore, fx2800, gmicro, hp7NN, hp8NN, hp9k2NN, hp9k3NN, hp9k7NN,
3435      hp9k8NN, iris4d, iris, isi68, m3230, magnum, merlin, miniframe,
3436      mmax, news-3600, news800, news, next, pbd, pc532, pmax, powerpc,
3437      powerpcle, ps2, risc-news, rtpc, sun2, sun386i, sun386, sun3,
3438      sun4, symmetry, tower-32, tower.
3439
3440 Remember that a machine name specifies both the cpu type and the company
3441 name.  If you want to install your own homemade configuration files,
3442 you can use `local' as the company name to access them.  If you use
3443 configuration `CPU-local', the configuration name without the cpu prefix
3444 is used to form the configuration file names.
3445
3446    Thus, if you specify `m68k-local', configuration uses files
3447 `m68k.md', `local.h', `m68k.c', `xm-local.h', `t-local', and `x-local',
3448 all in the directory `config/m68k'.
3449
3450 \1f
3451 File: gccinstall.info,  Node: GNU Free Documentation License,  Next: Concept Index,  Prev: Old,  Up: Top
3452
3453 GNU Free Documentation License
3454 ******************************
3455
3456                       Version 1.2, November 2002
3457
3458      Copyright (C) 2000,2001,2002 Free Software Foundation, Inc.
3459      51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
3460
3461      Everyone is permitted to copy and distribute verbatim copies
3462      of this license document, but changing it is not allowed.
3463
3464   0. PREAMBLE
3465
3466      The purpose of this License is to make a manual, textbook, or other
3467      functional and useful document "free" in the sense of freedom: to
3468      assure everyone the effective freedom to copy and redistribute it,
3469      with or without modifying it, either commercially or
3470      noncommercially.  Secondarily, this License preserves for the
3471      author and publisher a way to get credit for their work, while not
3472      being considered responsible for modifications made by others.
3473
3474      This License is a kind of "copyleft", which means that derivative
3475      works of the document must themselves be free in the same sense.
3476      It complements the GNU General Public License, which is a copyleft
3477      license designed for free software.
3478
3479      We have designed this License in order to use it for manuals for
3480      free software, because free software needs free documentation: a
3481      free program should come with manuals providing the same freedoms
3482      that the software does.  But this License is not limited to
3483      software manuals; it can be used for any textual work, regardless
3484      of subject matter or whether it is published as a printed book.
3485      We recommend this License principally for works whose purpose is
3486      instruction or reference.
3487
3488   1. APPLICABILITY AND DEFINITIONS
3489
3490      This License applies to any manual or other work, in any medium,
3491      that contains a notice placed by the copyright holder saying it
3492      can be distributed under the terms of this License.  Such a notice
3493      grants a world-wide, royalty-free license, unlimited in duration,
3494      to use that work under the conditions stated herein.  The
3495      "Document", below, refers to any such manual or work.  Any member
3496      of the public is a licensee, and is addressed as "you".  You
3497      accept the license if you copy, modify or distribute the work in a
3498      way requiring permission under copyright law.
3499
3500      A "Modified Version" of the Document means any work containing the
3501      Document or a portion of it, either copied verbatim, or with
3502      modifications and/or translated into another language.
3503
3504      A "Secondary Section" is a named appendix or a front-matter section
3505      of the Document that deals exclusively with the relationship of the
3506      publishers or authors of the Document to the Document's overall
3507      subject (or to related matters) and contains nothing that could
3508      fall directly within that overall subject.  (Thus, if the Document
3509      is in part a textbook of mathematics, a Secondary Section may not
3510      explain any mathematics.)  The relationship could be a matter of
3511      historical connection with the subject or with related matters, or
3512      of legal, commercial, philosophical, ethical or political position
3513      regarding them.
3514
3515      The "Invariant Sections" are certain Secondary Sections whose
3516      titles are designated, as being those of Invariant Sections, in
3517      the notice that says that the Document is released under this
3518      License.  If a section does not fit the above definition of
3519      Secondary then it is not allowed to be designated as Invariant.
3520      The Document may contain zero Invariant Sections.  If the Document
3521      does not identify any Invariant Sections then there are none.
3522
3523      The "Cover Texts" are certain short passages of text that are
3524      listed, as Front-Cover Texts or Back-Cover Texts, in the notice
3525      that says that the Document is released under this License.  A
3526      Front-Cover Text may be at most 5 words, and a Back-Cover Text may
3527      be at most 25 words.
3528
3529      A "Transparent" copy of the Document means a machine-readable copy,
3530      represented in a format whose specification is available to the
3531      general public, that is suitable for revising the document
3532      straightforwardly with generic text editors or (for images
3533      composed of pixels) generic paint programs or (for drawings) some
3534      widely available drawing editor, and that is suitable for input to
3535      text formatters or for automatic translation to a variety of
3536      formats suitable for input to text formatters.  A copy made in an
3537      otherwise Transparent file format whose markup, or absence of
3538      markup, has been arranged to thwart or discourage subsequent
3539      modification by readers is not Transparent.  An image format is
3540      not Transparent if used for any substantial amount of text.  A
3541      copy that is not "Transparent" is called "Opaque".
3542
3543      Examples of suitable formats for Transparent copies include plain
3544      ASCII without markup, Texinfo input format, LaTeX input format,
3545      SGML or XML using a publicly available DTD, and
3546      standard-conforming simple HTML, PostScript or PDF designed for
3547      human modification.  Examples of transparent image formats include
3548      PNG, XCF and JPG.  Opaque formats include proprietary formats that
3549      can be read and edited only by proprietary word processors, SGML or
3550      XML for which the DTD and/or processing tools are not generally
3551      available, and the machine-generated HTML, PostScript or PDF
3552      produced by some word processors for output purposes only.
3553
3554      The "Title Page" means, for a printed book, the title page itself,
3555      plus such following pages as are needed to hold, legibly, the
3556      material this License requires to appear in the title page.  For
3557      works in formats which do not have any title page as such, "Title
3558      Page" means the text near the most prominent appearance of the
3559      work's title, preceding the beginning of the body of the text.
3560
3561      A section "Entitled XYZ" means a named subunit of the Document
3562      whose title either is precisely XYZ or contains XYZ in parentheses
3563      following text that translates XYZ in another language.  (Here XYZ
3564      stands for a specific section name mentioned below, such as
3565      "Acknowledgements", "Dedications", "Endorsements", or "History".)
3566      To "Preserve the Title" of such a section when you modify the
3567      Document means that it remains a section "Entitled XYZ" according
3568      to this definition.
3569
3570      The Document may include Warranty Disclaimers next to the notice
3571      which states that this License applies to the Document.  These
3572      Warranty Disclaimers are considered to be included by reference in
3573      this License, but only as regards disclaiming warranties: any other
3574      implication that these Warranty Disclaimers may have is void and
3575      has no effect on the meaning of this License.
3576
3577   2. VERBATIM COPYING
3578
3579      You may copy and distribute the Document in any medium, either
3580      commercially or noncommercially, provided that this License, the
3581      copyright notices, and the license notice saying this License
3582      applies to the Document are reproduced in all copies, and that you
3583      add no other conditions whatsoever to those of this License.  You
3584      may not use technical measures to obstruct or control the reading
3585      or further copying of the copies you make or distribute.  However,
3586      you may accept compensation in exchange for copies.  If you
3587      distribute a large enough number of copies you must also follow
3588      the conditions in section 3.
3589
3590      You may also lend copies, under the same conditions stated above,
3591      and you may publicly display copies.
3592
3593   3. COPYING IN QUANTITY
3594
3595      If you publish printed copies (or copies in media that commonly
3596      have printed covers) of the Document, numbering more than 100, and
3597      the Document's license notice requires Cover Texts, you must
3598      enclose the copies in covers that carry, clearly and legibly, all
3599      these Cover Texts: Front-Cover Texts on the front cover, and
3600      Back-Cover Texts on the back cover.  Both covers must also clearly
3601      and legibly identify you as the publisher of these copies.  The
3602      front cover must present the full title with all words of the
3603      title equally prominent and visible.  You may add other material
3604      on the covers in addition.  Copying with changes limited to the
3605      covers, as long as they preserve the title of the Document and
3606      satisfy these conditions, can be treated as verbatim copying in
3607      other respects.
3608
3609      If the required texts for either cover are too voluminous to fit
3610      legibly, you should put the first ones listed (as many as fit
3611      reasonably) on the actual cover, and continue the rest onto
3612      adjacent pages.
3613
3614      If you publish or distribute Opaque copies of the Document
3615      numbering more than 100, you must either include a
3616      machine-readable Transparent copy along with each Opaque copy, or
3617      state in or with each Opaque copy a computer-network location from
3618      which the general network-using public has access to download
3619      using public-standard network protocols a complete Transparent
3620      copy of the Document, free of added material.  If you use the
3621      latter option, you must take reasonably prudent steps, when you
3622      begin distribution of Opaque copies in quantity, to ensure that
3623      this Transparent copy will remain thus accessible at the stated
3624      location until at least one year after the last time you
3625      distribute an Opaque copy (directly or through your agents or
3626      retailers) of that edition to the public.
3627
3628      It is requested, but not required, that you contact the authors of
3629      the Document well before redistributing any large number of
3630      copies, to give them a chance to provide you with an updated
3631      version of the Document.
3632
3633   4. MODIFICATIONS
3634
3635      You may copy and distribute a Modified Version of the Document
3636      under the conditions of sections 2 and 3 above, provided that you
3637      release the Modified Version under precisely this License, with
3638      the Modified Version filling the role of the Document, thus
3639      licensing distribution and modification of the Modified Version to
3640      whoever possesses a copy of it.  In addition, you must do these
3641      things in the Modified Version:
3642
3643        A. Use in the Title Page (and on the covers, if any) a title
3644           distinct from that of the Document, and from those of
3645           previous versions (which should, if there were any, be listed
3646           in the History section of the Document).  You may use the
3647           same title as a previous version if the original publisher of
3648           that version gives permission.
3649
3650        B. List on the Title Page, as authors, one or more persons or
3651           entities responsible for authorship of the modifications in
3652           the Modified Version, together with at least five of the
3653           principal authors of the Document (all of its principal
3654           authors, if it has fewer than five), unless they release you
3655           from this requirement.
3656
3657        C. State on the Title page the name of the publisher of the
3658           Modified Version, as the publisher.
3659
3660        D. Preserve all the copyright notices of the Document.
3661
3662        E. Add an appropriate copyright notice for your modifications
3663           adjacent to the other copyright notices.
3664
3665        F. Include, immediately after the copyright notices, a license
3666           notice giving the public permission to use the Modified
3667           Version under the terms of this License, in the form shown in
3668           the Addendum below.
3669
3670        G. Preserve in that license notice the full lists of Invariant
3671           Sections and required Cover Texts given in the Document's
3672           license notice.
3673
3674        H. Include an unaltered copy of this License.
3675
3676        I. Preserve the section Entitled "History", Preserve its Title,
3677           and add to it an item stating at least the title, year, new
3678           authors, and publisher of the Modified Version as given on
3679           the Title Page.  If there is no section Entitled "History" in
3680           the Document, create one stating the title, year, authors,
3681           and publisher of the Document as given on its Title Page,
3682           then add an item describing the Modified Version as stated in
3683           the previous sentence.
3684
3685        J. Preserve the network location, if any, given in the Document
3686           for public access to a Transparent copy of the Document, and
3687           likewise the network locations given in the Document for
3688           previous versions it was based on.  These may be placed in
3689           the "History" section.  You may omit a network location for a
3690           work that was published at least four years before the
3691           Document itself, or if the original publisher of the version
3692           it refers to gives permission.
3693
3694        K. For any section Entitled "Acknowledgements" or "Dedications",
3695           Preserve the Title of the section, and preserve in the
3696           section all the substance and tone of each of the contributor
3697           acknowledgements and/or dedications given therein.
3698
3699        L. Preserve all the Invariant Sections of the Document,
3700           unaltered in their text and in their titles.  Section numbers
3701           or the equivalent are not considered part of the section
3702           titles.
3703
3704        M. Delete any section Entitled "Endorsements".  Such a section
3705           may not be included in the Modified Version.
3706
3707        N. Do not retitle any existing section to be Entitled
3708           "Endorsements" or to conflict in title with any Invariant
3709           Section.
3710
3711        O. Preserve any Warranty Disclaimers.
3712
3713      If the Modified Version includes new front-matter sections or
3714      appendices that qualify as Secondary Sections and contain no
3715      material copied from the Document, you may at your option
3716      designate some or all of these sections as invariant.  To do this,
3717      add their titles to the list of Invariant Sections in the Modified
3718      Version's license notice.  These titles must be distinct from any
3719      other section titles.
3720
3721      You may add a section Entitled "Endorsements", provided it contains
3722      nothing but endorsements of your Modified Version by various
3723      parties--for example, statements of peer review or that the text
3724      has been approved by an organization as the authoritative
3725      definition of a standard.
3726
3727      You may add a passage of up to five words as a Front-Cover Text,
3728      and a passage of up to 25 words as a Back-Cover Text, to the end
3729      of the list of Cover Texts in the Modified Version.  Only one
3730      passage of Front-Cover Text and one of Back-Cover Text may be
3731      added by (or through arrangements made by) any one entity.  If the
3732      Document already includes a cover text for the same cover,
3733      previously added by you or by arrangement made by the same entity
3734      you are acting on behalf of, you may not add another; but you may
3735      replace the old one, on explicit permission from the previous
3736      publisher that added the old one.
3737
3738      The author(s) and publisher(s) of the Document do not by this
3739      License give permission to use their names for publicity for or to
3740      assert or imply endorsement of any Modified Version.
3741
3742   5. COMBINING DOCUMENTS
3743
3744      You may combine the Document with other documents released under
3745      this License, under the terms defined in section 4 above for
3746      modified versions, provided that you include in the combination
3747      all of the Invariant Sections of all of the original documents,
3748      unmodified, and list them all as Invariant Sections of your
3749      combined work in its license notice, and that you preserve all
3750      their Warranty Disclaimers.
3751
3752      The combined work need only contain one copy of this License, and
3753      multiple identical Invariant Sections may be replaced with a single
3754      copy.  If there are multiple Invariant Sections with the same name
3755      but different contents, make the title of each such section unique
3756      by adding at the end of it, in parentheses, the name of the
3757      original author or publisher of that section if known, or else a
3758      unique number.  Make the same adjustment to the section titles in
3759      the list of Invariant Sections in the license notice of the
3760      combined work.
3761
3762      In the combination, you must combine any sections Entitled
3763      "History" in the various original documents, forming one section
3764      Entitled "History"; likewise combine any sections Entitled
3765      "Acknowledgements", and any sections Entitled "Dedications".  You
3766      must delete all sections Entitled "Endorsements."
3767
3768   6. COLLECTIONS OF DOCUMENTS
3769
3770      You may make a collection consisting of the Document and other
3771      documents released under this License, and replace the individual
3772      copies of this License in the various documents with a single copy
3773      that is included in the collection, provided that you follow the
3774      rules of this License for verbatim copying of each of the
3775      documents in all other respects.
3776
3777      You may extract a single document from such a collection, and
3778      distribute it individually under this License, provided you insert
3779      a copy of this License into the extracted document, and follow
3780      this License in all other respects regarding verbatim copying of
3781      that document.
3782
3783   7. AGGREGATION WITH INDEPENDENT WORKS
3784
3785      A compilation of the Document or its derivatives with other
3786      separate and independent documents or works, in or on a volume of
3787      a storage or distribution medium, is called an "aggregate" if the
3788      copyright resulting from the compilation is not used to limit the
3789      legal rights of the compilation's users beyond what the individual
3790      works permit.  When the Document is included in an aggregate, this
3791      License does not apply to the other works in the aggregate which
3792      are not themselves derivative works of the Document.
3793
3794      If the Cover Text requirement of section 3 is applicable to these
3795      copies of the Document, then if the Document is less than one half
3796      of the entire aggregate, the Document's Cover Texts may be placed
3797      on covers that bracket the Document within the aggregate, or the
3798      electronic equivalent of covers if the Document is in electronic
3799      form.  Otherwise they must appear on printed covers that bracket
3800      the whole aggregate.
3801
3802   8. TRANSLATION
3803
3804      Translation is considered a kind of modification, so you may
3805      distribute translations of the Document under the terms of section
3806      4.  Replacing Invariant Sections with translations requires special
3807      permission from their copyright holders, but you may include
3808      translations of some or all Invariant Sections in addition to the
3809      original versions of these Invariant Sections.  You may include a
3810      translation of this License, and all the license notices in the
3811      Document, and any Warranty Disclaimers, provided that you also
3812      include the original English version of this License and the
3813      original versions of those notices and disclaimers.  In case of a
3814      disagreement between the translation and the original version of
3815      this License or a notice or disclaimer, the original version will
3816      prevail.
3817
3818      If a section in the Document is Entitled "Acknowledgements",
3819      "Dedications", or "History", the requirement (section 4) to
3820      Preserve its Title (section 1) will typically require changing the
3821      actual title.
3822
3823   9. TERMINATION
3824
3825      You may not copy, modify, sublicense, or distribute the Document
3826      except as expressly provided for under this License.  Any other
3827      attempt to copy, modify, sublicense or distribute the Document is
3828      void, and will automatically terminate your rights under this
3829      License.  However, parties who have received copies, or rights,
3830      from you under this License will not have their licenses
3831      terminated so long as such parties remain in full compliance.
3832
3833  10. FUTURE REVISIONS OF THIS LICENSE
3834
3835      The Free Software Foundation may publish new, revised versions of
3836      the GNU Free Documentation License from time to time.  Such new
3837      versions will be similar in spirit to the present version, but may
3838      differ in detail to address new problems or concerns.  See
3839      `http://www.gnu.org/copyleft/'.
3840
3841      Each version of the License is given a distinguishing version
3842      number.  If the Document specifies that a particular numbered
3843      version of this License "or any later version" applies to it, you
3844      have the option of following the terms and conditions either of
3845      that specified version or of any later version that has been
3846      published (not as a draft) by the Free Software Foundation.  If
3847      the Document does not specify a version number of this License,
3848      you may choose any version ever published (not as a draft) by the
3849      Free Software Foundation.
3850
3851 ADDENDUM: How to use this License for your documents
3852 ====================================================
3853
3854 To use this License in a document you have written, include a copy of
3855 the License in the document and put the following copyright and license
3856 notices just after the title page:
3857
3858        Copyright (C)  YEAR  YOUR NAME.
3859        Permission is granted to copy, distribute and/or modify this document
3860        under the terms of the GNU Free Documentation License, Version 1.2
3861        or any later version published by the Free Software Foundation;
3862        with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
3863        Texts.  A copy of the license is included in the section entitled ``GNU
3864        Free Documentation License''.
3865
3866    If you have Invariant Sections, Front-Cover Texts and Back-Cover
3867 Texts, replace the "with...Texts." line with this:
3868
3869          with the Invariant Sections being LIST THEIR TITLES, with
3870          the Front-Cover Texts being LIST, and with the Back-Cover Texts
3871          being LIST.
3872
3873    If you have Invariant Sections without Cover Texts, or some other
3874 combination of the three, merge those two alternatives to suit the
3875 situation.
3876
3877    If your document contains nontrivial examples of program code, we
3878 recommend releasing these examples in parallel under your choice of
3879 free software license, such as the GNU General Public License, to
3880 permit their use in free software.
3881
3882 \1f
3883 File: gccinstall.info,  Node: Concept Index,  Prev: GNU Free Documentation License,  Up: Top
3884
3885 Concept Index
3886 *************
3887
3888 \0\b[index\0\b]
3889 * Menu:
3890
3891 * Binaries:                              Binaries.              (line 6)
3892 * Configuration:                         Configuration.         (line 6)
3893 * configurations supported by GCC:       Configurations.        (line 6)
3894 * Downloading GCC:                       Downloading the source.
3895                                                                 (line 6)
3896 * Downloading the Source:                Downloading the source.
3897                                                                 (line 6)
3898 * FDL, GNU Free Documentation License:   GNU Free Documentation License.
3899                                                                 (line 6)
3900 * Host specific installation:            Specific.              (line 6)
3901 * Installing GCC: Binaries:              Binaries.              (line 6)
3902 * Installing GCC: Building:              Building.              (line 6)
3903 * Installing GCC: Configuration:         Configuration.         (line 6)
3904 * Installing GCC: Testing:               Testing.               (line 6)
3905 * Prerequisites:                         Prerequisites.         (line 6)
3906 * Specific:                              Specific.              (line 6)
3907 * Specific installation notes:           Specific.              (line 6)
3908 * Target specific installation:          Specific.              (line 6)
3909 * Target specific installation notes:    Specific.              (line 6)
3910 * Testing:                               Testing.               (line 6)
3911 * Testsuite:                             Testing.               (line 6)
3912
3913
3914 \1f
3915 Tag Table:
3916 Node: Top\7f1924
3917 Node: Installing GCC\7f2482
3918 Node: Prerequisites\7f3997
3919 Node: Downloading the source\7f10645
3920 Node: Configuration\7f12326
3921 Ref: with-gnu-as\7f25155
3922 Ref: with-as\7f26342
3923 Ref: with-gnu-ld\7f27347
3924 Node: Building\7f52836
3925 Node: Testing\7f63003
3926 Node: Final install\7f70865
3927 Node: Binaries\7f75911
3928 Node: Specific\7f77772
3929 Ref: alpha-x-x\7f78059
3930 Ref: alpha-dec-osf\7f78548
3931 Ref: alphaev5-cray-unicosmk\7f82125
3932 Ref: arc-x-elf\7f83072
3933 Ref: arm-x-elf\7f83172
3934 Ref: xscale-x-x\7f83193
3935 Ref: arm-x-coff\7f83429
3936 Ref: arm-x-aout\7f83631
3937 Ref: avr\7f83753
3938 Ref: bfin\7f84437
3939 Ref: c4x\7f84679
3940 Ref: cris\7f85277
3941 Ref: crx\7f86259
3942 Ref: dos\7f86922
3943 Ref: x-x-freebsd\7f87245
3944 Ref: h8300-hms\7f89628
3945 Ref: hppa-hp-hpux\7f89980
3946 Ref: hppa-hp-hpux10\7f92468
3947 Ref: hppa-hp-hpux11\7f93525
3948 Ref: x-x-linux-gnu\7f100380
3949 Ref: ix86-x-linuxaout\7f100572
3950 Ref: ix86-x-linux\7f100731
3951 Ref: ix86-x-sco32v5\7f101044
3952 Ref: ix86-x-solaris210\7f103213
3953 Ref: ix86-x-udk\7f103599
3954 Ref: ia64-x-linux\7f104963
3955 Ref: ia64-x-hpux\7f105733
3956 Ref: x-ibm-aix\7f106288
3957 Ref: iq2000-x-elf\7f112144
3958 Ref: m32c-x-elf\7f112284
3959 Ref: m32r-x-elf\7f112386
3960 Ref: m6811-elf\7f112488
3961 Ref: m6812-elf\7f112638
3962 Ref: m68k-hp-hpux\7f112788
3963 Ref: mips-x-x\7f114527
3964 Ref: mips-sgi-irix5\7f116196
3965 Ref: mips-sgi-irix6\7f117144
3966 Ref: powerpc-x-x\7f120054
3967 Ref: powerpc-x-darwin\7f120199
3968 Ref: powerpc-x-elf\7f120790
3969 Ref: powerpc-x-linux-gnu\7f120909
3970 Ref: powerpc-x-netbsd\7f121011
3971 Ref: powerpc-x-eabisim\7f121207
3972 Ref: powerpc-x-eabi\7f121333
3973 Ref: powerpcle-x-elf\7f121409
3974 Ref: powerpcle-x-eabisim\7f121539
3975 Ref: powerpcle-x-eabi\7f121672
3976 Ref: s390-x-linux\7f121755
3977 Ref: s390x-x-linux\7f121827
3978 Ref: s390x-ibm-tpf\7f121914
3979 Ref: x-x-solaris2\7f122045
3980 Ref: sparc-sun-solaris2\7f126073
3981 Ref: sparc-sun-solaris27\7f129237
3982 Ref: sparc-x-linux\7f131701
3983 Ref: sparc64-x-solaris2\7f131926
3984 Ref: sparcv9-x-solaris2\7f132571
3985 Ref: x-x-sysv\7f132656
3986 Ref: vax-dec-ultrix\7f133617
3987 Ref: x-x-vxworks\7f133769
3988 Ref: x86-64-x-x\7f135291
3989 Ref: xtensa-x-elf\7f135619
3990 Ref: xtensa-x-linux\7f136288
3991 Ref: windows\7f136626
3992 Ref: os2\7f136880
3993 Ref: older\7f137071
3994 Ref: elf\7f139188
3995 Node: Old\7f139446
3996 Node: Configurations\7f142583
3997 Node: GNU Free Documentation License\7f146565
3998 Node: Concept Index\7f168981
3999 \1f
4000 End Tag Table