OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-stable/] [gcc-4.5.1/] [gcc/] [doc/] [gccinstall.info] - Blame information for rev 284

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 284 jeremybenn
This is doc/gccinstall.info, produced by makeinfo version 4.12 from
2
/space/rguenther/gcc-4.5.1/gcc-4.5.1/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, 2006, 2007, 2008 Free
6
Software Foundation, Inc.
7
 
8
   Permission is granted to copy, distribute and/or modify this document
9
under the terms of the GNU Free Documentation License, Version 1.2 or
10
any later version published by the Free Software Foundation; with no
11
Invariant Sections, the Front-Cover texts being (a) (see below), and
12
with the Back-Cover Texts being (b) (see below).  A copy of the license
13
is included in the section entitled "GNU Free Documentation License".
14
 
15
   (a) The FSF's Front-Cover Text is:
16
 
17
   A GNU Manual
18
 
19
   (b) The FSF's Back-Cover Text is:
20
 
21
   You have freedom to copy and modify this GNU Manual, like GNU
22
software.  Copies published by the Free Software Foundation raise
23
funds for GNU development.
24
 
25
   Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
26
1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free
27
Software Foundation, Inc.
28
 
29
   Permission is granted to copy, distribute and/or modify this document
30
under the terms of the GNU Free Documentation License, Version 1.2 or
31
any later version published by the Free Software Foundation; with no
32
Invariant Sections, the Front-Cover texts being (a) (see below), and
33
with the Back-Cover Texts being (b) (see below).  A copy of the license
34
is included in the section entitled "GNU Free Documentation License".
35
 
36
   (a) The FSF's Front-Cover Text is:
37
 
38
   A GNU Manual
39
 
40
   (b) The FSF's Back-Cover Text is:
41
 
42
   You have freedom to copy and modify this GNU Manual, like GNU
43
software.  Copies published by the Free Software Foundation raise
44
funds for GNU development.
45
 
46
INFO-DIR-SECTION Software development
47
START-INFO-DIR-ENTRY
48
* gccinstall: (gccinstall).    Installing the GNU Compiler Collection.
49
END-INFO-DIR-ENTRY
50
 
51

52
File: gccinstall.info,  Node: Top,  Up: (dir)
53
 
54
* Menu:
55
 
56
* Installing GCC::  This document describes the generic installation
57
                    procedure for GCC as well as detailing some target
58
                    specific installation instructions.
59
 
60
* Specific::        Host/target specific installation notes for GCC.
61
* Binaries::        Where to get pre-compiled binaries.
62
 
63
* Old::             Old installation documentation.
64
 
65
* GNU Free Documentation License:: How you can copy and share this manual.
66
* Concept Index::   This index has two entries.
67
 
68

69
File: gccinstall.info,  Node: Installing GCC,  Next: Binaries,  Up: Top
70
 
71
1 Installing GCC
72
****************
73
 
74
   The latest version of this document is always available at
75
http://gcc.gnu.org/install/.
76
 
77
   This document describes the generic installation procedure for GCC
78
as well as detailing some target specific installation instructions.
79
 
80
   GCC includes several components that previously were separate
81
distributions with their own installation instructions.  This document
82
supersedes all package specific installation instructions.
83
 
84
   _Before_ starting the build/install procedure please check the *note
85
host/target specific installation notes: Specific.  We recommend you
86
browse the entire generic installation instructions before you proceed.
87
 
88
   Lists of successful builds for released versions of GCC are
89
available at `http://gcc.gnu.org/buildstat.html'.  These lists are
90
updated as new information becomes available.
91
 
92
   The installation procedure itself is broken into five steps.
93
 
94
* Menu:
95
 
96
* Prerequisites::
97
* Downloading the source::
98
* Configuration::
99
* Building::
100
* Testing:: (optional)
101
* Final install::
102
 
103
   Please note that GCC does not support `make uninstall' and probably
104
won't do so in the near future as this would open a can of worms.
105
Instead, we suggest that you install GCC into a directory of its own
106
and simply remove that directory when you do not need that specific
107
version of GCC any longer, and, if shared libraries are installed there
108
as well, no more binaries exist that use them.
109
 
110

111
File: gccinstall.info,  Node: Prerequisites,  Next: Downloading the source,  Up: Installing GCC
112
 
113
2 Prerequisites
114
***************
115
 
116
   GCC requires that various tools and packages be available for use in
117
the build procedure.  Modifying GCC sources requires additional tools
118
described below.
119
 
120
Tools/packages necessary for building GCC
121
=========================================
122
 
123
ISO C90 compiler
124
     Necessary to bootstrap GCC, although versions of GCC prior to 3.4
125
     also allow bootstrapping with a traditional (K&R) C compiler.
126
 
127
     To build all languages in a cross-compiler or other configuration
128
     where 3-stage bootstrap is not performed, you need to start with
129
     an existing GCC binary (version 2.95 or later) because source code
130
     for language frontends other than C might use GCC extensions.
131
 
132
GNAT
133
     In order to build the Ada compiler (GNAT) you must already have
134
     GNAT installed because portions of the Ada frontend are written in
135
     Ada (with GNAT extensions.)  Refer to the Ada installation
136
     instructions for more specific information.
137
 
138
A "working" POSIX compatible shell, or GNU bash
139
     Necessary when running `configure' because some `/bin/sh' shells
140
     have bugs and may crash when configuring the target libraries.  In
141
     other cases, `/bin/sh' or `ksh' have disastrous corner-case
142
     performance problems.  This can cause target `configure' runs to
143
     literally take days to complete in some cases.
144
 
145
     So on some platforms `/bin/ksh' is sufficient, on others it isn't.
146
     See the host/target specific instructions for your platform, or
147
     use `bash' to be sure.  Then set `CONFIG_SHELL' in your
148
     environment to your "good" shell prior to running
149
     `configure'/`make'.
150
 
151
     `zsh' is not a fully compliant POSIX shell and will not work when
152
     configuring GCC.
153
 
154
A POSIX or SVR4 awk
155
     Necessary for creating some of the generated source files for GCC.
156
     If in doubt, use a recent GNU awk version, as some of the older
157
     ones are broken.  GNU awk version 3.1.5 is known to work.
158
 
159
GNU binutils
160
     Necessary in some circumstances, optional in others.  See the
161
     host/target specific instructions for your platform for the exact
162
     requirements.
163
 
164
gzip version 1.2.4 (or later) or
165
bzip2 version 1.0.2 (or later)
166
     Necessary to uncompress GCC `tar' files when source code is
167
     obtained via FTP mirror sites.
168
 
169
GNU make version 3.80 (or later)
170
     You must have GNU make installed to build GCC.
171
 
172
GNU tar version 1.14 (or later)
173
     Necessary (only on some platforms) to untar the source code.  Many
174
     systems' `tar' programs will also work, only try GNU `tar' if you
175
     have problems.
176
 
177
GNU Multiple Precision Library (GMP) version 4.3.2 (or later)
178
     Necessary to build GCC.  If you do not have it installed in your
179
     library search path, you will have to configure with the
180
     `--with-gmp' configure option.  See also `--with-gmp-lib' and
181
     `--with-gmp-include'.  Alternatively, if a GMP source distribution
182
     is found in a subdirectory of your GCC sources named `gmp', it
183
     will be built together with GCC.
184
 
185
MPFR Library version 2.4.2 (or later)
186
     Necessary to build GCC.  It can be downloaded from
187
     `http://www.mpfr.org/'.  The `--with-mpfr' configure option should
188
     be used if your MPFR Library is not installed in your default
189
     library search path.  See also `--with-mpfr-lib' and
190
     `--with-mpfr-include'.  Alternatively, if a MPFR source
191
     distribution is found in a subdirectory of your GCC sources named
192
     `mpfr', it will be built together with GCC.
193
 
194
MPC Library version 0.8.1 (or later)
195
     Necessary to build GCC.  It can be downloaded from
196
     `http://www.multiprecision.org/'.  The `--with-mpc' configure
197
     option should be used if your MPC Library is not installed in your
198
     default library search path.  See also `--with-mpc-lib' and
199
     `--with-mpc-include'.  Alternatively, if an MPC source
200
     distribution is found in a subdirectory of your GCC sources named
201
     `mpc', it will be built together with GCC.
202
 
203
Parma Polyhedra Library (PPL) version 0.10
204
     Necessary to build GCC with the Graphite loop optimizations.  It
205
     can be downloaded from `http://www.cs.unipr.it/ppl/Download/'.
206
 
207
     The `--with-ppl' configure option should be used if PPL is not
208
     installed in your default library search path.
209
 
210
CLooG-PPL version 0.15
211
     Necessary to build GCC with the Graphite loop optimizations.  It
212
     can be downloaded from `ftp://gcc.gnu.org/pub/gcc/infrastructure/'.
213
     The code in `cloog-ppl-0.15.tar.gz' comes from a branch of CLooG
214
     available from `http://repo.or.cz/w/cloog-ppl.git'.  CLooG-PPL
215
     should be configured with `--with-ppl'.
216
 
217
     The `--with-cloog' configure option should be used if CLooG is not
218
     installed in your default library search path.
219
 
220
`jar', or InfoZIP (`zip' and `unzip')
221
     Necessary to build libgcj, the GCJ runtime.
222
 
223
libelf version 0.8.12 (or later)
224
     Necessary to build link-time optimization (LTO) support.  It can be
225
     downloaded from
226
     `http://www.mr511.de/software/libelf-0.8.12.tar.gz', though it is
227
     commonly available in several systems.  The versions in IRIX 5 and
228
     6 don't work since they lack `gelf.h'.  The version in Solaris 2
229
     does work.
230
 
231
     The `--with-libelf' configure option should be used if libelf is
232
     not installed in your default library search patch.
233
 
234
 
235
Tools/packages necessary for modifying GCC
236
==========================================
237
 
238
autoconf version 2.64
239
GNU m4 version 1.4.6 (or later)
240
     Necessary when modifying `configure.ac', `aclocal.m4', etc.  to
241
     regenerate `configure' and `config.in' files.
242
 
243
automake version 1.11.1
244
     Necessary when modifying a `Makefile.am' file to regenerate its
245
     associated `Makefile.in'.
246
 
247
     Much of GCC does not use automake, so directly edit the
248
     `Makefile.in' file.  Specifically this applies to the `gcc',
249
     `intl', `libcpp', `libiberty', `libobjc' directories as well as
250
     any of their subdirectories.
251
 
252
     For directories that use automake, GCC requires the latest release
253
     in the 1.11 series, which is currently 1.11.1.  When regenerating
254
     a directory to a newer version, please update all the directories
255
     using an older 1.11 to the latest released version.
256
 
257
gettext version 0.14.5 (or later)
258
     Needed to regenerate `gcc.pot'.
259
 
260
gperf version 2.7.2 (or later)
261
     Necessary when modifying `gperf' input files, e.g.
262
     `gcc/cp/cfns.gperf' to regenerate its associated header file, e.g.
263
     `gcc/cp/cfns.h'.
264
 
265
DejaGnu 1.4.4
266
Expect
267
Tcl
268
     Necessary to run the GCC testsuite; see the section on testing for
269
     details.
270
 
271
autogen version 5.5.4 (or later) and
272
guile version 1.4.1 (or later)
273
     Necessary to regenerate `fixinc/fixincl.x' from
274
     `fixinc/inclhack.def' and `fixinc/*.tpl'.
275
 
276
     Necessary to run `make check' for `fixinc'.
277
 
278
     Necessary to regenerate the top level `Makefile.in' file from
279
     `Makefile.tpl' and `Makefile.def'.
280
 
281
Flex version 2.5.4 (or later)
282
     Necessary when modifying `*.l' files.
283
 
284
     Necessary to build GCC during development because the generated
285
     output files are not included in the SVN repository.  They are
286
     included in releases.
287
 
288
Texinfo version 4.7 (or later)
289
     Necessary for running `makeinfo' when modifying `*.texi' files to
290
     test your changes.
291
 
292
     Necessary for running `make dvi' or `make pdf' to create printable
293
     documentation in DVI or PDF format.  Texinfo version 4.8 or later
294
     is required for `make pdf'.
295
 
296
     Necessary to build GCC documentation during development because the
297
     generated output files are not included in the SVN repository.
298
     They are included in releases.
299
 
300
TeX (any working version)
301
     Necessary for running `texi2dvi' and `texi2pdf', which are used
302
     when running `make dvi' or `make pdf' to create DVI or PDF files,
303
     respectively.
304
 
305
SVN (any version)
306
SSH (any version)
307
     Necessary to access the SVN repository.  Public releases and weekly
308
     snapshots of the development sources are also available via FTP.
309
 
310
Perl version 5.6.1 (or later)
311
     Necessary when regenerating `Makefile' dependencies in libiberty.
312
     Necessary when regenerating `libiberty/functions.texi'.  Necessary
313
     when generating manpages from Texinfo manuals.  Necessary when
314
     targetting Darwin, building libstdc++, and not using
315
     `--disable-symvers'.  Used by various scripts to generate some
316
     files included in SVN (mainly Unicode-related and rarely changing)
317
     from source tables.
318
 
319
GNU diffutils version 2.7 (or later)
320
     Useful when submitting patches for the GCC source code.
321
 
322
patch version 2.5.4 (or later)
323
     Necessary when applying patches, created with `diff', to one's own
324
     sources.
325
 
326
ecj1
327
gjavah
328
     If you wish to modify `.java' files in libjava, you will need to
329
     configure with `--enable-java-maintainer-mode', and you will need
330
     to have executables named `ecj1' and `gjavah' in your path.  The
331
     `ecj1' executable should run the Eclipse Java compiler via the
332
     GCC-specific entry point.  You can download a suitable jar from
333
     `ftp://sourceware.org/pub/java/', or by running the script
334
     `contrib/download_ecj'.
335
 
336
antlr.jar version 2.7.1 (or later)
337
antlr binary
338
     If you wish to build the `gjdoc' binary in libjava, you will need
339
     to have an `antlr.jar' library available. The library is searched
340
     in system locations but can be configured with `--with-antlr-jar='
341
     instead.  When configuring with `--enable-java-maintainer-mode',
342
     you will need to have one of the executables named `cantlr',
343
     `runantlr' or `antlr' in your path.
344
 
345
 
346

347
File: gccinstall.info,  Node: Downloading the source,  Next: Configuration,  Prev: Prerequisites,  Up: Installing GCC
348
 
349
3 Downloading GCC
350
*****************
351
 
352
   GCC is distributed via SVN and FTP tarballs compressed with `gzip' or
353
`bzip2'.  It is possible to download a full distribution or specific
354
components.
355
 
356
   Please refer to the releases web page for information on how to
357
obtain GCC.
358
 
359
   The full distribution includes the C, C++, Objective-C, Fortran,
360
Java, and Ada (in the case of GCC 3.1 and later) compilers.  The full
361
distribution also includes runtime libraries for C++, Objective-C,
362
Fortran, and Java.  In GCC 3.0 and later versions, the GNU compiler
363
testsuites are also included in the full distribution.
364
 
365
   If you choose to download specific components, you must download the
366
core GCC distribution plus any language specific distributions you wish
367
to use.  The core distribution includes the C language front end as
368
well as the shared components.  Each language has a tarball which
369
includes the language front end as well as the language runtime (when
370
appropriate).
371
 
372
   Unpack the core distribution as well as any language specific
373
distributions in the same directory.
374
 
375
   If you also intend to build binutils (either to upgrade an existing
376
installation or for use in place of the corresponding tools of your
377
OS), unpack the binutils distribution either in the same directory or a
378
separate one.  In the latter case, add symbolic links to any components
379
of the binutils you intend to build alongside the compiler (`bfd',
380
`binutils', `gas', `gprof', `ld', `opcodes', ...) to the directory
381
containing the GCC sources.
382
 
383
   Likewise the GMP, MPFR and MPC libraries can be automatically built
384
together with GCC.  Unpack the GMP, MPFR and/or MPC source
385
distributions in the directory containing the GCC sources and rename
386
their directories to `gmp', `mpfr' and `mpc', respectively (or use
387
symbolic links with the same name).
388
 
389

390
File: gccinstall.info,  Node: Configuration,  Next: Building,  Prev: Downloading the source,  Up: Installing GCC
391
 
392
4 Installing GCC: Configuration
393
*******************************
394
 
395
   Like most GNU software, GCC must be configured before it can be
396
built.  This document describes the recommended configuration procedure
397
for both native and cross targets.
398
 
399
   We use SRCDIR to refer to the toplevel source directory for GCC; we
400
use OBJDIR to refer to the toplevel build/object directory.
401
 
402
   If you obtained the sources via SVN, SRCDIR must refer to the top
403
`gcc' directory, the one where the `MAINTAINERS' file can be found, and
404
not its `gcc' subdirectory, otherwise the build will fail.
405
 
406
   If either SRCDIR or OBJDIR is located on an automounted NFS file
407
system, the shell's built-in `pwd' command will return temporary
408
pathnames.  Using these can lead to various sorts of build problems.
409
To avoid this issue, set the `PWDCMD' environment variable to an
410
automounter-aware `pwd' command, e.g., `pawd' or `amq -w', during the
411
configuration and build phases.
412
 
413
   First, we *highly* recommend that GCC be built into a separate
414
directory from the sources which does *not* reside within the source
415
tree.  This is how we generally build GCC; building where SRCDIR ==
416
OBJDIR should still work, but doesn't get extensive testing; building
417
where OBJDIR is a subdirectory of SRCDIR is unsupported.
418
 
419
   If you have previously built GCC in the same directory for a
420
different target machine, do `make distclean' to delete all files that
421
might be invalid.  One of the files this deletes is `Makefile'; if
422
`make distclean' complains that `Makefile' does not exist or issues a
423
message like "don't know how to make distclean" it probably means that
424
the directory is already suitably clean.  However, with the recommended
425
method of building in a separate OBJDIR, you should simply use a
426
different OBJDIR for each target.
427
 
428
   Second, when configuring a native system, either `cc' or `gcc' must
429
be in your path or you must set `CC' in your environment before running
430
configure.  Otherwise the configuration scripts may fail.
431
 
432
   To configure GCC:
433
 
434
        % mkdir OBJDIR
435
        % cd OBJDIR
436
        % SRCDIR/configure [OPTIONS] [TARGET]
437
 
438
Distributor options
439
===================
440
 
441
If you will be distributing binary versions of GCC, with modifications
442
to the source code, you should use the options described in this
443
section to make clear that your version contains modifications.
444
 
445
`--with-pkgversion=VERSION'
446
     Specify a string that identifies your package.  You may wish to
447
     include a build number or build date.  This version string will be
448
     included in the output of `gcc --version'.  This suffix does not
449
     replace the default version string, only the `GCC' part.
450
 
451
     The default value is `GCC'.
452
 
453
`--with-bugurl=URL'
454
     Specify the URL that users should visit if they wish to report a
455
     bug.  You are of course welcome to forward bugs reported to you to
456
     the FSF, if you determine that they are not bugs in your
457
     modifications.
458
 
459
     The default value refers to the FSF's GCC bug tracker.
460
 
461
 
462
Target specification
463
====================
464
 
465
   * GCC has code to correctly determine the correct value for TARGET
466
     for nearly all native systems.  Therefore, we highly recommend you
467
     do not provide a configure target when configuring a native
468
     compiler.
469
 
470
   * TARGET must be specified as `--target=TARGET' when configuring a
471
     cross compiler; examples of valid targets would be m68k-elf,
472
     sh-elf, etc.
473
 
474
   * Specifying just TARGET instead of `--target=TARGET' implies that
475
     the host defaults to TARGET.
476
 
477
Options specification
478
=====================
479
 
480
Use OPTIONS to override several configure time options for GCC.  A list
481
of supported OPTIONS follows; `configure --help' may list other
482
options, but those not listed below may not work and should not
483
normally be used.
484
 
485
   Note that each `--enable' option has a corresponding `--disable'
486
option and that each `--with' option has a corresponding `--without'
487
option.
488
 
489
`--prefix=DIRNAME'
490
     Specify the toplevel installation directory.  This is the
491
     recommended way to install the tools into a directory other than
492
     the default.  The toplevel installation directory defaults to
493
     `/usr/local'.
494
 
495
     We *highly* recommend against DIRNAME being the same or a
496
     subdirectory of OBJDIR or vice versa.  If specifying a directory
497
     beneath a user's home directory tree, some shells will not expand
498
     DIRNAME correctly if it contains the `~' metacharacter; use
499
     `$HOME' instead.
500
 
501
     The following standard `autoconf' options are supported.  Normally
502
     you should not need to use these options.
503
    `--exec-prefix=DIRNAME'
504
          Specify the toplevel installation directory for
505
          architecture-dependent files.  The default is `PREFIX'.
506
 
507
    `--bindir=DIRNAME'
508
          Specify the installation directory for the executables called
509
          by users (such as `gcc' and `g++').  The default is
510
          `EXEC-PREFIX/bin'.
511
 
512
    `--libdir=DIRNAME'
513
          Specify the installation directory for object code libraries
514
          and internal data files of GCC.  The default is
515
          `EXEC-PREFIX/lib'.
516
 
517
    `--libexecdir=DIRNAME'
518
          Specify the installation directory for internal executables
519
          of GCC.  The default is `EXEC-PREFIX/libexec'.
520
 
521
    `--with-slibdir=DIRNAME'
522
          Specify the installation directory for the shared libgcc
523
          library.  The default is `LIBDIR'.
524
 
525
    `--datarootdir=DIRNAME'
526
          Specify the root of the directory tree for read-only
527
          architecture-independent data files referenced by GCC.  The
528
          default is `PREFIX/share'.
529
 
530
    `--infodir=DIRNAME'
531
          Specify the installation directory for documentation in info
532
          format.  The default is `DATAROOTDIR/info'.
533
 
534
    `--datadir=DIRNAME'
535
          Specify the installation directory for some
536
          architecture-independent data files referenced by GCC.  The
537
          default is `DATAROOTDIR'.
538
 
539
    `--docdir=DIRNAME'
540
          Specify the installation directory for documentation files
541
          (other than Info) for GCC.  The default is `DATAROOTDIR/doc'.
542
 
543
    `--htmldir=DIRNAME'
544
          Specify the installation directory for HTML documentation
545
          files.  The default is `DOCDIR'.
546
 
547
    `--pdfdir=DIRNAME'
548
          Specify the installation directory for PDF documentation
549
          files.  The default is `DOCDIR'.
550
 
551
    `--mandir=DIRNAME'
552
          Specify the installation directory for manual pages.  The
553
          default is `DATAROOTDIR/man'.  (Note that the manual pages
554
          are only extracts from the full GCC manuals, which are
555
          provided in Texinfo format.  The manpages are derived by an
556
          automatic conversion process from parts of the full manual.)
557
 
558
    `--with-gxx-include-dir=DIRNAME'
559
          Specify the installation directory for G++ header files.  The
560
          default depends on other configuration options, and differs
561
          between cross and native configurations.
562
 
563
 
564
`--program-prefix=PREFIX'
565
     GCC supports some transformations of the names of its programs when
566
     installing them.  This option prepends PREFIX to the names of
567
     programs to install in BINDIR (see above).  For example, specifying
568
     `--program-prefix=foo-' would result in `gcc' being installed as
569
     `/usr/local/bin/foo-gcc'.
570
 
571
`--program-suffix=SUFFIX'
572
     Appends SUFFIX to the names of programs to install in BINDIR (see
573
     above).  For example, specifying `--program-suffix=-3.1' would
574
     result in `gcc' being installed as `/usr/local/bin/gcc-3.1'.
575
 
576
`--program-transform-name=PATTERN'
577
     Applies the `sed' script PATTERN to be applied to the names of
578
     programs to install in BINDIR (see above).  PATTERN has to consist
579
     of one or more basic `sed' editing commands, separated by
580
     semicolons.  For example, if you want the `gcc' program name to be
581
     transformed to the installed program `/usr/local/bin/myowngcc' and
582
     the `g++' program name to be transformed to
583
     `/usr/local/bin/gspecial++' without changing other program names,
584
     you could use the pattern
585
     `--program-transform-name='s/^gcc$/myowngcc/; s/^g++$/gspecial++/''
586
     to achieve this effect.
587
 
588
     All three options can be combined and used together, resulting in
589
     more complex conversion patterns.  As a basic rule, PREFIX (and
590
     SUFFIX) are prepended (appended) before further transformations
591
     can happen with a special transformation script PATTERN.
592
 
593
     As currently implemented, this option only takes effect for native
594
     builds; cross compiler binaries' names are not transformed even
595
     when a transformation is explicitly asked for by one of these
596
     options.
597
 
598
     For native builds, some of the installed programs are also
599
     installed with the target alias in front of their name, as in
600
     `i686-pc-linux-gnu-gcc'.  All of the above transformations happen
601
     before the target alias is prepended to the name--so, specifying
602
     `--program-prefix=foo-' and `program-suffix=-3.1', the resulting
603
     binary would be installed as
604
     `/usr/local/bin/i686-pc-linux-gnu-foo-gcc-3.1'.
605
 
606
     As a last shortcoming, none of the installed Ada programs are
607
     transformed yet, which will be fixed in some time.
608
 
609
`--with-local-prefix=DIRNAME'
610
     Specify the installation directory for local include files.  The
611
     default is `/usr/local'.  Specify this option if you want the
612
     compiler to search directory `DIRNAME/include' for locally
613
     installed header files _instead_ of `/usr/local/include'.
614
 
615
     You should specify `--with-local-prefix' *only* if your site has a
616
     different convention (not `/usr/local') for where to put
617
     site-specific files.
618
 
619
     The default value for `--with-local-prefix' is `/usr/local'
620
     regardless of the value of `--prefix'.  Specifying `--prefix' has
621
     no effect on which directory GCC searches for local header files.
622
     This may seem counterintuitive, but actually it is logical.
623
 
624
     The purpose of `--prefix' is to specify where to _install GCC_.
625
     The local header files in `/usr/local/include'--if you put any in
626
     that directory--are not part of GCC.  They are part of other
627
     programs--perhaps many others.  (GCC installs its own header files
628
     in another directory which is based on the `--prefix' value.)
629
 
630
     Both the local-prefix include directory and the GCC-prefix include
631
     directory are part of GCC's "system include" directories.
632
     Although these two directories are not fixed, they need to be
633
     searched in the proper order for the correct processing of the
634
     include_next directive.  The local-prefix include directory is
635
     searched before the GCC-prefix include directory.  Another
636
     characteristic of system include directories is that pedantic
637
     warnings are turned off for headers in these directories.
638
 
639
     Some autoconf macros add `-I DIRECTORY' options to the compiler
640
     command line, to ensure that directories containing installed
641
     packages' headers are searched.  When DIRECTORY is one of GCC's
642
     system include directories, GCC will ignore the option so that
643
     system directories continue to be processed in the correct order.
644
     This may result in a search order different from what was
645
     specified but the directory will still be searched.
646
 
647
     GCC automatically searches for ordinary libraries using
648
     `GCC_EXEC_PREFIX'.  Thus, when the same installation prefix is
649
     used for both GCC and packages, GCC will automatically search for
650
     both headers and libraries.  This provides a configuration that is
651
     easy to use.  GCC behaves in a manner similar to that when it is
652
     installed as a system compiler in `/usr'.
653
 
654
     Sites that need to install multiple versions of GCC may not want to
655
     use the above simple configuration.  It is possible to use the
656
     `--program-prefix', `--program-suffix' and
657
     `--program-transform-name' options to install multiple versions
658
     into a single directory, but it may be simpler to use different
659
     prefixes and the `--with-local-prefix' option to specify the
660
     location of the site-specific files for each version.  It will
661
     then be necessary for users to specify explicitly the location of
662
     local site libraries (e.g., with `LIBRARY_PATH').
663
 
664
     The same value can be used for both `--with-local-prefix' and
665
     `--prefix' provided it is not `/usr'.  This can be used to avoid
666
     the default search of `/usr/local/include'.
667
 
668
     *Do not* specify `/usr' as the `--with-local-prefix'!  The
669
     directory you use for `--with-local-prefix' *must not* contain any
670
     of the system's standard header files.  If it did contain them,
671
     certain programs would be miscompiled (including GNU Emacs, on
672
     certain targets), because this would override and nullify the
673
     header file corrections made by the `fixincludes' script.
674
 
675
     Indications are that people who use this option use it based on
676
     mistaken ideas of what it is for.  People use it as if it
677
     specified where to install part of GCC.  Perhaps they make this
678
     assumption because installing GCC creates the directory.
679
 
680
`--enable-shared[=PACKAGE[,...]]'
681
     Build shared versions of libraries, if shared libraries are
682
     supported on the target platform.  Unlike GCC 2.95.x and earlier,
683
     shared libraries are enabled by default on all platforms that
684
     support shared libraries.
685
 
686
     If a list of packages is given as an argument, build shared
687
     libraries only for the listed packages.  For other packages, only
688
     static libraries will be built.  Package names currently
689
     recognized in the GCC tree are `libgcc' (also known as `gcc'),
690
     `libstdc++' (not `libstdc++-v3'), `libffi', `zlib', `boehm-gc',
691
     `ada', `libada', `libjava' and `libobjc'.  Note `libiberty' does
692
     not support shared libraries at all.
693
 
694
     Use `--disable-shared' to build only static libraries.  Note that
695
     `--disable-shared' does not accept a list of package names as
696
     argument, only `--enable-shared' does.
697
 
698
`--with-gnu-as'
699
     Specify that the compiler should assume that the assembler it
700
     finds is the GNU assembler.  However, this does not modify the
701
     rules to find an assembler and will result in confusion if the
702
     assembler found is not actually the GNU assembler.  (Confusion may
703
     also result if the compiler finds the GNU assembler but has not
704
     been configured with `--with-gnu-as'.)  If you have more than one
705
     assembler installed on your system, you may want to use this
706
     option in connection with `--with-as=PATHNAME' or
707
     `--with-build-time-tools=PATHNAME'.
708
 
709
     The following systems are the only ones where it makes a difference
710
     whether you use the GNU assembler.  On any other system,
711
     `--with-gnu-as' has no effect.
712
 
713
        * `hppa1.0-ANY-ANY'
714
 
715
        * `hppa1.1-ANY-ANY'
716
 
717
        * `sparc-sun-solaris2.ANY'
718
 
719
        * `sparc64-ANY-solaris2.ANY'
720
 
721
`--with-as=PATHNAME'
722
     Specify that the compiler should use the assembler pointed to by
723
     PATHNAME, rather than the one found by the standard rules to find
724
     an assembler, which are:
725
        * Unless GCC is being built with a cross compiler, check the
726
          `LIBEXEC/gcc/TARGET/VERSION' directory.  LIBEXEC defaults to
727
          `EXEC-PREFIX/libexec'; EXEC-PREFIX defaults to PREFIX, which
728
          defaults to `/usr/local' unless overridden by the
729
          `--prefix=PATHNAME' switch described above.  TARGET is the
730
          target system triple, such as `sparc-sun-solaris2.7', and
731
          VERSION denotes the GCC version, such as 3.0.
732
 
733
        * If the target system is the same that you are building on,
734
          check operating system specific directories (e.g.
735
          `/usr/ccs/bin' on Sun Solaris 2).
736
 
737
        * Check in the `PATH' for a tool whose name is prefixed by the
738
          target system triple.
739
 
740
        * Check in the `PATH' for a tool whose name is not prefixed by
741
          the target system triple, if the host and target system
742
          triple are the same (in other words, we use a host tool if it
743
          can be used for the target as well).
744
 
745
     You may want to use `--with-as' if no assembler is installed in
746
     the directories listed above, or if you have multiple assemblers
747
     installed and want to choose one that is not found by the above
748
     rules.
749
 
750
`--with-gnu-ld'
751
     Same as `--with-gnu-as' but for the linker.
752
 
753
`--with-ld=PATHNAME'
754
     Same as `--with-as' but for the linker.
755
 
756
`--with-stabs'
757
     Specify that stabs debugging information should be used instead of
758
     whatever format the host normally uses.  Normally GCC uses the
759
     same debug format as the host system.
760
 
761
     On MIPS based systems and on Alphas, you must specify whether you
762
     want GCC to create the normal ECOFF debugging format, or to use
763
     BSD-style stabs passed through the ECOFF symbol table.  The normal
764
     ECOFF debug format cannot fully handle languages other than C.
765
     BSD stabs format can handle other languages, but it only works
766
     with the GNU debugger GDB.
767
 
768
     Normally, GCC uses the ECOFF debugging format by default; if you
769
     prefer BSD stabs, specify `--with-stabs' when you configure GCC.
770
 
771
     No matter which default you choose when you configure GCC, the user
772
     can use the `-gcoff' and `-gstabs+' options to specify explicitly
773
     the debug format for a particular compilation.
774
 
775
     `--with-stabs' is meaningful on the ISC system on the 386, also, if
776
     `--with-gas' is used.  It selects use of stabs debugging
777
     information embedded in COFF output.  This kind of debugging
778
     information supports C++ well; ordinary COFF debugging information
779
     does not.
780
 
781
     `--with-stabs' is also meaningful on 386 systems running SVR4.  It
782
     selects use of stabs debugging information embedded in ELF output.
783
     The C++ compiler currently (2.6.0) does not support the DWARF
784
     debugging information normally used on 386 SVR4 platforms; stabs
785
     provide a workable alternative.  This requires gas and gdb, as the
786
     normal SVR4 tools can not generate or interpret stabs.
787
 
788
`--disable-multilib'
789
     Specify that multiple target libraries to support different target
790
     variants, calling conventions, etc. should not be built.  The
791
     default is to build a predefined set of them.
792
 
793
     Some targets provide finer-grained control over which multilibs
794
     are built (e.g., `--disable-softfloat'):
795
    `arc-*-elf*'
796
          biendian.
797
 
798
    `arm-*-*'
799
          fpu, 26bit, underscore, interwork, biendian, nofmult.
800
 
801
    `m68*-*-*'
802
          softfloat, m68881, m68000, m68020.
803
 
804
    `mips*-*-*'
805
          single-float, biendian, softfloat.
806
 
807
    `powerpc*-*-*, rs6000*-*-*'
808
          aix64, pthread, softfloat, powercpu, powerpccpu, powerpcos,
809
          biendian, sysv, aix.
810
 
811
 
812
`--with-multilib-list=LIST'
813
`--without-multilib-list'
814
     Specify what multilibs to build.  Currently only implemented for
815
     sh*-*-*.
816
 
817
     LIST is a comma separated list of CPU names.  These must be of the
818
     form `sh*' or `m*' (in which case they match the compiler option
819
     for that processor).  The list should not contain any endian
820
     options - these are handled by `--with-endian'.
821
 
822
     If LIST is empty, then there will be no multilibs for extra
823
     processors.  The multilib for the secondary endian remains enabled.
824
 
825
     As a special case, if an entry in the list starts with a `!'
826
     (exclamation point), then it is added to the list of excluded
827
     multilibs.  Entries of this sort should be compatible with
828
     `MULTILIB_EXCLUDES' (once the leading `!' has been stripped).
829
 
830
     If `--with-multilib-list' is not given, then a default set of
831
     multilibs is selected based on the value of `--target'.  This is
832
     usually the complete set of libraries, but some targets imply a
833
     more specialized subset.
834
 
835
     Example 1: to configure a compiler for SH4A only, but supporting
836
     both endians, with little endian being the default:
837
          --with-cpu=sh4a --with-endian=little,big --with-multilib-list=
838
 
839
     Example 2: to configure a compiler for both SH4A and SH4AL-DSP,
840
     but with only little endian SH4AL:
841
          --with-cpu=sh4a --with-endian=little,big --with-multilib-list=sh4al,!mb/m4al
842
 
843
`--with-endian=ENDIANS'
844
     Specify what endians to use.  Currently only implemented for
845
     sh*-*-*.
846
 
847
     ENDIANS may be one of the following:
848
    `big'
849
          Use big endian exclusively.
850
 
851
    `little'
852
          Use little endian exclusively.
853
 
854
    `big,little'
855
          Use big endian by default.  Provide a multilib for little
856
          endian.
857
 
858
    `little,big'
859
          Use little endian by default.  Provide a multilib for big
860
          endian.
861
 
862
`--enable-threads'
863
     Specify that the target supports threads.  This affects the
864
     Objective-C compiler and runtime library, and exception handling
865
     for other languages like C++ and Java.  On some systems, this is
866
     the default.
867
 
868
     In general, the best (and, in many cases, the only known) threading
869
     model available will be configured for use.  Beware that on some
870
     systems, GCC has not been taught what threading models are
871
     generally available for the system.  In this case,
872
     `--enable-threads' is an alias for `--enable-threads=single'.
873
 
874
`--disable-threads'
875
     Specify that threading support should be disabled for the system.
876
     This is an alias for `--enable-threads=single'.
877
 
878
`--enable-threads=LIB'
879
     Specify that LIB is the thread support library.  This affects the
880
     Objective-C compiler and runtime library, and exception handling
881
     for other languages like C++ and Java.  The possibilities for LIB
882
     are:
883
 
884
    `aix'
885
          AIX thread support.
886
 
887
    `dce'
888
          DCE thread support.
889
 
890
    `gnat'
891
          Ada tasking support.  For non-Ada programs, this setting is
892
          equivalent to `single'.  When used in conjunction with the
893
          Ada run time, it causes GCC to use the same thread primitives
894
          as Ada uses.  This option is necessary when using both Ada
895
          and the back end exception handling, which is the default for
896
          most Ada targets.
897
 
898
    `mach'
899
          Generic MACH thread support, known to work on NeXTSTEP.
900
          (Please note that the file needed to support this
901
          configuration, `gthr-mach.h', is missing and thus this
902
          setting will cause a known bootstrap failure.)
903
 
904
    `no'
905
          This is an alias for `single'.
906
 
907
    `posix'
908
          Generic POSIX/Unix98 thread support.
909
 
910
    `posix95'
911
          Generic POSIX/Unix95 thread support.
912
 
913
    `rtems'
914
          RTEMS thread support.
915
 
916
    `single'
917
          Disable thread support, should work for all platforms.
918
 
919
    `solaris'
920
          Sun Solaris 2/Unix International thread support.  Only use
921
          this if you really need to use this legacy API instead of the
922
          default, `posix'.
923
 
924
    `vxworks'
925
          VxWorks thread support.
926
 
927
    `win32'
928
          Microsoft Win32 API thread support.
929
 
930
    `nks'
931
          Novell Kernel Services thread support.
932
 
933
`--enable-tls'
934
     Specify that the target supports TLS (Thread Local Storage).
935
     Usually configure can correctly determine if TLS is supported.  In
936
     cases where it guesses incorrectly, TLS can be explicitly enabled
937
     or disabled with `--enable-tls' or `--disable-tls'.  This can
938
     happen if the assembler supports TLS but the C library does not,
939
     or if the assumptions made by the configure test are incorrect.
940
 
941
`--disable-tls'
942
     Specify that the target does not support TLS.  This is an alias
943
     for `--enable-tls=no'.
944
 
945
`--with-cpu=CPU'
946
`--with-cpu-32=CPU'
947
`--with-cpu-64=CPU'
948
     Specify which cpu variant the compiler should generate code for by
949
     default.  CPU will be used as the default value of the `-mcpu='
950
     switch.  This option is only supported on some targets, including
951
     ARM, i386, M68k, PowerPC, and SPARC.  The `--with-cpu-32' and
952
     `--with-cpu-64' options specify separate default CPUs for 32-bit
953
     and 64-bit modes; these options are only supported for i386,
954
     x86-64 and PowerPC.
955
 
956
`--with-schedule=CPU'
957
`--with-arch=CPU'
958
`--with-arch-32=CPU'
959
`--with-arch-64=CPU'
960
`--with-tune=CPU'
961
`--with-tune-32=CPU'
962
`--with-tune-64=CPU'
963
`--with-abi=ABI'
964
`--with-fpu=TYPE'
965
`--with-float=TYPE'
966
     These configure options provide default values for the
967
     `-mschedule=', `-march=', `-mtune=', `-mabi=', and `-mfpu='
968
     options and for `-mhard-float' or `-msoft-float'.  As with
969
     `--with-cpu', which switches will be accepted and acceptable values
970
     of the arguments depend on the target.
971
 
972
`--with-mode=MODE'
973
     Specify if the compiler should default to `-marm' or `-mthumb'.
974
     This option is only supported on ARM targets.
975
 
976
`--with-fpmath=sse'
977
     Specify if the compiler should default to `-msse2' and
978
     `-mfpmath=sse'.  This option is only supported on i386 and x86-64
979
     targets.
980
 
981
`--with-divide=TYPE'
982
     Specify how the compiler should generate code for checking for
983
     division by zero.  This option is only supported on the MIPS
984
     target.  The possibilities for TYPE are:
985
    `traps'
986
          Division by zero checks use conditional traps (this is the
987
          default on systems that support conditional traps).
988
 
989
    `breaks'
990
          Division by zero checks use the break instruction.
991
 
992
`--with-llsc'
993
     On MIPS targets, make `-mllsc' the default when no `-mno-lsc'
994
     option is passed.  This is the default for Linux-based targets, as
995
     the kernel will emulate them if the ISA does not provide them.
996
 
997
`--without-llsc'
998
     On MIPS targets, make `-mno-llsc' the default when no `-mllsc'
999
     option is passed.
1000
 
1001
`--with-synci'
1002
     On MIPS targets, make `-msynci' the default when no `-mno-synci'
1003
     option is passed.
1004
 
1005
`--without-synci'
1006
     On MIPS targets, make `-mno-synci' the default when no `-msynci'
1007
     option is passed.  This is the default.
1008
 
1009
`--with-mips-plt'
1010
     On MIPS targets, make use of copy relocations and PLTs.  These
1011
     features are extensions to the traditional SVR4-based MIPS ABIs
1012
     and require support from GNU binutils and the runtime C library.
1013
 
1014
`--enable-__cxa_atexit'
1015
     Define if you want to use __cxa_atexit, rather than atexit, to
1016
     register C++ destructors for local statics and global objects.
1017
     This is essential for fully standards-compliant handling of
1018
     destructors, but requires __cxa_atexit in libc.  This option is
1019
     currently only available on systems with GNU libc.  When enabled,
1020
     this will cause `-fuse-cxa-atexit' to be passed by default.
1021
 
1022
`--enable-target-optspace'
1023
     Specify that target libraries should be optimized for code space
1024
     instead of code speed.  This is the default for the m32r platform.
1025
 
1026
`--with-cpp-install-dir=DIRNAME'
1027
     Specify that the user visible `cpp' program should be installed in
1028
     `PREFIX/DIRNAME/cpp', in addition to BINDIR.
1029
 
1030
`--enable-comdat'
1031
     Enable COMDAT group support.  This is primarily used to override
1032
     the automatically detected value.
1033
 
1034
`--enable-initfini-array'
1035
     Force the use of sections `.init_array' and `.fini_array' (instead
1036
     of `.init' and `.fini') for constructors and destructors.  Option
1037
     `--disable-initfini-array' has the opposite effect.  If neither
1038
     option is specified, the configure script will try to guess
1039
     whether the `.init_array' and `.fini_array' sections are supported
1040
     and, if they are, use them.
1041
 
1042
`--enable-build-with-cxx'
1043
     Build GCC using a C++ compiler rather than a C compiler.  This is
1044
     an experimental option which may become the default in a later
1045
     release.
1046
 
1047
`--enable-maintainer-mode'
1048
     The build rules that regenerate the Autoconf and Automake output
1049
     files as well as the GCC master message catalog `gcc.pot' are
1050
     normally disabled.  This is because it can only be rebuilt if the
1051
     complete source tree is present.  If you have changed the sources
1052
     and want to rebuild the catalog, configuring with
1053
     `--enable-maintainer-mode' will enable this.  Note that you need a
1054
     recent version of the `gettext' tools to do so.
1055
 
1056
`--disable-bootstrap'
1057
     For a native build, the default configuration is to perform a
1058
     3-stage bootstrap of the compiler when `make' is invoked, testing
1059
     that GCC can compile itself correctly.  If you want to disable
1060
     this process, you can configure with `--disable-bootstrap'.
1061
 
1062
`--enable-bootstrap'
1063
     In special cases, you may want to perform a 3-stage build even if
1064
     the target and host triplets are different.  This is possible when
1065
     the host can run code compiled for the target (e.g. host is
1066
     i686-linux, target is i486-linux).  Starting from GCC 4.2, to do
1067
     this you have to configure explicitly with `--enable-bootstrap'.
1068
 
1069
`--enable-generated-files-in-srcdir'
1070
     Neither the .c and .h files that are generated from Bison and flex
1071
     nor the info manuals and man pages that are built from the .texi
1072
     files are present in the SVN development tree.  When building GCC
1073
     from that development tree, or from one of our snapshots, those
1074
     generated files are placed in your build directory, which allows
1075
     for the source to be in a readonly directory.
1076
 
1077
     If you configure with `--enable-generated-files-in-srcdir' then
1078
     those generated files will go into the source directory.  This is
1079
     mainly intended for generating release or prerelease tarballs of
1080
     the GCC sources, since it is not a requirement that the users of
1081
     source releases to have flex, Bison, or makeinfo.
1082
 
1083
`--enable-version-specific-runtime-libs'
1084
     Specify that runtime libraries should be installed in the compiler
1085
     specific subdirectory (`LIBDIR/gcc') rather than the usual places.
1086
     In addition, `libstdc++''s include files will be installed into
1087
     `LIBDIR' unless you overruled it by using
1088
     `--with-gxx-include-dir=DIRNAME'.  Using this option is
1089
     particularly useful if you intend to use several versions of GCC in
1090
     parallel.  This is currently supported by `libgfortran',
1091
     `libjava', `libmudflap', `libstdc++', and `libobjc'.
1092
 
1093
`--enable-languages=LANG1,LANG2,...'
1094
     Specify that only a particular subset of compilers and their
1095
     runtime libraries should be built.  For a list of valid values for
1096
     LANGN you can issue the following command in the `gcc' directory
1097
     of your GCC source tree:
1098
          grep language= */config-lang.in
1099
     Currently, you can use any of the following: `all', `ada', `c',
1100
     `c++', `fortran', `java', `objc', `obj-c++'.  Building the Ada
1101
     compiler has special requirements, see below.  If you do not pass
1102
     this flag, or specify the option `all', then all default languages
1103
     available in the `gcc' sub-tree will be configured.  Ada and
1104
     Objective-C++ are not default languages; the rest are.
1105
     Re-defining `LANGUAGES' when calling `make' *does not* work
1106
     anymore, as those language sub-directories might not have been
1107
     configured!
1108
 
1109
`--enable-stage1-languages=LANG1,LANG2,...'
1110
     Specify that a particular subset of compilers and their runtime
1111
     libraries should be built with the system C compiler during stage
1112
     1 of the bootstrap process, rather than only in later stages with
1113
     the bootstrapped C compiler.  The list of valid values is the same
1114
     as for `--enable-languages', and the option `all' will select all
1115
     of the languages enabled by `--enable-languages'.  This option is
1116
     primarily useful for GCC development; for instance, when a
1117
     development version of the compiler cannot bootstrap due to
1118
     compiler bugs, or when one is debugging front ends other than the
1119
     C front end.  When this option is used, one can then build the
1120
     target libraries for the specified languages with the stage-1
1121
     compiler by using `make stage1-bubble all-target', or run the
1122
     testsuite on the stage-1 compiler for the specified languages
1123
     using `make stage1-start check-gcc'.
1124
 
1125
`--disable-libada'
1126
     Specify that the run-time libraries and tools used by GNAT should
1127
     not be built.  This can be useful for debugging, or for
1128
     compatibility with previous Ada build procedures, when it was
1129
     required to explicitly do a `make -C gcc gnatlib_and_tools'.
1130
 
1131
`--disable-libssp'
1132
     Specify that the run-time libraries for stack smashing protection
1133
     should not be built.
1134
 
1135
`--disable-libgomp'
1136
     Specify that the run-time libraries used by GOMP should not be
1137
     built.
1138
 
1139
`--with-dwarf2'
1140
     Specify that the compiler should use DWARF 2 debugging information
1141
     as the default.
1142
 
1143
`--enable-targets=all'
1144
`--enable-targets=TARGET_LIST'
1145
     Some GCC targets, e.g. powerpc64-linux, build bi-arch compilers.
1146
     These are compilers that are able to generate either 64-bit or
1147
     32-bit code.  Typically, the corresponding 32-bit target, e.g.
1148
     powerpc-linux for powerpc64-linux, only generates 32-bit code.
1149
     This option enables the 32-bit target to be a bi-arch compiler,
1150
     which is useful when you want a bi-arch compiler that defaults to
1151
     32-bit, and you are building a bi-arch or multi-arch binutils in a
1152
     combined tree.  On mips-linux, this will build a tri-arch compiler
1153
     (ABI o32/n32/64), defaulted to o32.  Currently, this option only
1154
     affects sparc-linux, powerpc-linux, x86-linux and mips-linux.
1155
 
1156
`--enable-secureplt'
1157
     This option enables `-msecure-plt' by default for powerpc-linux.
1158
     *Note RS/6000 and PowerPC Options: (gcc)RS/6000 and PowerPC
1159
     Options,
1160
 
1161
`--enable-cld'
1162
     This option enables `-mcld' by default for 32-bit x86 targets.
1163
     *Note i386 and x86-64 Options: (gcc)i386 and x86-64 Options,
1164
 
1165
`--enable-win32-registry'
1166
`--enable-win32-registry=KEY'
1167
`--disable-win32-registry'
1168
     The `--enable-win32-registry' option enables Microsoft
1169
     Windows-hosted GCC to look up installations paths in the registry
1170
     using the following key:
1171
 
1172
          `HKEY_LOCAL_MACHINE\SOFTWARE\Free Software Foundation\KEY'
1173
 
1174
     KEY defaults to GCC version number, and can be overridden by the
1175
     `--enable-win32-registry=KEY' option.  Vendors and distributors
1176
     who use custom installers are encouraged to provide a different
1177
     key, perhaps one comprised of vendor name and GCC version number,
1178
     to avoid conflict with existing installations.  This feature is
1179
     enabled by default, and can be disabled by
1180
     `--disable-win32-registry' option.  This option has no effect on
1181
     the other hosts.
1182
 
1183
`--nfp'
1184
     Specify that the machine does not have a floating point unit.  This
1185
     option only applies to `m68k-sun-sunosN'.  On any other system,
1186
     `--nfp' has no effect.
1187
 
1188
`--enable-werror'
1189
`--disable-werror'
1190
`--enable-werror=yes'
1191
`--enable-werror=no'
1192
     When you specify this option, it controls whether certain files in
1193
     the compiler are built with `-Werror' in bootstrap stage2 and
1194
     later.  If you don't specify it, `-Werror' is turned on for the
1195
     main development trunk.  However it defaults to off for release
1196
     branches and final releases.  The specific files which get
1197
     `-Werror' are controlled by the Makefiles.
1198
 
1199
`--enable-checking'
1200
`--enable-checking=LIST'
1201
     When you specify this option, the compiler is built to perform
1202
     internal consistency checks of the requested complexity.  This
1203
     does not change the generated code, but adds error checking within
1204
     the compiler.  This will slow down the compiler and may only work
1205
     properly if you are building the compiler with GCC.  This is `yes'
1206
     by default when building from SVN or snapshots, but `release' for
1207
     releases.  The default for building the stage1 compiler is `yes'.
1208
     More control over the checks may be had by specifying LIST.  The
1209
     categories of checks available are `yes' (most common checks
1210
     `assert,misc,tree,gc,rtlflag,runtime'), `no' (no checks at all),
1211
     `all' (all but `valgrind'), `release' (cheapest checks
1212
     `assert,runtime') or `none' (same as `no').  Individual checks can
1213
     be enabled with these flags `assert', `df', `fold', `gc', `gcac'
1214
     `misc', `rtl', `rtlflag', `runtime', `tree', and `valgrind'.
1215
 
1216
     The `valgrind' check requires the external `valgrind' simulator,
1217
     available from `http://valgrind.org/'.  The `df', `rtl', `gcac'
1218
     and `valgrind' checks are very expensive.  To disable all
1219
     checking, `--disable-checking' or `--enable-checking=none' must be
1220
     explicitly requested.  Disabling assertions will make the compiler
1221
     and runtime slightly faster but increase the risk of undetected
1222
     internal errors causing wrong code to be generated.
1223
 
1224
`--disable-stage1-checking'
1225
`--enable-stage1-checking'
1226
`--enable-stage1-checking=LIST'
1227
     If no `--enable-checking' option is specified the stage1 compiler
1228
     will be built with `yes' checking enabled, otherwise the stage1
1229
     checking flags are the same as specified by `--enable-checking'.
1230
     To build the stage1 compiler with different checking options use
1231
     `--enable-stage1-checking'.  The list of checking options is the
1232
     same as for `--enable-checking'.  If your system is too slow or
1233
     too small to bootstrap a released compiler with checking for
1234
     stage1 enabled, you can use `--disable-stage1-checking' to disable
1235
     checking for the stage1 compiler.
1236
 
1237
`--enable-coverage'
1238
`--enable-coverage=LEVEL'
1239
     With this option, the compiler is built to collect self coverage
1240
     information, every time it is run.  This is for internal
1241
     development purposes, and only works when the compiler is being
1242
     built with gcc.  The LEVEL argument controls whether the compiler
1243
     is built optimized or not, values are `opt' and `noopt'.  For
1244
     coverage analysis you want to disable optimization, for
1245
     performance analysis you want to enable optimization.  When
1246
     coverage is enabled, the default level is without optimization.
1247
 
1248
`--enable-gather-detailed-mem-stats'
1249
     When this option is specified more detailed information on memory
1250
     allocation is gathered.  This information is printed when using
1251
     `-fmem-report'.
1252
 
1253
`--with-gc'
1254
`--with-gc=CHOICE'
1255
     With this option you can specify the garbage collector
1256
     implementation used during the compilation process.  CHOICE can be
1257
     one of `page' and `zone', where `page' is the default.
1258
 
1259
`--enable-nls'
1260
`--disable-nls'
1261
     The `--enable-nls' option enables Native Language Support (NLS),
1262
     which lets GCC output diagnostics in languages other than American
1263
     English.  Native Language Support is enabled by default if not
1264
     doing a canadian cross build.  The `--disable-nls' option disables
1265
     NLS.
1266
 
1267
`--with-included-gettext'
1268
     If NLS is enabled, the `--with-included-gettext' option causes the
1269
     build procedure to prefer its copy of GNU `gettext'.
1270
 
1271
`--with-catgets'
1272
     If NLS is enabled, and if the host lacks `gettext' but has the
1273
     inferior `catgets' interface, the GCC build procedure normally
1274
     ignores `catgets' and instead uses GCC's copy of the GNU `gettext'
1275
     library.  The `--with-catgets' option causes the build procedure
1276
     to use the host's `catgets' in this situation.
1277
 
1278
`--with-libiconv-prefix=DIR'
1279
     Search for libiconv header files in `DIR/include' and libiconv
1280
     library files in `DIR/lib'.
1281
 
1282
`--enable-obsolete'
1283
     Enable configuration for an obsoleted system.  If you attempt to
1284
     configure GCC for a system (build, host, or target) which has been
1285
     obsoleted, and you do not specify this flag, configure will halt
1286
     with an error message.
1287
 
1288
     All support for systems which have been obsoleted in one release
1289
     of GCC is removed entirely in the next major release, unless
1290
     someone steps forward to maintain the port.
1291
 
1292
`--enable-decimal-float'
1293
`--enable-decimal-float=yes'
1294
`--enable-decimal-float=no'
1295
`--enable-decimal-float=bid'
1296
`--enable-decimal-float=dpd'
1297
`--disable-decimal-float'
1298
     Enable (or disable) support for the C decimal floating point
1299
     extension that is in the IEEE 754-2008 standard.  This is enabled
1300
     by default only on PowerPC, i386, and x86_64 GNU/Linux systems.
1301
     Other systems may also support it, but require the user to
1302
     specifically enable it.  You can optionally control which decimal
1303
     floating point format is used (either `bid' or `dpd').  The `bid'
1304
     (binary integer decimal) format is default on i386 and x86_64
1305
     systems, and the `dpd' (densely packed decimal) format is default
1306
     on PowerPC systems.
1307
 
1308
`--enable-fixed-point'
1309
`--disable-fixed-point'
1310
     Enable (or disable) support for C fixed-point arithmetic.  This
1311
     option is enabled by default for some targets (such as MIPS) which
1312
     have hardware-support for fixed-point operations.  On other
1313
     targets, you may enable this option manually.
1314
 
1315
`--with-long-double-128'
1316
     Specify if `long double' type should be 128-bit by default on
1317
     selected GNU/Linux architectures.  If using
1318
     `--without-long-double-128', `long double' will be by default
1319
     64-bit, the same as `double' type.  When neither of these
1320
     configure options are used, the default will be 128-bit `long
1321
     double' when built against GNU C Library 2.4 and later, 64-bit
1322
     `long double' otherwise.
1323
 
1324
`--with-gmp=PATHNAME'
1325
`--with-gmp-include=PATHNAME'
1326
`--with-gmp-lib=PATHNAME'
1327
`--with-mpfr=PATHNAME'
1328
`--with-mpfr-include=PATHNAME'
1329
`--with-mpfr-lib=PATHNAME'
1330
`--with-mpc=PATHNAME'
1331
`--with-mpc-include=PATHNAME'
1332
`--with-mpc-lib=PATHNAME'
1333
     If you do not have GMP (the GNU Multiple Precision library), the
1334
     MPFR library and/or the MPC library installed in a standard
1335
     location and you want to build GCC, you can explicitly specify the
1336
     directory where they are installed (`--with-gmp=GMPINSTALLDIR',
1337
     `--with-mpfr=MPFRINSTALLDIR', `--with-mpc=MPCINSTALLDIR').  The
1338
     `--with-gmp=GMPINSTALLDIR' option is shorthand for
1339
     `--with-gmp-lib=GMPINSTALLDIR/lib' and
1340
     `--with-gmp-include=GMPINSTALLDIR/include'.  Likewise the
1341
     `--with-mpfr=MPFRINSTALLDIR' option is shorthand for
1342
     `--with-mpfr-lib=MPFRINSTALLDIR/lib' and
1343
     `--with-mpfr-include=MPFRINSTALLDIR/include', also the
1344
     `--with-mpc=MPCINSTALLDIR' option is shorthand for
1345
     `--with-mpc-lib=MPCINSTALLDIR/lib' and
1346
     `--with-mpc-include=MPCINSTALLDIR/include'.  If these shorthand
1347
     assumptions are not correct, you can use the explicit include and
1348
     lib options directly.
1349
 
1350
`--with-ppl=PATHNAME'
1351
`--with-ppl-include=PATHNAME'
1352
`--with-ppl-lib=PATHNAME'
1353
`--with-cloog=PATHNAME'
1354
`--with-cloog-include=PATHNAME'
1355
`--with-cloog-lib=PATHNAME'
1356
     If you do not have PPL (the Parma Polyhedra Library) and the CLooG
1357
     libraries installed in a standard location and you want to build
1358
     GCC, you can explicitly specify the directory where they are
1359
     installed (`--with-ppl=PPLINSTALLDIR',
1360
     `--with-cloog=CLOOGINSTALLDIR'). The `--with-ppl=PPLINSTALLDIR'
1361
     option is shorthand for `--with-ppl-lib=PPLINSTALLDIR/lib' and
1362
     `--with-ppl-include=PPLINSTALLDIR/include'.  Likewise the
1363
     `--with-cloog=CLOOGINSTALLDIR' option is shorthand for
1364
     `--with-cloog-lib=CLOOGINSTALLDIR/lib' and
1365
     `--with-cloog-include=CLOOGINSTALLDIR/include'.  If these
1366
     shorthand assumptions are not correct, you can use the explicit
1367
     include and lib options directly.
1368
 
1369
`--with-host-libstdcxx=LINKER-ARGS'
1370
     If you are linking with a static copy of PPL, you can use this
1371
     option to specify how the linker should find the standard C++
1372
     library used internally by PPL.  Typical values of LINKER-ARGS
1373
     might be `-lstdc++' or `-Wl,-Bstatic,-lstdc++,-Bdynamic -lm'.  If
1374
     you are linking with a shared copy of PPL, you probably do not
1375
     need this option; shared library dependencies will cause the
1376
     linker to search for the standard C++ library automatically.
1377
 
1378
`--with-stage1-ldflags=FLAGS'
1379
     This option may be used to set linker flags to be used when linking
1380
     stage 1 of GCC.  These are also used when linking GCC if
1381
     configured with `--disable-bootstrap'.  By default no special
1382
     flags are used.
1383
 
1384
`--with-stage1-libs=LIBS'
1385
     This option may be used to set libraries to be used when linking
1386
     stage 1 of GCC.  These are also used when linking GCC if
1387
     configured with `--disable-bootstrap'.  The default is the
1388
     argument to `--with-host-libstdcxx', if specified.
1389
 
1390
`--with-boot-ldflags=FLAGS'
1391
     This option may be used to set linker flags to be used when linking
1392
     stage 2 and later when bootstrapping GCC.  By default no special
1393
     flags are used.
1394
 
1395
`--with-boot-libs=LIBS'
1396
     This option may be used to set libraries to be used when linking
1397
     stage 2 and later when bootstrapping GCC.  The default is the
1398
     argument to `--with-host-libstdcxx', if specified.
1399
 
1400
`--with-debug-prefix-map=MAP'
1401
     Convert source directory names using `-fdebug-prefix-map' when
1402
     building runtime libraries.  `MAP' is a space-separated list of
1403
     maps of the form `OLD=NEW'.
1404
 
1405
`--enable-linker-build-id'
1406
     Tells GCC to pass `--build-id' option to the linker for all final
1407
     links (links performed without the `-r' or `--relocatable'
1408
     option), if the linker supports it.  If you specify
1409
     `--enable-linker-build-id', but your linker does not support
1410
     `--build-id' option, a warning is issued and the
1411
     `--enable-linker-build-id' option is ignored.  The default is off.
1412
 
1413
`--enable-gnu-unique-object'
1414
`--disable-gnu-unique-object'
1415
     Tells GCC to use the gnu_unique_object relocation for C++ template
1416
     static data members and inline function local statics.  Enabled by
1417
     default for a native toolchain with an assembler that accepts it
1418
     and GLIBC 2.11 or above, otherwise disabled.
1419
 
1420
`--enable-lto'
1421
     Enable support for link-time optimization (LTO).  This is enabled
1422
     by default if a working libelf implementation is found (see
1423
     `--with-libelf').
1424
 
1425
`--with-libelf=PATHNAME'
1426
`--with-libelf-include=PATHNAME'
1427
`--with-libelf-lib=PATHNAME'
1428
     If you do not have libelf installed in a standard location and you
1429
     want to enable support for link-time optimization (LTO), you can
1430
     explicitly specify the directory where libelf is installed
1431
     (`--with-libelf=LIBELFINSTALLDIR').  The
1432
     `--with-libelf=LIBELFINSTALLDIR' option is shorthand for
1433
     `--with-libelf-include=LIBELFINSTALLDIR/include'
1434
     `--with-libelf-lib=LIBELFINSTALLDIR/lib'.
1435
 
1436
`--enable-gold'
1437
     Enable support for using `gold' as the linker.  If gold support is
1438
     enabled together with `--enable-lto', an additional directory
1439
     `lto-plugin' will be built.  The code in this directory is a
1440
     plugin for gold that allows the link-time optimizer to extract
1441
     object files with LTO information out of library archives.  See
1442
     `-flto' and `-fwhopr' for details.
1443
 
1444
Cross-Compiler-Specific Options
1445
-------------------------------
1446
 
1447
The following options only apply to building cross compilers.
1448
 
1449
`--with-sysroot'
1450
`--with-sysroot=DIR'
1451
     Tells GCC to consider DIR as the root of a tree that contains a
1452
     (subset of) the root filesystem of the target operating system.
1453
     Target system headers, libraries and run-time object files will be
1454
     searched in there.  More specifically, this acts as if
1455
     `--sysroot=DIR' was added to the default options of the built
1456
     compiler.  The specified directory is not copied into the install
1457
     tree, unlike the options `--with-headers' and `--with-libs' that
1458
     this option obsoletes.  The default value, in case
1459
     `--with-sysroot' is not given an argument, is
1460
     `${gcc_tooldir}/sys-root'.  If the specified directory is a
1461
     subdirectory of `${exec_prefix}', then it will be found relative to
1462
     the GCC binaries if the installation tree is moved.
1463
 
1464
     This option affects the system root for the compiler used to build
1465
     target libraries (which runs on the build system) and the compiler
1466
     newly installed with `make install'; it does not affect the
1467
     compiler which is used to build GCC itself.
1468
 
1469
`--with-build-sysroot'
1470
`--with-build-sysroot=DIR'
1471
     Tells GCC to consider DIR as the system root (see
1472
     `--with-sysroot') while building target libraries, instead of the
1473
     directory specified with `--with-sysroot'.  This option is only
1474
     useful when you are already using `--with-sysroot'.  You can use
1475
     `--with-build-sysroot' when you are configuring with `--prefix'
1476
     set to a directory that is different from the one in which you are
1477
     installing GCC and your target libraries.
1478
 
1479
     This option affects the system root for the compiler used to build
1480
     target libraries (which runs on the build system); it does not
1481
     affect the compiler which is used to build GCC itself.
1482
 
1483
`--with-headers'
1484
`--with-headers=DIR'
1485
     Deprecated in favor of `--with-sysroot'.  Specifies that target
1486
     headers are available when building a cross compiler.  The DIR
1487
     argument specifies a directory which has the target include files.
1488
     These include files will be copied into the `gcc' install
1489
     directory.  _This option with the DIR argument is required_ when
1490
     building a cross compiler, if `PREFIX/TARGET/sys-include' doesn't
1491
     pre-exist.  If `PREFIX/TARGET/sys-include' does pre-exist, the DIR
1492
     argument may be omitted.  `fixincludes' will be run on these files
1493
     to make them compatible with GCC.
1494
 
1495
`--without-headers'
1496
     Tells GCC not use any target headers from a libc when building a
1497
     cross compiler.  When crossing to GNU/Linux, you need the headers
1498
     so GCC can build the exception handling for libgcc.
1499
 
1500
`--with-libs'
1501
`--with-libs="DIR1 DIR2 ... DIRN"'
1502
     Deprecated in favor of `--with-sysroot'.  Specifies a list of
1503
     directories which contain the target runtime libraries.  These
1504
     libraries will be copied into the `gcc' install directory.  If the
1505
     directory list is omitted, this option has no effect.
1506
 
1507
`--with-newlib'
1508
     Specifies that `newlib' is being used as the target C library.
1509
     This causes `__eprintf' to be omitted from `libgcc.a' on the
1510
     assumption that it will be provided by `newlib'.
1511
 
1512
`--with-build-time-tools=DIR'
1513
     Specifies where to find the set of target tools (assembler,
1514
     linker, etc.)  that will be used while building GCC itself.  This
1515
     option can be useful if the directory layouts are different
1516
     between the system you are building GCC on, and the system where
1517
     you will deploy it.
1518
 
1519
     For example, on an `ia64-hp-hpux' system, you may have the GNU
1520
     assembler and linker in `/usr/bin', and the native tools in a
1521
     different path, and build a toolchain that expects to find the
1522
     native tools in `/usr/bin'.
1523
 
1524
     When you use this option, you should ensure that DIR includes
1525
     `ar', `as', `ld', `nm', `ranlib' and `strip' if necessary, and
1526
     possibly `objdump'.  Otherwise, GCC may use an inconsistent set of
1527
     tools.
1528
 
1529
Java-Specific Options
1530
---------------------
1531
 
1532
The following option applies to the build of the Java front end.
1533
 
1534
`--disable-libgcj'
1535
     Specify that the run-time libraries used by GCJ should not be
1536
     built.  This is useful in case you intend to use GCJ with some
1537
     other run-time, or you're going to install it separately, or it
1538
     just happens not to build on your particular machine.  In general,
1539
     if the Java front end is enabled, the GCJ libraries will be
1540
     enabled too, unless they're known to not work on the target
1541
     platform.  If GCJ is enabled but `libgcj' isn't built, you may
1542
     need to port it; in this case, before modifying the top-level
1543
     `configure.in' so that `libgcj' is enabled by default on this
1544
     platform, you may use `--enable-libgcj' to override the default.
1545
 
1546
 
1547
   The following options apply to building `libgcj'.
1548
 
1549
General Options
1550
...............
1551
 
1552
`--enable-java-maintainer-mode'
1553
     By default the `libjava' build will not attempt to compile the
1554
     `.java' source files to `.class'.  Instead, it will use the
1555
     `.class' files from the source tree.  If you use this option you
1556
     must have executables named `ecj1' and `gjavah' in your path for
1557
     use by the build.  You must use this option if you intend to
1558
     modify any `.java' files in `libjava'.
1559
 
1560
`--with-java-home=DIRNAME'
1561
     This `libjava' option overrides the default value of the
1562
     `java.home' system property.  It is also used to set
1563
     `sun.boot.class.path' to `DIRNAME/lib/rt.jar'.  By default
1564
     `java.home' is set to `PREFIX' and `sun.boot.class.path' to
1565
     `DATADIR/java/libgcj-VERSION.jar'.
1566
 
1567
`--with-ecj-jar=FILENAME'
1568
     This option can be used to specify the location of an external jar
1569
     file containing the Eclipse Java compiler.  A specially modified
1570
     version of this compiler is used by `gcj' to parse `.java' source
1571
     files.  If this option is given, the `libjava' build will create
1572
     and install an `ecj1' executable which uses this jar file at
1573
     runtime.
1574
 
1575
     If this option is not given, but an `ecj.jar' file is found in the
1576
     topmost source tree at configure time, then the `libgcj' build
1577
     will create and install `ecj1', and will also install the
1578
     discovered `ecj.jar' into a suitable place in the install tree.
1579
 
1580
     If `ecj1' is not installed, then the user will have to supply one
1581
     on his path in order for `gcj' to properly parse `.java' source
1582
     files.  A suitable jar is available from
1583
     `ftp://sourceware.org/pub/java/'.
1584
 
1585
`--disable-getenv-properties'
1586
     Don't set system properties from `GCJ_PROPERTIES'.
1587
 
1588
`--enable-hash-synchronization'
1589
     Use a global hash table for monitor locks.  Ordinarily, `libgcj''s
1590
     `configure' script automatically makes the correct choice for this
1591
     option for your platform.  Only use this if you know you need the
1592
     library to be configured differently.
1593
 
1594
`--enable-interpreter'
1595
     Enable the Java interpreter.  The interpreter is automatically
1596
     enabled by default on all platforms that support it.  This option
1597
     is really only useful if you want to disable the interpreter
1598
     (using `--disable-interpreter').
1599
 
1600
`--disable-java-net'
1601
     Disable java.net.  This disables the native part of java.net only,
1602
     using non-functional stubs for native method implementations.
1603
 
1604
`--disable-jvmpi'
1605
     Disable JVMPI support.
1606
 
1607
`--disable-libgcj-bc'
1608
     Disable BC ABI compilation of certain parts of libgcj.  By default,
1609
     some portions of libgcj are compiled with `-findirect-dispatch'
1610
     and `-fno-indirect-classes', allowing them to be overridden at
1611
     run-time.
1612
 
1613
     If `--disable-libgcj-bc' is specified, libgcj is built without
1614
     these options.  This allows the compile-time linker to resolve
1615
     dependencies when statically linking to libgcj.  However it makes
1616
     it impossible to override the affected portions of libgcj at
1617
     run-time.
1618
 
1619
`--enable-reduced-reflection'
1620
     Build most of libgcj with `-freduced-reflection'.  This reduces
1621
     the size of libgcj at the expense of not being able to do accurate
1622
     reflection on the classes it contains.  This option is safe if you
1623
     know that code using libgcj will never use reflection on the
1624
     standard runtime classes in libgcj (including using serialization,
1625
     RMI or CORBA).
1626
 
1627
`--with-ecos'
1628
     Enable runtime eCos target support.
1629
 
1630
`--without-libffi'
1631
     Don't use `libffi'.  This will disable the interpreter and JNI
1632
     support as well, as these require `libffi' to work.
1633
 
1634
`--enable-libgcj-debug'
1635
     Enable runtime debugging code.
1636
 
1637
`--enable-libgcj-multifile'
1638
     If specified, causes all `.java' source files to be compiled into
1639
     `.class' files in one invocation of `gcj'.  This can speed up
1640
     build time, but is more resource-intensive.  If this option is
1641
     unspecified or disabled, `gcj' is invoked once for each `.java'
1642
     file to compile into a `.class' file.
1643
 
1644
`--with-libiconv-prefix=DIR'
1645
     Search for libiconv in `DIR/include' and `DIR/lib'.
1646
 
1647
`--enable-sjlj-exceptions'
1648
     Force use of the `setjmp'/`longjmp'-based scheme for exceptions.
1649
     `configure' ordinarily picks the correct value based on the
1650
     platform.  Only use this option if you are sure you need a
1651
     different setting.
1652
 
1653
`--with-system-zlib'
1654
     Use installed `zlib' rather than that included with GCC.
1655
 
1656
`--with-win32-nlsapi=ansi, unicows or unicode'
1657
     Indicates how MinGW `libgcj' translates between UNICODE characters
1658
     and the Win32 API.
1659
 
1660
`--enable-java-home'
1661
     If enabled, this creates a JPackage compatible SDK environment
1662
     during install.  Note that if -enable-java-home is used,
1663
     -with-arch-directory=ARCH must also be specified.
1664
 
1665
`--with-arch-directory=ARCH'
1666
     Specifies the name to use for the `jre/lib/ARCH' directory in the
1667
     SDK environment created when -enable-java-home is passed. Typical
1668
     names for this directory include i386, amd64, ia64, etc.
1669
 
1670
`--with-os-directory=DIR'
1671
     Specifies the OS directory for the SDK include directory. This is
1672
     set to auto detect, and is typically 'linux'.
1673
 
1674
`--with-origin-name=NAME'
1675
     Specifies the JPackage origin name. This defaults to the 'gcj' in
1676
     java-1.5.0-gcj.
1677
 
1678
`--with-arch-suffix=SUFFIX'
1679
     Specifies the suffix for the sdk directory. Defaults to the empty
1680
     string.  Examples include '.x86_64' in
1681
     'java-1.5.0-gcj-1.5.0.0.x86_64'.
1682
 
1683
`--with-jvm-root-dir=DIR'
1684
     Specifies where to install the SDK. Default is $(prefix)/lib/jvm.
1685
 
1686
`--with-jvm-jar-dir=DIR'
1687
     Specifies where to install jars. Default is
1688
     $(prefix)/lib/jvm-exports.
1689
 
1690
`--with-python-dir=DIR'
1691
     Specifies where to install the Python modules used for
1692
     aot-compile. DIR should not include the prefix used in
1693
     installation. For example, if the Python modules are to be
1694
     installed in /usr/lib/python2.5/site-packages, then
1695
     -with-python-dir=/lib/python2.5/site-packages should be passed. If
1696
     this is not specified, then the Python modules are installed in
1697
     $(prefix)/share/python.
1698
 
1699
`--enable-aot-compile-rpm'
1700
     Adds aot-compile-rpm to the list of installed scripts.
1701
 
1702
`--enable-browser-plugin'
1703
     Build the gcjwebplugin web browser plugin.
1704
 
1705
    `ansi'
1706
          Use the single-byte `char' and the Win32 A functions natively,
1707
          translating to and from UNICODE when using these functions.
1708
          If unspecified, this is the default.
1709
 
1710
    `unicows'
1711
          Use the `WCHAR' and Win32 W functions natively.  Adds
1712
          `-lunicows' to `libgcj.spec' to link with `libunicows'.
1713
          `unicows.dll' needs to be deployed on Microsoft Windows 9X
1714
          machines running built executables.  `libunicows.a', an
1715
          open-source import library around Microsoft's `unicows.dll',
1716
          is obtained from `http://libunicows.sourceforge.net/', which
1717
          also gives details on getting `unicows.dll' from Microsoft.
1718
 
1719
    `unicode'
1720
          Use the `WCHAR' and Win32 W functions natively.  Does _not_
1721
          add `-lunicows' to `libgcj.spec'.  The built executables will
1722
          only run on Microsoft Windows NT and above.
1723
 
1724
AWT-Specific Options
1725
....................
1726
 
1727
`--with-x'
1728
     Use the X Window System.
1729
 
1730
`--enable-java-awt=PEER(S)'
1731
     Specifies the AWT peer library or libraries to build alongside
1732
     `libgcj'.  If this option is unspecified or disabled, AWT will be
1733
     non-functional.  Current valid values are `gtk' and `xlib'.
1734
     Multiple libraries should be separated by a comma (i.e.
1735
     `--enable-java-awt=gtk,xlib').
1736
 
1737
`--enable-gtk-cairo'
1738
     Build the cairo Graphics2D implementation on GTK.
1739
 
1740
`--enable-java-gc=TYPE'
1741
     Choose garbage collector.  Defaults to `boehm' if unspecified.
1742
 
1743
`--disable-gtktest'
1744
     Do not try to compile and run a test GTK+ program.
1745
 
1746
`--disable-glibtest'
1747
     Do not try to compile and run a test GLIB program.
1748
 
1749
`--with-libart-prefix=PFX'
1750
     Prefix where libart is installed (optional).
1751
 
1752
`--with-libart-exec-prefix=PFX'
1753
     Exec prefix where libart is installed (optional).
1754
 
1755
`--disable-libarttest'
1756
     Do not try to compile and run a test libart program.
1757
 
1758
 
1759

1760
File: gccinstall.info,  Node: Building,  Next: Testing,  Prev: Configuration,  Up: Installing GCC
1761
 
1762
5 Building
1763
**********
1764
 
1765
   Now that GCC is configured, you are ready to build the compiler and
1766
runtime libraries.
1767
 
1768
   Some commands executed when making the compiler may fail (return a
1769
nonzero status) and be ignored by `make'.  These failures, which are
1770
often due to files that were not found, are expected, and can safely be
1771
ignored.
1772
 
1773
   It is normal to have compiler warnings when compiling certain files.
1774
Unless you are a GCC developer, you can generally ignore these warnings
1775
unless they cause compilation to fail.  Developers should attempt to fix
1776
any warnings encountered, however they can temporarily continue past
1777
warnings-as-errors by specifying the configure flag `--disable-werror'.
1778
 
1779
   On certain old systems, defining certain environment variables such
1780
as `CC' can interfere with the functioning of `make'.
1781
 
1782
   If you encounter seemingly strange errors when trying to build the
1783
compiler in a directory other than the source directory, it could be
1784
because you have previously configured the compiler in the source
1785
directory.  Make sure you have done all the necessary preparations.
1786
 
1787
   If you build GCC on a BSD system using a directory stored in an old
1788
System V file system, problems may occur in running `fixincludes' if the
1789
System V file system doesn't support symbolic links.  These problems
1790
result in a failure to fix the declaration of `size_t' in
1791
`sys/types.h'.  If you find that `size_t' is a signed type and that
1792
type mismatches occur, this could be the cause.
1793
 
1794
   The solution is not to use such a directory for building GCC.
1795
 
1796
   Similarly, when building from SVN or snapshots, or if you modify
1797
`*.l' files, you need the Flex lexical analyzer generator installed.
1798
If you do not modify `*.l' files, releases contain the Flex-generated
1799
files and you do not need Flex installed to build them.  There is still
1800
one Flex-based lexical analyzer (part of the build machinery, not of
1801
GCC itself) that is used even if you only build the C front end.
1802
 
1803
   When building from SVN or snapshots, or if you modify Texinfo
1804
documentation, you need version 4.7 or later of Texinfo installed if you
1805
want Info documentation to be regenerated.  Releases contain Info
1806
documentation pre-built for the unmodified documentation in the release.
1807
 
1808
5.1 Building a native compiler
1809
==============================
1810
 
1811
For a native build, the default configuration is to perform a 3-stage
1812
bootstrap of the compiler when `make' is invoked.  This will build the
1813
entire GCC system and ensure that it compiles itself correctly.  It can
1814
be disabled with the `--disable-bootstrap' parameter to `configure',
1815
but bootstrapping is suggested because the compiler will be tested more
1816
completely and could also have better performance.
1817
 
1818
   The bootstrapping process will complete the following steps:
1819
 
1820
   * Build tools necessary to build the compiler.
1821
 
1822
   * Perform a 3-stage bootstrap of the compiler.  This includes
1823
     building three times the target tools for use by the compiler such
1824
     as binutils (bfd, binutils, gas, gprof, ld, and opcodes) if they
1825
     have been individually linked or moved into the top level GCC
1826
     source tree before configuring.
1827
 
1828
   * Perform a comparison test of the stage2 and stage3 compilers.
1829
 
1830
   * Build runtime libraries using the stage3 compiler from the
1831
     previous step.
1832
 
1833
 
1834
   If you are short on disk space you might consider `make
1835
bootstrap-lean' instead.  The sequence of compilation is the same
1836
described above, but object files from the stage1 and stage2 of the
1837
3-stage bootstrap of the compiler are deleted as soon as they are no
1838
longer needed.
1839
 
1840
   If you wish to use non-default GCC flags when compiling the stage2
1841
and stage3 compilers, set `BOOT_CFLAGS' on the command line when doing
1842
`make'.  For example, if you want to save additional space during the
1843
bootstrap and in the final installation as well, you can build the
1844
compiler binaries without debugging information as in the following
1845
example.  This will save roughly 40% of disk space both for the
1846
bootstrap and the final installation.  (Libraries will still contain
1847
debugging information.)
1848
 
1849
          make BOOT_CFLAGS='-O' bootstrap
1850
 
1851
   You can place non-default optimization flags into `BOOT_CFLAGS'; they
1852
are less well tested here than the default of `-g -O2', but should
1853
still work.  In a few cases, you may find that you need to specify
1854
special flags such as `-msoft-float' here to complete the bootstrap; or,
1855
if the native compiler miscompiles the stage1 compiler, you may need to
1856
work around this, by choosing `BOOT_CFLAGS' to avoid the parts of the
1857
stage1 compiler that were miscompiled, or by using `make bootstrap4' to
1858
increase the number of stages of bootstrap.
1859
 
1860
   `BOOT_CFLAGS' does not apply to bootstrapped target libraries.
1861
Since these are always compiled with the compiler currently being
1862
bootstrapped, you can use `CFLAGS_FOR_TARGET' to modify their
1863
compilation flags, as for non-bootstrapped target libraries.  Again, if
1864
the native compiler miscompiles the stage1 compiler, you may need to
1865
work around this by avoiding non-working parts of the stage1 compiler.
1866
Use `STAGE1_TFLAGS' to this end.
1867
 
1868
   If you used the flag `--enable-languages=...' to restrict the
1869
compilers to be built, only those you've actually enabled will be
1870
built.  This will of course only build those runtime libraries, for
1871
which the particular compiler has been built.  Please note, that
1872
re-defining `LANGUAGES' when calling `make' *does not* work anymore!
1873
 
1874
   If the comparison of stage2 and stage3 fails, this normally indicates
1875
that the stage2 compiler has compiled GCC incorrectly, and is therefore
1876
a potentially serious bug which you should investigate and report.  (On
1877
a few systems, meaningful comparison of object files is impossible; they
1878
always appear "different".  If you encounter this problem, you will
1879
need to disable comparison in the `Makefile'.)
1880
 
1881
   If you do not want to bootstrap your compiler, you can configure with
1882
`--disable-bootstrap'.  In particular cases, you may want to bootstrap
1883
your compiler even if the target system is not the same as the one you
1884
are building on: for example, you could build a
1885
`powerpc-unknown-linux-gnu' toolchain on a
1886
`powerpc64-unknown-linux-gnu' host.  In this case, pass
1887
`--enable-bootstrap' to the configure script.
1888
 
1889
   `BUILD_CONFIG' can be used to bring in additional customization to
1890
the build.  It can be set to a whitespace-separated list of names.  For
1891
each such `NAME', top-level `config/`NAME'.mk' will be included by the
1892
top-level `Makefile', bringing in any settings it contains.  The
1893
default `BUILD_CONFIG' can be set using the configure option
1894
`--with-build-config=`NAME'...'.  Some examples of supported build
1895
configurations are:
1896
 
1897
`bootstrap-O1'
1898
     Removes any `-O'-started option from `BOOT_CFLAGS', and adds `-O1'
1899
     to it.  `BUILD_CONFIG=bootstrap-O1' is equivalent to
1900
     `BOOT_CFLAGS='-g -O1''.
1901
 
1902
`bootstrap-O3'
1903
     Analogous to `bootstrap-O1'.
1904
 
1905
`bootstrap-debug'
1906
     Verifies that the compiler generates the same executable code,
1907
     whether or not it is asked to emit debug information.  To this
1908
     end, this option builds stage2 host programs without debug
1909
     information, and uses `contrib/compare-debug' to compare them with
1910
     the stripped stage3 object files.  If `BOOT_CFLAGS' is overridden
1911
     so as to not enable debug information, stage2 will have it, and
1912
     stage3 won't.  This option is enabled by default when GCC
1913
     bootstrapping is enabled, if `strip' can turn object files
1914
     compiled with and without debug info into identical object files.
1915
     In addition to better test coverage, this option makes default
1916
     bootstraps faster and leaner.
1917
 
1918
`bootstrap-debug-big'
1919
     Rather than comparing stripped object files, as in
1920
     `bootstrap-debug', this option saves internal compiler dumps
1921
     during stage2 and stage3 and compares them as well, which helps
1922
     catch additional potential problems, but at a great cost in terms
1923
     of disk space.  It can be specified in addition to
1924
     `bootstrap-debug'.
1925
 
1926
`bootstrap-debug-lean'
1927
     This option saves disk space compared with `bootstrap-debug-big',
1928
     but at the expense of some recompilation.  Instead of saving the
1929
     dumps of stage2 and stage3 until the final compare, it uses
1930
     `-fcompare-debug' to generate, compare and remove the dumps during
1931
     stage3, repeating the compilation that already took place in
1932
     stage2, whose dumps were not saved.
1933
 
1934
`bootstrap-debug-lib'
1935
     This option tests executable code invariance over debug information
1936
     generation on target libraries, just like `bootstrap-debug-lean'
1937
     tests it on host programs.  It builds stage3 libraries with
1938
     `-fcompare-debug', and it can be used along with any of the
1939
     `bootstrap-debug' options above.
1940
 
1941
     There aren't `-lean' or `-big' counterparts to this option because
1942
     most libraries are only build in stage3, so bootstrap compares
1943
     would not get significant coverage.  Moreover, the few libraries
1944
     built in stage2 are used in stage3 host programs, so we wouldn't
1945
     want to compile stage2 libraries with different options for
1946
     comparison purposes.
1947
 
1948
`bootstrap-debug-ckovw'
1949
     Arranges for error messages to be issued if the compiler built on
1950
     any stage is run without the option `-fcompare-debug'.  This is
1951
     useful to verify the full `-fcompare-debug' testing coverage.  It
1952
     must be used along with `bootstrap-debug-lean' and
1953
     `bootstrap-debug-lib'.
1954
 
1955
`bootstrap-time'
1956
     Arranges for the run time of each program started by the GCC
1957
     driver, built in any stage, to be logged to `time.log', in the top
1958
     level of the build tree.
1959
 
1960
 
1961
5.2 Building a cross compiler
1962
=============================
1963
 
1964
When building a cross compiler, it is not generally possible to do a
1965
3-stage bootstrap of the compiler.  This makes for an interesting
1966
problem as parts of GCC can only be built with GCC.
1967
 
1968
   To build a cross compiler, we recommend first building and
1969
installing a native compiler.  You can then use the native GCC compiler
1970
to build the cross compiler.  The installed native compiler needs to be
1971
GCC version 2.95 or later.
1972
 
1973
   If the cross compiler is to be built with support for the Java
1974
programming language and the ability to compile .java source files is
1975
desired, the installed native compiler used to build the cross compiler
1976
needs to be the same GCC version as the cross compiler.  In addition
1977
the cross compiler needs to be configured with `--with-ecj-jar=...'.
1978
 
1979
   Assuming you have already installed a native copy of GCC and
1980
configured your cross compiler, issue the command `make', which
1981
performs the following steps:
1982
 
1983
   * Build host tools necessary to build the compiler.
1984
 
1985
   * Build target tools for use by the compiler such as binutils (bfd,
1986
     binutils, gas, gprof, ld, and opcodes) if they have been
1987
     individually linked or moved into the top level GCC source tree
1988
     before configuring.
1989
 
1990
   * Build the compiler (single stage only).
1991
 
1992
   * Build runtime libraries using the compiler from the previous step.
1993
 
1994
   Note that if an error occurs in any step the make process will exit.
1995
 
1996
   If you are not building GNU binutils in the same source tree as GCC,
1997
you will need a cross-assembler and cross-linker installed before
1998
configuring GCC.  Put them in the directory `PREFIX/TARGET/bin'.  Here
1999
is a table of the tools you should put in this directory:
2000
 
2001
`as'
2002
     This should be the cross-assembler.
2003
 
2004
`ld'
2005
     This should be the cross-linker.
2006
 
2007
`ar'
2008
     This should be the cross-archiver: a program which can manipulate
2009
     archive files (linker libraries) in the target machine's format.
2010
 
2011
`ranlib'
2012
     This should be a program to construct a symbol table in an archive
2013
     file.
2014
 
2015
   The installation of GCC will find these programs in that directory,
2016
and copy or link them to the proper place to for the cross-compiler to
2017
find them when run later.
2018
 
2019
   The easiest way to provide these files is to build the Binutils
2020
package.  Configure it with the same `--host' and `--target' options
2021
that you use for configuring GCC, then build and install them.  They
2022
install their executables automatically into the proper directory.
2023
Alas, they do not support all the targets that GCC supports.
2024
 
2025
   If you are not building a C library in the same source tree as GCC,
2026
you should also provide the target libraries and headers before
2027
configuring GCC, specifying the directories with `--with-sysroot' or
2028
`--with-headers' and `--with-libs'.  Many targets also require "start
2029
files" such as `crt0.o' and `crtn.o' which are linked into each
2030
executable.  There may be several alternatives for `crt0.o', for use
2031
with profiling or other compilation options.  Check your target's
2032
definition of `STARTFILE_SPEC' to find out what start files it uses.
2033
 
2034
5.3 Building in parallel
2035
========================
2036
 
2037
GNU Make 3.80 and above, which is necessary to build GCC, support
2038
building in parallel.  To activate this, you can use `make -j 2'
2039
instead of `make'.  You can also specify a bigger number, and in most
2040
cases using a value greater than the number of processors in your
2041
machine will result in fewer and shorter I/O latency hits, thus
2042
improving overall throughput; this is especially true for slow drives
2043
and network filesystems.
2044
 
2045
5.4 Building the Ada compiler
2046
=============================
2047
 
2048
In order to build GNAT, the Ada compiler, you need a working GNAT
2049
compiler (GCC version 3.4 or later).  This includes GNAT tools such as
2050
`gnatmake' and `gnatlink', since the Ada front end is written in Ada and
2051
uses some GNAT-specific extensions.
2052
 
2053
   In order to build a cross compiler, it is suggested to install the
2054
new compiler as native first, and then use it to build the cross
2055
compiler.
2056
 
2057
   `configure' does not test whether the GNAT installation works and
2058
has a sufficiently recent version; if too old a GNAT version is
2059
installed, the build will fail unless `--enable-languages' is used to
2060
disable building the Ada front end.
2061
 
2062
   `ADA_INCLUDE_PATH' and `ADA_OBJECT_PATH' environment variables must
2063
not be set when building the Ada compiler, the Ada tools, or the Ada
2064
runtime libraries. You can check that your build environment is clean
2065
by verifying that `gnatls -v' lists only one explicit path in each
2066
section.
2067
 
2068
5.5 Building with profile feedback
2069
==================================
2070
 
2071
It is possible to use profile feedback to optimize the compiler itself.
2072
This should result in a faster compiler binary.  Experiments done on
2073
x86 using gcc 3.3 showed approximately 7 percent speedup on compiling C
2074
programs.  To bootstrap the compiler with profile feedback, use `make
2075
profiledbootstrap'.
2076
 
2077
   When `make profiledbootstrap' is run, it will first build a `stage1'
2078
compiler.  This compiler is used to build a `stageprofile' compiler
2079
instrumented to collect execution counts of instruction and branch
2080
probabilities.  Then runtime libraries are compiled with profile
2081
collected.  Finally a `stagefeedback' compiler is built using the
2082
information collected.
2083
 
2084
   Unlike standard bootstrap, several additional restrictions apply.
2085
The compiler used to build `stage1' needs to support a 64-bit integral
2086
type.  It is recommended to only use GCC for this.  Also parallel make
2087
is currently not supported since collisions in profile collecting may
2088
occur.
2089
 
2090

2091
File: gccinstall.info,  Node: Testing,  Next: Final install,  Prev: Building,  Up: Installing GCC
2092
 
2093
6 Installing GCC: Testing
2094
*************************
2095
 
2096
   Before you install GCC, we encourage you to run the testsuites and to
2097
compare your results with results from a similar configuration that have
2098
been submitted to the gcc-testresults mailing list.  Some of these
2099
archived results are linked from the build status lists at
2100
`http://gcc.gnu.org/buildstat.html', although not everyone who reports
2101
a successful build runs the testsuites and submits the results.  This
2102
step is optional and may require you to download additional software,
2103
but it can give you confidence in your new GCC installation or point out
2104
problems before you install and start using your new GCC.
2105
 
2106
   First, you must have downloaded the testsuites.  These are part of
2107
the full distribution, but if you downloaded the "core" compiler plus
2108
any front ends, you must download the testsuites separately.
2109
 
2110
   Second, you must have the testing tools installed.  This includes
2111
DejaGnu, Tcl, and Expect; the DejaGnu site has links to these.
2112
 
2113
   If the directories where `runtest' and `expect' were installed are
2114
not in the `PATH', you may need to set the following environment
2115
variables appropriately, as in the following example (which assumes
2116
that DejaGnu has been installed under `/usr/local'):
2117
 
2118
          TCL_LIBRARY = /usr/local/share/tcl8.0
2119
          DEJAGNULIBS = /usr/local/share/dejagnu
2120
 
2121
   (On systems such as Cygwin, these paths are required to be actual
2122
paths, not mounts or links; presumably this is due to some lack of
2123
portability in the DejaGnu code.)
2124
 
2125
   Finally, you can run the testsuite (which may take a long time):
2126
          cd OBJDIR; make -k check
2127
 
2128
   This will test various components of GCC, such as compiler front
2129
ends and runtime libraries.  While running the testsuite, DejaGnu might
2130
emit some harmless messages resembling `WARNING: Couldn't find the
2131
global config file.' or `WARNING: Couldn't find tool init file' that
2132
can be ignored.
2133
 
2134
   If you are testing a cross-compiler, you may want to run the
2135
testsuite on a simulator as described at
2136
`http://gcc.gnu.org/simtest-howto.html'.
2137
 
2138
6.1 How can you run the testsuite on selected tests?
2139
====================================================
2140
 
2141
In order to run sets of tests selectively, there are targets `make
2142
check-gcc' and `make check-g++' in the `gcc' subdirectory of the object
2143
directory.  You can also just run `make check' in a subdirectory of the
2144
object directory.
2145
 
2146
   A more selective way to just run all `gcc' execute tests in the
2147
testsuite is to use
2148
 
2149
         make check-gcc RUNTESTFLAGS="execute.exp OTHER-OPTIONS"
2150
 
2151
   Likewise, in order to run only the `g++' "old-deja" tests in the
2152
testsuite with filenames matching `9805*', you would use
2153
 
2154
         make check-g++ RUNTESTFLAGS="old-deja.exp=9805* OTHER-OPTIONS"
2155
 
2156
   The `*.exp' files are located in the testsuite directories of the GCC
2157
source, the most important ones being `compile.exp', `execute.exp',
2158
`dg.exp' and `old-deja.exp'.  To get a list of the possible `*.exp'
2159
files, pipe the output of `make check' into a file and look at the
2160
`Running ...  .exp' lines.
2161
 
2162
6.2 Passing options and running multiple testsuites
2163
===================================================
2164
 
2165
You can pass multiple options to the testsuite using the
2166
`--target_board' option of DejaGNU, either passed as part of
2167
`RUNTESTFLAGS', or directly to `runtest' if you prefer to work outside
2168
the makefiles.  For example,
2169
 
2170
         make check-g++ RUNTESTFLAGS="--target_board=unix/-O3/-fmerge-constants"
2171
 
2172
   will run the standard `g++' testsuites ("unix" is the target name
2173
for a standard native testsuite situation), passing `-O3
2174
-fmerge-constants' to the compiler on every test, i.e., slashes
2175
separate options.
2176
 
2177
   You can run the testsuites multiple times using combinations of
2178
options with a syntax similar to the brace expansion of popular shells:
2179
 
2180
         ..."--target_board=arm-sim\{-mhard-float,-msoft-float\}\{-O1,-O2,-O3,\}"
2181
 
2182
   (Note the empty option caused by the trailing comma in the final
2183
group.)  The following will run each testsuite eight times using the
2184
`arm-sim' target, as if you had specified all possible combinations
2185
yourself:
2186
 
2187
         --target_board=arm-sim/-mhard-float/-O1
2188
         --target_board=arm-sim/-mhard-float/-O2
2189
         --target_board=arm-sim/-mhard-float/-O3
2190
         --target_board=arm-sim/-mhard-float
2191
         --target_board=arm-sim/-msoft-float/-O1
2192
         --target_board=arm-sim/-msoft-float/-O2
2193
         --target_board=arm-sim/-msoft-float/-O3
2194
         --target_board=arm-sim/-msoft-float
2195
 
2196
   They can be combined as many times as you wish, in arbitrary ways.
2197
This list:
2198
 
2199
         ..."--target_board=unix/-Wextra\{-O3,-fno-strength\}\{-fomit-frame,\}"
2200
 
2201
   will generate four combinations, all involving `-Wextra'.
2202
 
2203
   The disadvantage to this method is that the testsuites are run in
2204
serial, which is a waste on multiprocessor systems.  For users with GNU
2205
Make and a shell which performs brace expansion, you can run the
2206
testsuites in parallel by having the shell perform the combinations and
2207
`make' do the parallel runs.  Instead of using `--target_board', use a
2208
special makefile target:
2209
 
2210
         make -jN check-TESTSUITE//TEST-TARGET/OPTION1/OPTION2/...
2211
 
2212
   For example,
2213
 
2214
         make -j3 check-gcc//sh-hms-sim/{-m1,-m2,-m3,-m3e,-m4}/{,-nofpu}
2215
 
2216
   will run three concurrent "make-gcc" testsuites, eventually testing
2217
all ten combinations as described above.  Note that this is currently
2218
only supported in the `gcc' subdirectory.  (To see how this works, try
2219
typing `echo' before the example given here.)
2220
 
2221
6.3 Additional testing for Java Class Libraries
2222
===============================================
2223
 
2224
The Java runtime tests can be executed via `make check' in the
2225
`TARGET/libjava/testsuite' directory in the build tree.
2226
 
2227
   The Mauve Project provides a suite of tests for the Java Class
2228
Libraries.  This suite can be run as part of libgcj testing by placing
2229
the Mauve tree within the libjava testsuite at
2230
`libjava/testsuite/libjava.mauve/mauve', or by specifying the location
2231
of that tree when invoking `make', as in `make MAUVEDIR=~/mauve check'.
2232
 
2233
6.4 How to interpret test results
2234
=================================
2235
 
2236
The result of running the testsuite are various `*.sum' and `*.log'
2237
files in the testsuite subdirectories.  The `*.log' files contain a
2238
detailed log of the compiler invocations and the corresponding results,
2239
the `*.sum' files summarize the results.  These summaries contain
2240
status codes for all tests:
2241
 
2242
   * PASS: the test passed as expected
2243
 
2244
   * XPASS: the test unexpectedly passed
2245
 
2246
   * FAIL: the test unexpectedly failed
2247
 
2248
   * XFAIL: the test failed as expected
2249
 
2250
   * UNSUPPORTED: the test is not supported on this platform
2251
 
2252
   * ERROR: the testsuite detected an error
2253
 
2254
   * WARNING: the testsuite detected a possible problem
2255
 
2256
   It is normal for some tests to report unexpected failures.  At the
2257
current time the testing harness does not allow fine grained control
2258
over whether or not a test is expected to fail.  This problem should be
2259
fixed in future releases.
2260
 
2261
6.5 Submitting test results
2262
===========================
2263
 
2264
If you want to report the results to the GCC project, use the
2265
`contrib/test_summary' shell script.  Start it in the OBJDIR with
2266
 
2267
         SRCDIR/contrib/test_summary -p your_commentary.txt \
2268
             -m gcc-testresults@gcc.gnu.org |sh
2269
 
2270
   This script uses the `Mail' program to send the results, so make
2271
sure it is in your `PATH'.  The file `your_commentary.txt' is prepended
2272
to the testsuite summary and should contain any special remarks you
2273
have on your results or your build environment.  Please do not edit the
2274
testsuite result block or the subject line, as these messages may be
2275
automatically processed.
2276
 
2277

2278
File: gccinstall.info,  Node: Final install,  Prev: Testing,  Up: Installing GCC
2279
 
2280
7 Installing GCC: Final installation
2281
************************************
2282
 
2283
   Now that GCC has been built (and optionally tested), you can install
2284
it with
2285
     cd OBJDIR; make install
2286
 
2287
   We strongly recommend to install into a target directory where there
2288
is no previous version of GCC present.  Also, the GNAT runtime should
2289
not be stripped, as this would break certain features of the debugger
2290
that depend on this debugging information (catching Ada exceptions for
2291
instance).
2292
 
2293
   That step completes the installation of GCC; user level binaries can
2294
be found in `PREFIX/bin' where PREFIX is the value you specified with
2295
the `--prefix' to configure (or `/usr/local' by default).  (If you
2296
specified `--bindir', that directory will be used instead; otherwise,
2297
if you specified `--exec-prefix', `EXEC-PREFIX/bin' will be used.)
2298
Headers for the C++ and Java libraries are installed in
2299
`PREFIX/include'; libraries in `LIBDIR' (normally `PREFIX/lib');
2300
internal parts of the compiler in `LIBDIR/gcc' and `LIBEXECDIR/gcc';
2301
documentation in info format in `INFODIR' (normally `PREFIX/info').
2302
 
2303
   When installing cross-compilers, GCC's executables are not only
2304
installed into `BINDIR', that is, `EXEC-PREFIX/bin', but additionally
2305
into `EXEC-PREFIX/TARGET-ALIAS/bin', if that directory exists.
2306
Typically, such "tooldirs" hold target-specific binutils, including
2307
assembler and linker.
2308
 
2309
   Installation into a temporary staging area or into a `chroot' jail
2310
can be achieved with the command
2311
 
2312
     make DESTDIR=PATH-TO-ROOTDIR install
2313
 
2314
where PATH-TO-ROOTDIR is the absolute path of a directory relative to
2315
which all installation paths will be interpreted.  Note that the
2316
directory specified by `DESTDIR' need not exist yet; it will be created
2317
if necessary.
2318
 
2319
   There is a subtle point with tooldirs and `DESTDIR': If you relocate
2320
a cross-compiler installation with e.g. `DESTDIR=ROOTDIR', then the
2321
directory `ROOTDIR/EXEC-PREFIX/TARGET-ALIAS/bin' will be filled with
2322
duplicated GCC executables only if it already exists, it will not be
2323
created otherwise.  This is regarded as a feature, not as a bug,
2324
because it gives slightly more control to the packagers using the
2325
`DESTDIR' feature.
2326
 
2327
   If you are bootstrapping a released version of GCC then please
2328
quickly review the build status page for your release, available from
2329
`http://gcc.gnu.org/buildstat.html'.  If your system is not listed for
2330
the version of GCC that you built, send a note to 
2331
indicating that you successfully built and installed GCC.  Include the
2332
following information:
2333
 
2334
   * Output from running `SRCDIR/config.guess'.  Do not send that file
2335
     itself, just the one-line output from running it.
2336
 
2337
   * The output of `gcc -v' for your newly installed `gcc'.  This tells
2338
     us which version of GCC you built and the options you passed to
2339
     configure.
2340
 
2341
   * Whether you enabled all languages or a subset of them.  If you
2342
     used a full distribution then this information is part of the
2343
     configure options in the output of `gcc -v', but if you downloaded
2344
     the "core" compiler plus additional front ends then it isn't
2345
     apparent which ones you built unless you tell us about it.
2346
 
2347
   * If the build was for GNU/Linux, also include:
2348
        * The distribution name and version (e.g., Red Hat 7.1 or
2349
          Debian 2.2.3); this information should be available from
2350
          `/etc/issue'.
2351
 
2352
        * The version of the Linux kernel, available from `uname
2353
          --version' or `uname -a'.
2354
 
2355
        * The version of glibc you used; for RPM-based systems like Red
2356
          Hat, Mandrake, and SuSE type `rpm -q glibc' to get the glibc
2357
          version, and on systems like Debian and Progeny use `dpkg -l
2358
          libc6'.
2359
     For other systems, you can include similar information if you
2360
     think it is relevant.
2361
 
2362
   * Any other information that you think would be useful to people
2363
     building GCC on the same configuration.  The new entry in the
2364
     build status list will include a link to the archived copy of your
2365
     message.
2366
 
2367
   We'd also like to know if the *note host/target specific
2368
installation notes: Specific.  didn't include your host/target
2369
information or if that information is incomplete or out of date.  Send
2370
a note to  detailing how the information should be
2371
changed.
2372
 
2373
   If you find a bug, please report it following the bug reporting
2374
guidelines.
2375
 
2376
   If you want to print the GCC manuals, do `cd OBJDIR; make dvi'.  You
2377
will need to have `texi2dvi' (version at least 4.7) and TeX installed.
2378
This creates a number of `.dvi' files in subdirectories of `OBJDIR';
2379
these may be converted for printing with programs such as `dvips'.
2380
Alternately, by using `make pdf' in place of `make dvi', you can create
2381
documentation in the form of `.pdf' files; this requires `texi2pdf',
2382
which is included with Texinfo version 4.8 and later.  You can also buy
2383
printed manuals from the Free Software Foundation, though such manuals
2384
may not be for the most recent version of GCC.
2385
 
2386
   If you would like to generate online HTML documentation, do `cd
2387
OBJDIR; make html' and HTML will be generated for the gcc manuals in
2388
`OBJDIR/gcc/HTML'.
2389
 
2390

2391
File: gccinstall.info,  Node: Binaries,  Next: Specific,  Prev: Installing GCC,  Up: Top
2392
 
2393
8 Installing GCC: Binaries
2394
**************************
2395
 
2396
   We are often asked about pre-compiled versions of GCC.  While we
2397
cannot provide these for all platforms, below you'll find links to
2398
binaries for various platforms where creating them by yourself is not
2399
easy due to various reasons.
2400
 
2401
   Please note that we did not create these binaries, nor do we support
2402
them.  If you have any problems installing them, please contact their
2403
makers.
2404
 
2405
   * AIX:
2406
        * Bull's Freeware and Shareware Archive for AIX;
2407
 
2408
        * Hudson Valley Community College Open Source Software for IBM
2409
          System p;
2410
 
2411
        * AIX 5L and 6 Open Source Packages.
2412
 
2413
   * DOS--DJGPP.
2414
 
2415
   * Renesas H8/300[HS]--GNU Development Tools for the Renesas
2416
     H8/300[HS] Series.
2417
 
2418
   * HP-UX:
2419
        * HP-UX Porting Center;
2420
 
2421
        * Binaries for HP-UX 11.00 at Aachen University of Technology.
2422
 
2423
   * Motorola 68HC11/68HC12--GNU Development Tools for the Motorola
2424
     68HC11/68HC12.
2425
 
2426
   * SCO OpenServer/Unixware.
2427
 
2428
   * Solaris 2 (SPARC, Intel)--Sunfreeware.
2429
 
2430
   * SGI--SGI Freeware.
2431
 
2432
   * Microsoft Windows:
2433
        * The Cygwin project;
2434
 
2435
        * The MinGW project.
2436
 
2437
   * The Written Word offers binaries for AIX 4.3.3, 5.1 and 5.2, IRIX
2438
     6.5, Tru64 UNIX 4.0D and 5.1, GNU/Linux (i386), HP-UX 10.20,
2439
     11.00, and 11.11, and Solaris/SPARC 2.5.1, 2.6, 7, 8, 9 and 10.
2440
 
2441
   * OpenPKG offers binaries for quite a number of platforms.
2442
 
2443
   * The GFortran Wiki has links to GNU Fortran binaries for several
2444
     platforms.
2445
 
2446

2447
File: gccinstall.info,  Node: Specific,  Next: Old,  Prev: Binaries,  Up: Top
2448
 
2449
9 Host/target specific installation notes for GCC
2450
*************************************************
2451
 
2452
   Please read this document carefully _before_ installing the GNU
2453
Compiler Collection on your machine.
2454
 
2455
   Note that this list of install notes is _not_ a list of supported
2456
hosts or targets.  Not all supported hosts and targets are listed here,
2457
only the ones that require host-specific or target-specific information
2458
are.
2459
 
2460
alpha*-*-*
2461
==========
2462
 
2463
This section contains general configuration information for all
2464
alpha-based platforms using ELF (in particular, ignore this section for
2465
DEC OSF/1, Digital UNIX and Tru64 UNIX).  In addition to reading this
2466
section, please read all other sections that match your target.
2467
 
2468
   We require binutils 2.11.2 or newer.  Previous binutils releases had
2469
a number of problems with DWARF 2 debugging information, not the least
2470
of which is incorrect linking of shared libraries.
2471
 
2472
alpha*-dec-osf*
2473
===============
2474
 
2475
Systems using processors that implement the DEC Alpha architecture and
2476
are running the DEC/Compaq/HP Unix (DEC OSF/1, Digital UNIX, or
2477
Compaq/HP Tru64 UNIX) operating system, for example the DEC Alpha AXP
2478
systems.
2479
 
2480
   As of GCC 3.2, versions before `alpha*-dec-osf4' are no longer
2481
supported.  (These are the versions which identify themselves as DEC
2482
OSF/1.)  As of GCC 4.5, support for Tru64 UNIX V4.0 and V5.0 has been
2483
obsoleted, but can still be enabled by configuring with
2484
`--enable-obsolete'.  Support will be removed in GCC 4.6.
2485
 
2486
   On Tru64 UNIX, virtual memory exhausted bootstrap failures may be
2487
fixed by reconfiguring Kernel Virtual Memory and Swap parameters per
2488
the `/usr/sbin/sys_check' Tuning Suggestions, or applying the patch in
2489
`http://gcc.gnu.org/ml/gcc/2002-08/msg00822.html'.  Depending on the OS
2490
version used, you need a data segment size between 512 MB and 1 GB, so
2491
simply use `ulimit -Sd unlimited'.
2492
 
2493
   As of GNU binutils 2.20.1, neither GNU `as' nor GNU `ld' are
2494
supported on Tru64 UNIX, so you must not configure GCC with
2495
`--with-gnu-as' or `--with-gnu-ld'.
2496
 
2497
   GCC writes a `.verstamp' directive to the assembler output file
2498
unless it is built as a cross-compiler.  It gets the version to use from
2499
the system header file `/usr/include/stamp.h'.  If you install a new
2500
version of Tru64 UNIX, you should rebuild GCC to pick up the new version
2501
stamp.
2502
 
2503
   GCC now supports both the native (ECOFF) debugging format used by DBX
2504
and GDB and an encapsulated STABS format for use only with GDB.  See the
2505
discussion of the `--with-stabs' option of `configure' above for more
2506
information on these formats and how to select them.
2507
 
2508
   There is a bug in DEC's assembler that produces incorrect line
2509
numbers for ECOFF format when the `.align' directive is used.  To work
2510
around this problem, GCC will not emit such alignment directives while
2511
writing ECOFF format debugging information even if optimization is
2512
being performed.  Unfortunately, this has the very undesirable
2513
side-effect that code addresses when `-O' is specified are different
2514
depending on whether or not `-g' is also specified.
2515
 
2516
   To avoid this behavior, specify `-gstabs+' and use GDB instead of
2517
DBX.  DEC is now aware of this problem with the assembler and hopes to
2518
provide a fix shortly.
2519
 
2520
arc-*-elf
2521
=========
2522
 
2523
Argonaut ARC processor.  This configuration is intended for embedded
2524
systems.
2525
 
2526
arm-*-elf
2527
=========
2528
 
2529
ARM-family processors.  Subtargets that use the ELF object format
2530
require GNU binutils 2.13 or newer.  Such subtargets include:
2531
`arm-*-freebsd', `arm-*-netbsdelf', `arm-*-*linux' and `arm-*-rtems'.
2532
 
2533
avr
2534
===
2535
 
2536
ATMEL AVR-family micro controllers.  These are used in embedded
2537
applications.  There are no standard Unix configurations.  *Note AVR
2538
Options: (gcc)AVR Options, for the list of supported MCU types.
2539
 
2540
   Use `configure --target=avr --enable-languages="c"' to configure GCC.
2541
 
2542
   Further installation notes and other useful information about AVR
2543
tools can also be obtained from:
2544
 
2545
   * http://www.nongnu.org/avr/
2546
 
2547
   * http://www.amelek.gda.pl/avr/
2548
 
2549
   We _strongly_ recommend using binutils 2.13 or newer.
2550
 
2551
   The following error:
2552
       Error: register required
2553
 
2554
   indicates that you should upgrade to a newer version of the binutils.
2555
 
2556
Blackfin
2557
========
2558
 
2559
The Blackfin processor, an Analog Devices DSP.  *Note Blackfin Options:
2560
(gcc)Blackfin Options,
2561
 
2562
   More information, and a version of binutils with support for this
2563
processor, is available at `http://blackfin.uclinux.org'
2564
 
2565
CRIS
2566
====
2567
 
2568
CRIS is the CPU architecture in Axis Communications ETRAX
2569
system-on-a-chip series.  These are used in embedded applications.
2570
 
2571
   *Note CRIS Options: (gcc)CRIS Options, for a list of CRIS-specific
2572
options.
2573
 
2574
   There are a few different CRIS targets:
2575
`cris-axis-elf'
2576
     Mainly for monolithic embedded systems.  Includes a multilib for
2577
     the `v10' core used in `ETRAX 100 LX'.
2578
 
2579
`cris-axis-linux-gnu'
2580
     A GNU/Linux port for the CRIS architecture, currently targeting
2581
     `ETRAX 100 LX' by default.
2582
 
2583
   For `cris-axis-elf' you need binutils 2.11 or newer.  For
2584
`cris-axis-linux-gnu' you need binutils 2.12 or newer.
2585
 
2586
   Pre-packaged tools can be obtained from
2587
`ftp://ftp.axis.com/pub/axis/tools/cris/compiler-kit/'.  More
2588
information about this platform is available at
2589
`http://developer.axis.com/'.
2590
 
2591
CRX
2592
===
2593
 
2594
The CRX CompactRISC architecture is a low-power 32-bit architecture with
2595
fast context switching and architectural extensibility features.
2596
 
2597
   *Note CRX Options: (gcc)CRX Options,
2598
 
2599
   Use `configure --target=crx-elf --enable-languages=c,c++' to
2600
configure GCC for building a CRX cross-compiler. The option
2601
`--target=crx-elf' is also used to build the `newlib' C library for CRX.
2602
 
2603
   It is also possible to build libstdc++-v3 for the CRX architecture.
2604
This needs to be done in a separate step with the following configure
2605
settings: `gcc/libstdc++-v3/configure --host=crx-elf --with-newlib
2606
--enable-sjlj-exceptions --enable-cxx-flags='-fexceptions -frtti''
2607
 
2608
DOS
2609
===
2610
 
2611
Please have a look at the binaries page.
2612
 
2613
   You cannot install GCC by itself on MSDOS; it will not compile under
2614
any MSDOS compiler except itself.  You need to get the complete
2615
compilation package DJGPP, which includes binaries as well as sources,
2616
and includes all the necessary compilation tools and libraries.
2617
 
2618
*-*-freebsd*
2619
============
2620
 
2621
Support for FreeBSD 1 was discontinued in GCC 3.2.  Support for FreeBSD
2622
2 (and any mutant a.out variants of FreeBSD 3) was discontinued in GCC
2623
4.0.
2624
 
2625
   In GCC 4.5, we enabled the use of `dl_iterate_phdr' inside boehm-gc
2626
on FreeBSD 7 or later.  In order to better match the configuration of
2627
the FreeBSD system compiler: We also enabled the check to see if libc
2628
provides SSP support (which it does on FreeBSD 7), the use of
2629
`dl_iterate_phdr' inside `libgcc_s.so.1' (on FreeBSD 7 or later) and
2630
the use of `__cxa_atexit' by default (on FreeBSD 6 or later).
2631
 
2632
   We support FreeBSD using the ELF file format with DWARF 2 debugging
2633
for all CPU architectures.  You may use `-gstabs' instead of `-g', if
2634
you really want the old debugging format.  There are no known issues
2635
with mixing object files and libraries with different debugging
2636
formats.  Otherwise, this release of GCC should now match more of the
2637
configuration used in the stock FreeBSD configuration of GCC.  In
2638
particular, `--enable-threads' is now configured by default.  However,
2639
as a general user, do not attempt to replace the system compiler with
2640
this release.  Known to bootstrap and check with good results on
2641
FreeBSD 7.2-STABLE.  In the past, known to bootstrap and check with
2642
good results on FreeBSD 3.0, 3.4, 4.0, 4.2, 4.3, 4.4, 4.5, 4.8, 4.9 and
2643
5-CURRENT.
2644
 
2645
   The version of binutils installed in `/usr/bin' probably works with
2646
this release of GCC.  Bootstrapping against the latest GNU binutils
2647
and/or the version found in `/usr/ports/devel/binutils' has been known
2648
to enable additional features and improve overall testsuite results.
2649
However, it is currently known that boehm-gc (which itself is required
2650
for java) may not configure properly on FreeBSD prior to the FreeBSD
2651
7.0 release with GNU binutils after 2.16.1.
2652
 
2653
h8300-hms
2654
=========
2655
 
2656
Renesas H8/300 series of processors.
2657
 
2658
   Please have a look at the binaries page.
2659
 
2660
   The calling convention and structure layout has changed in release
2661
2.6.  All code must be recompiled.  The calling convention now passes
2662
the first three arguments in function calls in registers.  Structures
2663
are no longer a multiple of 2 bytes.
2664
 
2665
hppa*-hp-hpux*
2666
==============
2667
 
2668
Support for HP-UX version 9 and older was discontinued in GCC 3.4.
2669
 
2670
   We require using gas/binutils on all hppa platforms.  Version 2.19 or
2671
later is recommended.
2672
 
2673
   It may be helpful to configure GCC with the `--with-gnu-as' and
2674
`--with-as=...' options to ensure that GCC can find GAS.
2675
 
2676
   The HP assembler should not be used with GCC.  It is rarely tested
2677
and may not work.  It shouldn't be used with any languages other than C
2678
due to its many limitations.
2679
 
2680
   Specifically, `-g' does not work (HP-UX uses a peculiar debugging
2681
format which GCC does not know about).  It also inserts timestamps into
2682
each object file it creates, causing the 3-stage comparison test to
2683
fail during a bootstrap.  You should be able to continue by saying
2684
`make all-host all-target' after getting the failure from `make'.
2685
 
2686
   Various GCC features are not supported.  For example, it does not
2687
support weak symbols or alias definitions.  As a result, explicit
2688
template instantiations are required when using C++.  This makes it
2689
difficult if not impossible to build many C++ applications.
2690
 
2691
   There are two default scheduling models for instructions.  These are
2692
PROCESSOR_7100LC and PROCESSOR_8000.  They are selected from the pa-risc
2693
architecture specified for the target machine when configuring.
2694
PROCESSOR_8000 is the default.  PROCESSOR_7100LC is selected when the
2695
target is a `hppa1*' machine.
2696
 
2697
   The PROCESSOR_8000 model is not well suited to older processors.
2698
Thus, it is important to completely specify the machine architecture
2699
when configuring if you want a model other than PROCESSOR_8000.  The
2700
macro TARGET_SCHED_DEFAULT can be defined in BOOT_CFLAGS if a different
2701
default scheduling model is desired.
2702
 
2703
   As of GCC 4.0, GCC uses the UNIX 95 namespace for HP-UX 10.10
2704
through 11.00, and the UNIX 98 namespace for HP-UX 11.11 and later.
2705
This namespace change might cause problems when bootstrapping with an
2706
earlier version of GCC or the HP compiler as essentially the same
2707
namespace is required for an entire build.  This problem can be avoided
2708
in a number of ways.  With HP cc, `UNIX_STD' can be set to `95' or
2709
`98'.  Another way is to add an appropriate set of predefines to `CC'.
2710
The description for the `munix=' option contains a list of the
2711
predefines used with each standard.
2712
 
2713
   More specific information to `hppa*-hp-hpux*' targets follows.
2714
 
2715
hppa*-hp-hpux10
2716
===============
2717
 
2718
For hpux10.20, we _highly_ recommend you pick up the latest sed patch
2719
`PHCO_19798' from HP.  HP has two sites which provide patches free of
2720
charge:
2721
 
2722
   * `http://us.itrc.hp.com/service/home/home.do' US, Canada,
2723
     Asia-Pacific, and Latin-America.
2724
 
2725
   * `http://europe.itrc.hp.com/service/home/home.do' Europe.
2726
 
2727
   The C++ ABI has changed incompatibly in GCC 4.0.  COMDAT subspaces
2728
are used for one-only code and data.  This resolves many of the previous
2729
problems in using C++ on this target.  However, the ABI is not
2730
compatible with the one implemented under HP-UX 11 using secondary
2731
definitions.
2732
 
2733
hppa*-hp-hpux11
2734
===============
2735
 
2736
GCC 3.0 and up support HP-UX 11.  GCC 2.95.x is not supported and cannot
2737
be used to compile GCC 3.0 and up.
2738
 
2739
   The libffi and libjava libraries haven't been ported to 64-bit HP-UX
2740
and don't build.
2741
 
2742
   Refer to binaries for information about obtaining precompiled GCC
2743
binaries for HP-UX.  Precompiled binaries must be obtained to build the
2744
Ada language as it can't be bootstrapped using C.  Ada is only
2745
available for the 32-bit PA-RISC runtime.
2746
 
2747
   Starting with GCC 3.4 an ISO C compiler is required to bootstrap.
2748
The bundled compiler supports only traditional C; you will need either
2749
HP's unbundled compiler, or a binary distribution of GCC.
2750
 
2751
   It is possible to build GCC 3.3 starting with the bundled HP
2752
compiler, but the process requires several steps.  GCC 3.3 can then be
2753
used to build later versions.  The fastjar program contains ISO C code
2754
and can't be built with the HP bundled compiler.  This problem can be
2755
avoided by not building the Java language.  For example, use the
2756
`--enable-languages="c,c++,f77,objc"' option in your configure command.
2757
 
2758
   There are several possible approaches to building the distribution.
2759
Binutils can be built first using the HP tools.  Then, the GCC
2760
distribution can be built.  The second approach is to build GCC first
2761
using the HP tools, then build binutils, then rebuild GCC.  There have
2762
been problems with various binary distributions, so it is best not to
2763
start from a binary distribution.
2764
 
2765
   On 64-bit capable systems, there are two distinct targets.  Different
2766
installation prefixes must be used if both are to be installed on the
2767
same system.  The `hppa[1-2]*-hp-hpux11*' target generates code for the
2768
32-bit PA-RISC runtime architecture and uses the HP linker.  The
2769
`hppa64-hp-hpux11*' target generates 64-bit code for the PA-RISC 2.0
2770
architecture.
2771
 
2772
   The script config.guess now selects the target type based on the
2773
compiler detected during configuration.  You must define `PATH' or `CC'
2774
so that configure finds an appropriate compiler for the initial
2775
bootstrap.  When `CC' is used, the definition should contain the
2776
options that are needed whenever `CC' is used.
2777
 
2778
   Specifically, options that determine the runtime architecture must be
2779
in `CC' to correctly select the target for the build.  It is also
2780
convenient to place many other compiler options in `CC'.  For example,
2781
`CC="cc -Ac +DA2.0W -Wp,-H16376 -D_CLASSIC_TYPES -D_HPUX_SOURCE"' can
2782
be used to bootstrap the GCC 3.3 branch with the HP compiler in 64-bit
2783
K&R/bundled mode.  The `+DA2.0W' option will result in the automatic
2784
selection of the `hppa64-hp-hpux11*' target.  The macro definition
2785
table of cpp needs to be increased for a successful build with the HP
2786
compiler.  _CLASSIC_TYPES and _HPUX_SOURCE need to be defined when
2787
building with the bundled compiler, or when using the `-Ac' option.
2788
These defines aren't necessary with `-Ae'.
2789
 
2790
   It is best to explicitly configure the `hppa64-hp-hpux11*' target
2791
with the `--with-ld=...' option.  This overrides the standard search
2792
for ld.  The two linkers supported on this target require different
2793
commands.  The default linker is determined during configuration.  As a
2794
result, it's not possible to switch linkers in the middle of a GCC
2795
build.  This has been reported to sometimes occur in unified builds of
2796
binutils and GCC.
2797
 
2798
   A recent linker patch must be installed for the correct operation of
2799
GCC 3.3 and later.  `PHSS_26559' and `PHSS_24304' are the oldest linker
2800
patches that are known to work.  They are for HP-UX 11.00 and 11.11,
2801
respectively.  `PHSS_24303', the companion to `PHSS_24304', might be
2802
usable but it hasn't been tested.  These patches have been superseded.
2803
Consult the HP patch database to obtain the currently recommended
2804
linker patch for your system.
2805
 
2806
   The patches are necessary for the support of weak symbols on the
2807
32-bit port, and for the running of initializers and finalizers.  Weak
2808
symbols are implemented using SOM secondary definition symbols.  Prior
2809
to HP-UX 11, there are bugs in the linker support for secondary symbols.
2810
The patches correct a problem of linker core dumps creating shared
2811
libraries containing secondary symbols, as well as various other
2812
linking issues involving secondary symbols.
2813
 
2814
   GCC 3.3 uses the ELF DT_INIT_ARRAY and DT_FINI_ARRAY capabilities to
2815
run initializers and finalizers on the 64-bit port.  The 32-bit port
2816
uses the linker `+init' and `+fini' options for the same purpose.  The
2817
patches correct various problems with the +init/+fini options,
2818
including program core dumps.  Binutils 2.14 corrects a problem on the
2819
64-bit port resulting from HP's non-standard use of the .init and .fini
2820
sections for array initializers and finalizers.
2821
 
2822
   Although the HP and GNU linkers are both supported for the
2823
`hppa64-hp-hpux11*' target, it is strongly recommended that the HP
2824
linker be used for link editing on this target.
2825
 
2826
   At this time, the GNU linker does not support the creation of long
2827
branch stubs.  As a result, it can't successfully link binaries
2828
containing branch offsets larger than 8 megabytes.  In addition, there
2829
are problems linking shared libraries, linking executables with
2830
`-static', and with dwarf2 unwind and exception support.  It also
2831
doesn't provide stubs for internal calls to global functions in shared
2832
libraries, so these calls can't be overloaded.
2833
 
2834
   The HP dynamic loader does not support GNU symbol versioning, so
2835
symbol versioning is not supported.  It may be necessary to disable
2836
symbol versioning with `--disable-symvers' when using GNU ld.
2837
 
2838
   POSIX threads are the default.  The optional DCE thread library is
2839
not supported, so `--enable-threads=dce' does not work.
2840
 
2841
*-*-linux-gnu
2842
=============
2843
 
2844
Versions of libstdc++-v3 starting with 3.2.1 require bug fixes present
2845
in glibc 2.2.5 and later.  More information is available in the
2846
libstdc++-v3 documentation.
2847
 
2848
i?86-*-linux*
2849
=============
2850
 
2851
As of GCC 3.3, binutils 2.13.1 or later is required for this platform.
2852
See bug 10877 for more information.
2853
 
2854
   If you receive Signal 11 errors when building on GNU/Linux, then it
2855
is possible you have a hardware problem.  Further information on this
2856
can be found on www.bitwizard.nl.
2857
 
2858
i?86-*-solaris2.[89]
2859
====================
2860
 
2861
The Sun assembler in Solaris 8 and 9 has several bugs and limitations.
2862
While GCC works around them, several features are missing, so it is
2863
recommended to use the GNU assembler instead.  There is no bundled
2864
version, but the current version, from GNU binutils 2.20.1, is known to
2865
work.
2866
 
2867
   Solaris~2/x86 doesn't support the execution of SSE/SSE2 instructions
2868
before Solaris~9 4/04, even if the CPU supports them.  Programs will
2869
receive `SIGILL' if they try.  The fix is available both in Solaris~9
2870
Update~6 and kernel patch 112234-12 or newer.  There is no
2871
corresponding patch for Solaris 8.  To avoid this problem, `-march'
2872
defaults to `pentiumpro' on Solaris 8 and 9.  If you have the patch
2873
installed, you can configure GCC with an appropriate `--with-arch'
2874
option, but need GNU `as' for SSE2 support.
2875
 
2876
i?86-*-solaris2.10
2877
==================
2878
 
2879
Use this for Solaris 10 or later on x86 and x86-64 systems.  This
2880
configuration is supported by GCC 4.0 and later versions only.  Unlike
2881
`sparcv9-sun-solaris2*', there is no corresponding 64-bit configuration
2882
like `amd64-*-solaris2*' or `x86_64-*-solaris2*'.
2883
 
2884
   It is recommended that you configure GCC to use the GNU assembler, in
2885
`/usr/sfw/bin/gas'.  The versions included in Solaris 10, from GNU
2886
binutils 2.15, and Solaris 11, from GNU binutils 2.19, work fine,
2887
although the current version, from GNU binutils 2.20.1, is known to
2888
work, too.  Recent versions of the Sun assembler in `/usr/ccs/bin/as'
2889
work almost as well, though.
2890
 
2891
   For linking, the Sun linker, is preferred.  If you want to use the
2892
GNU linker instead, which is available in `/usr/sfw/bin/gld', note that
2893
due to a packaging bug the version in Solaris 10, from GNU binutils
2894
2.15, cannot be used, while the version in Solaris 11, from GNU binutils
2895
2.19, works, as does the latest version, from GNU binutils 2.20.1.
2896
 
2897
   To use GNU `as', configure with the options `--with-gnu-as
2898
--with-as=/usr/sfw/bin/gas'.  It may be necessary to configure with
2899
`--without-gnu-ld --with-ld=/usr/ccs/bin/ld' to guarantee use of Sun
2900
`ld'.
2901
 
2902
ia64-*-linux
2903
============
2904
 
2905
IA-64 processor (also known as IPF, or Itanium Processor Family)
2906
running GNU/Linux.
2907
 
2908
   If you are using the installed system libunwind library with
2909
`--with-system-libunwind', then you must use libunwind 0.98 or later.
2910
 
2911
   None of the following versions of GCC has an ABI that is compatible
2912
with any of the other versions in this list, with the exception that
2913
Red Hat 2.96 and Trillian 000171 are compatible with each other: 3.1,
2914
3.0.2, 3.0.1, 3.0, Red Hat 2.96, and Trillian 000717.  This primarily
2915
affects C++ programs and programs that create shared libraries.  GCC
2916
3.1 or later is recommended for compiling linux, the kernel.  As of
2917
version 3.1 GCC is believed to be fully ABI compliant, and hence no
2918
more major ABI changes are expected.
2919
 
2920
ia64-*-hpux*
2921
============
2922
 
2923
Building GCC on this target requires the GNU Assembler.  The bundled HP
2924
assembler will not work.  To prevent GCC from using the wrong assembler,
2925
the option `--with-gnu-as' may be necessary.
2926
 
2927
   The GCC libunwind library has not been ported to HPUX.  This means
2928
that for GCC versions 3.2.3 and earlier, `--enable-libunwind-exceptions'
2929
is required to build GCC.  For GCC 3.3 and later, this is the default.
2930
For gcc 3.4.3 and later, `--enable-libunwind-exceptions' is removed and
2931
the system libunwind library will always be used.
2932
 
2933
*-ibm-aix*
2934
==========
2935
 
2936
Support for AIX version 3 and older was discontinued in GCC 3.4.
2937
Support for AIX version 4.2 and older was discontinued in GCC 4.5.
2938
 
2939
   "out of memory" bootstrap failures may indicate a problem with
2940
process resource limits (ulimit).  Hard limits are configured in the
2941
`/etc/security/limits' system configuration file.
2942
 
2943
   GCC can bootstrap with recent versions of IBM XLC, but bootstrapping
2944
with an earlier release of GCC is recommended.  Bootstrapping with XLC
2945
requires a larger data segment, which can be enabled through the
2946
LDR_CNTRL environment variable, e.g.,
2947
 
2948
        % LDR_CNTRL=MAXDATA=0x50000000
2949
        % export LDR_CNTRL
2950
 
2951
   One can start with a pre-compiled version of GCC to build from
2952
sources.  One may delete GCC's "fixed" header files when starting with
2953
a version of GCC built for an earlier release of AIX.
2954
 
2955
   To speed up the configuration phases of bootstrapping and installing
2956
GCC, one may use GNU Bash instead of AIX `/bin/sh', e.g.,
2957
 
2958
        % CONFIG_SHELL=/opt/freeware/bin/bash
2959
        % export CONFIG_SHELL
2960
 
2961
   and then proceed as described in the build instructions, where we
2962
strongly recommend specifying an absolute path to invoke
2963
SRCDIR/configure.
2964
 
2965
   Because GCC on AIX is built as a 32-bit executable by default,
2966
(although it can generate 64-bit programs) the GMP and MPFR libraries
2967
required by gfortran must be 32-bit libraries.  Building GMP and MPFR
2968
as static archive libraries works better than shared libraries.
2969
 
2970
   Errors involving `alloca' when building GCC generally are due to an
2971
incorrect definition of `CC' in the Makefile or mixing files compiled
2972
with the native C compiler and GCC.  During the stage1 phase of the
2973
build, the native AIX compiler *must* be invoked as `cc' (not `xlc').
2974
Once `configure' has been informed of `xlc', one needs to use `make
2975
distclean' to remove the configure cache files and ensure that `CC'
2976
environment variable does not provide a definition that will confuse
2977
`configure'.  If this error occurs during stage2 or later, then the
2978
problem most likely is the version of Make (see above).
2979
 
2980
   The native `as' and `ld' are recommended for bootstrapping on AIX.
2981
The GNU Assembler, GNU Linker, and GNU Binutils version 2.20 is
2982
required to bootstrap on AIX 5.  The native AIX tools do interoperate
2983
with GCC.
2984
 
2985
   Building `libstdc++.a' requires a fix for an AIX Assembler bug APAR
2986
IY26685 (AIX 4.3) or APAR IY25528 (AIX 5.1).  It also requires a fix
2987
for another AIX Assembler bug and a co-dependent AIX Archiver fix
2988
referenced as APAR IY53606 (AIX 5.2) or as APAR IY54774 (AIX 5.1)
2989
 
2990
   `libstdc++' in GCC 3.4 increments the major version number of the
2991
shared object and GCC installation places the `libstdc++.a' shared
2992
library in a common location which will overwrite the and GCC 3.3
2993
version of the shared library.  Applications either need to be
2994
re-linked against the new shared library or the GCC 3.1 and GCC 3.3
2995
versions of the `libstdc++' shared object needs to be available to the
2996
AIX runtime loader.  The GCC 3.1 `libstdc++.so.4', if present, and GCC
2997
3.3 `libstdc++.so.5' shared objects can be installed for runtime
2998
dynamic loading using the following steps to set the `F_LOADONLY' flag
2999
in the shared object for _each_ multilib `libstdc++.a' installed:
3000
 
3001
   Extract the shared objects from the currently installed
3002
`libstdc++.a' archive:
3003
        % ar -x libstdc++.a libstdc++.so.4 libstdc++.so.5
3004
 
3005
   Enable the `F_LOADONLY' flag so that the shared object will be
3006
available for runtime dynamic loading, but not linking:
3007
        % strip -e libstdc++.so.4 libstdc++.so.5
3008
 
3009
   Archive the runtime-only shared object in the GCC 3.4 `libstdc++.a'
3010
archive:
3011
        % ar -q libstdc++.a libstdc++.so.4 libstdc++.so.5
3012
 
3013
   Linking executables and shared libraries may produce warnings of
3014
duplicate symbols.  The assembly files generated by GCC for AIX always
3015
have included multiple symbol definitions for certain global variable
3016
and function declarations in the original program.  The warnings should
3017
not prevent the linker from producing a correct library or runnable
3018
executable.
3019
 
3020
   AIX 4.3 utilizes a "large format" archive to support both 32-bit and
3021
64-bit object modules.  The routines provided in AIX 4.3.0 and AIX 4.3.1
3022
to parse archive libraries did not handle the new format correctly.
3023
These routines are used by GCC and result in error messages during
3024
linking such as "not a COFF file".  The version of the routines shipped
3025
with AIX 4.3.1 should work for a 32-bit environment.  The `-g' option
3026
of the archive command may be used to create archives of 32-bit objects
3027
using the original "small format".  A correct version of the routines
3028
is shipped with AIX 4.3.2 and above.
3029
 
3030
   Some versions of the AIX binder (linker) can fail with a relocation
3031
overflow severe error when the `-bbigtoc' option is used to link
3032
GCC-produced object files into an executable that overflows the TOC.  A
3033
fix for APAR IX75823 (OVERFLOW DURING LINK WHEN USING GCC AND -BBIGTOC)
3034
is available from IBM Customer Support and from its
3035
techsupport.services.ibm.com website as PTF U455193.
3036
 
3037
   The AIX 4.3.2.1 linker (bos.rte.bind_cmds Level 4.3.2.1) will dump
3038
core with a segmentation fault when invoked by any version of GCC.  A
3039
fix for APAR IX87327 is available from IBM Customer Support and from its
3040
techsupport.services.ibm.com website as PTF U461879.  This fix is
3041
incorporated in AIX 4.3.3 and above.
3042
 
3043
   The initial assembler shipped with AIX 4.3.0 generates incorrect
3044
object files.  A fix for APAR IX74254 (64BIT DISASSEMBLED OUTPUT FROM
3045
COMPILER FAILS TO ASSEMBLE/BIND) is available from IBM Customer Support
3046
and from its techsupport.services.ibm.com website as PTF U453956.  This
3047
fix is incorporated in AIX 4.3.1 and above.
3048
 
3049
   AIX provides National Language Support (NLS).  Compilers and
3050
assemblers use NLS to support locale-specific representations of
3051
various data formats including floating-point numbers (e.g., `.'  vs
3052
`,' for separating decimal fractions).  There have been problems
3053
reported where GCC does not produce the same floating-point formats
3054
that the assembler expects.  If one encounters this problem, set the
3055
`LANG' environment variable to `C' or `En_US'.
3056
 
3057
   A default can be specified with the `-mcpu=CPU_TYPE' switch and
3058
using the configure option `--with-cpu-CPU_TYPE'.
3059
 
3060
iq2000-*-elf
3061
============
3062
 
3063
Vitesse IQ2000 processors.  These are used in embedded applications.
3064
There are no standard Unix configurations.
3065
 
3066
lm32-*-elf
3067
==========
3068
 
3069
Lattice Mico32 processor.  This configuration is intended for embedded
3070
systems.
3071
 
3072
lm32-*-uclinux
3073
==============
3074
 
3075
Lattice Mico32 processor.  This configuration is intended for embedded
3076
systems running uClinux.
3077
 
3078
m32c-*-elf
3079
==========
3080
 
3081
Renesas M32C processor.  This configuration is intended for embedded
3082
systems.
3083
 
3084
m32r-*-elf
3085
==========
3086
 
3087
Renesas M32R processor.  This configuration is intended for embedded
3088
systems.
3089
 
3090
m6811-elf
3091
=========
3092
 
3093
Motorola 68HC11 family micro controllers.  These are used in embedded
3094
applications.  There are no standard Unix configurations.
3095
 
3096
m6812-elf
3097
=========
3098
 
3099
Motorola 68HC12 family micro controllers.  These are used in embedded
3100
applications.  There are no standard Unix configurations.
3101
 
3102
m68k-*-*
3103
========
3104
 
3105
By default, `m68k-*-elf*', `m68k-*-rtems',  `m68k-*-uclinux' and
3106
`m68k-*-linux' build libraries for both M680x0 and ColdFire processors.
3107
If you only need the M680x0 libraries, you can omit the ColdFire ones
3108
by passing `--with-arch=m68k' to `configure'.  Alternatively, you can
3109
omit the M680x0 libraries by passing `--with-arch=cf' to `configure'.
3110
These targets default to 5206 or 5475 code as appropriate for the
3111
target system when configured with `--with-arch=cf' and 68020 code
3112
otherwise.
3113
 
3114
   The `m68k-*-netbsd' and `m68k-*-openbsd' targets also support the
3115
`--with-arch' option.  They will generate ColdFire CFV4e code when
3116
configured with `--with-arch=cf' and 68020 code otherwise.
3117
 
3118
   You can override the default processors listed above by configuring
3119
with `--with-cpu=TARGET'.  This TARGET can either be a `-mcpu' argument
3120
or one of the following values: `m68000', `m68010', `m68020', `m68030',
3121
`m68040', `m68060', `m68020-40' and `m68020-60'.
3122
 
3123
m68k-*-uclinux
3124
==============
3125
 
3126
GCC 4.3 changed the uClinux configuration so that it uses the
3127
`m68k-linux-gnu' ABI rather than the `m68k-elf' ABI.  It also added
3128
improved support for C++ and flat shared libraries, both of which were
3129
ABI changes.  However, you can still use the original ABI by
3130
configuring for `m68k-uclinuxoldabi' or `m68k-VENDOR-uclinuxoldabi'.
3131
 
3132
mep-*-elf
3133
=========
3134
 
3135
Toshiba Media embedded Processor.  This configuration is intended for
3136
embedded systems.
3137
 
3138
mips-*-*
3139
========
3140
 
3141
If on a MIPS system you get an error message saying "does not have gp
3142
sections for all it's [sic] sectons [sic]", don't worry about it.  This
3143
happens whenever you use GAS with the MIPS linker, but there is not
3144
really anything wrong, and it is okay to use the output file.  You can
3145
stop such warnings by installing the GNU linker.
3146
 
3147
   It would be nice to extend GAS to produce the gp tables, but they are
3148
optional, and there should not be a warning about their absence.
3149
 
3150
   The libstdc++ atomic locking routines for MIPS targets requires MIPS
3151
II and later.  A patch went in just after the GCC 3.3 release to make
3152
`mips*-*-*' use the generic implementation instead.  You can also
3153
configure for `mipsel-elf' as a workaround.  The `mips*-*-linux*'
3154
target continues to use the MIPS II routines.  More work on this is
3155
expected in future releases.
3156
 
3157
   The built-in `__sync_*' functions are available on MIPS II and later
3158
systems and others that support the `ll', `sc' and `sync' instructions.
3159
This can be overridden by passing `--with-llsc' or `--without-llsc'
3160
when configuring GCC.  Since the Linux kernel emulates these
3161
instructions if they are missing, the default for `mips*-*-linux*'
3162
targets is `--with-llsc'.  The `--with-llsc' and `--without-llsc'
3163
configure options may be overridden at compile time by passing the
3164
`-mllsc' or `-mno-llsc' options to the compiler.
3165
 
3166
   MIPS systems check for division by zero (unless
3167
`-mno-check-zero-division' is passed to the compiler) by generating
3168
either a conditional trap or a break instruction.  Using trap results
3169
in smaller code, but is only supported on MIPS II and later.  Also,
3170
some versions of the Linux kernel have a bug that prevents trap from
3171
generating the proper signal (`SIGFPE').  To enable the use of break,
3172
use the `--with-divide=breaks' `configure' option when configuring GCC.
3173
The default is to use traps on systems that support them.
3174
 
3175
   Cross-compilers for the MIPS as target using the MIPS assembler
3176
currently do not work, because the auxiliary programs `mips-tdump.c'
3177
and `mips-tfile.c' can't be compiled on anything but a MIPS.  It does
3178
work to cross compile for a MIPS if you use the GNU assembler and
3179
linker.
3180
 
3181
   The assembler from GNU binutils 2.17 and earlier has a bug in the way
3182
it sorts relocations for REL targets (o32, o64, EABI).  This can cause
3183
bad code to be generated for simple C++ programs.  Also the linker from
3184
GNU binutils versions prior to 2.17 has a bug which causes the runtime
3185
linker stubs in very large programs, like `libgcj.so', to be
3186
incorrectly generated.  GNU Binutils 2.18 and later (and snapshots made
3187
after Nov. 9, 2006) should be free from both of these problems.
3188
 
3189
mips-sgi-irix5
3190
==============
3191
 
3192
Support for IRIX 5 has been obsoleted in GCC 4.5, but can still be
3193
enabled by configuring with `--enable-obsolete'.  Support will be
3194
removed in GCC 4.6.
3195
 
3196
   In order to compile GCC on an SGI running IRIX 5, the
3197
`compiler_dev.hdr' subsystem must be installed from the IDO CD-ROM
3198
supplied by SGI.  It is also available for download from
3199
`http://freeware.sgi.com/ido.html'.
3200
 
3201
   If you use the MIPS C compiler to bootstrap, it may be necessary to
3202
increase its table size for switch statements with the `-Wf,-XNg1500'
3203
option.  If you use the `-O2' optimization option, you also need to use
3204
`-Olimit 3000'.
3205
 
3206
   GCC must be configured to use GNU `as'.  The latest version, from GNU
3207
binutils 2.20.1, is known to work.
3208
 
3209
   To enable debugging under IRIX 5, you must use GNU binutils 2.15 or
3210
later, and use the `--with-gnu-ld' `configure' option when configuring
3211
GCC.  You need to use GNU `ar' and `nm', also distributed with GNU
3212
binutils.
3213
 
3214
   Configuring GCC with `/bin/sh' is _extremely_ slow and may even
3215
hang.  This problem can be avoided by running `configure' like this:
3216
 
3217
        % CONFIG_SHELL=/usr/local/bin/bash
3218
        % export CONFIG_SHELL
3219
        % $CONFIG_SHELL SRCDIR/configure [OPTIONS]
3220
 
3221
`/bin/ksh' doesn't work properly either.
3222
 
3223
mips-sgi-irix6
3224
==============
3225
 
3226
Support for IRIX 6 releases before 6.5 has been obsoleted in GCC 4.5,
3227
but can still be enabled by configuring with `--enable-obsolete'.
3228
Support will be removed in GCC 4.6, which will also disable support for
3229
the O32 ABI.  It is _strongly_ recommended to upgrade to at least IRIX
3230
6.5.18.  This release introduced full ISO C99 support, though for the
3231
N32 and N64 ABIs only.
3232
 
3233
   To build and use GCC on IRIX 6, you need the IRIX Development
3234
Foundation (IDF) and IRIX Development Libraries (IDL).  They are
3235
included with the IRIX 6.5 media and can be downloaded from
3236
`http://freeware.sgi.com/idf_idl.html' for older IRIX 6 releases.
3237
 
3238
   If you are using SGI's MIPSpro `cc' as your bootstrap compiler, you
3239
must ensure that the N32 ABI is in use.  To test this, compile a simple
3240
C file with `cc' and then run `file' on the resulting object file.  The
3241
output should look like:
3242
 
3243
     test.o: ELF N32 MSB ...
3244
 
3245
If you see:
3246
 
3247
     test.o: ELF 32-bit MSB ...
3248
 
3249
or
3250
 
3251
     test.o: ELF 64-bit MSB ...
3252
 
3253
then your version of `cc' uses the O32 or N64 ABI by default.  You
3254
should set the environment variable `CC' to `cc -n32' before
3255
configuring GCC.
3256
 
3257
   If you want the resulting `gcc' to run on old 32-bit systems with
3258
the MIPS R4400 CPU, you need to ensure that only code for the `mips3'
3259
instruction set architecture (ISA) is generated.  While GCC 3.x does
3260
this correctly, both GCC 2.95 and SGI's MIPSpro `cc' may change the ISA
3261
depending on the machine where GCC is built.  Using one of them as the
3262
bootstrap compiler may result in `mips4' code, which won't run at all
3263
on `mips3'-only systems.  For the test program above, you should see:
3264
 
3265
     test.o: ELF N32 MSB mips-3 ...
3266
 
3267
If you get:
3268
 
3269
     test.o: ELF N32 MSB mips-4 ...
3270
 
3271
instead, you should set the environment variable `CC' to `cc -n32
3272
-mips3' or `gcc -mips3' respectively before configuring GCC.
3273
 
3274
   MIPSpro C 7.4 may cause bootstrap failures, due to a bug when
3275
inlining `memcmp'.  Either add `-U__INLINE_INTRINSICS' to the `CC'
3276
environment variable as a workaround or upgrade to MIPSpro C 7.4.1m.
3277
 
3278
   GCC on IRIX 6 is usually built to support the N32, O32 and N64 ABIs.
3279
If you build GCC on a system that doesn't have the N64 libraries
3280
installed or cannot run 64-bit binaries, you need to configure with
3281
`--disable-multilib' so GCC doesn't try to use them.  This will disable
3282
building the O32 libraries, too.  Look for `/usr/lib64/libc.so.1' to
3283
see if you have the 64-bit libraries installed.
3284
 
3285
   GCC must be configured with GNU `as'.  The latest version, from GNU
3286
binutils 2.20.1, is known to work.  On the other hand, bootstrap fails
3287
with GNU `ld' at least since GNU binutils 2.17.
3288
 
3289
   The `--enable-libgcj' option is disabled by default: IRIX 6 uses a
3290
very low default limit (20480) for the command line length.  Although
3291
`libtool' contains a workaround for this problem, at least the N64
3292
`libgcj' is known not to build despite this, running into an internal
3293
error of the native `ld'.  A sure fix is to increase this limit
3294
(`ncargs') to its maximum of 262144 bytes.  If you have root access,
3295
you can use the `systune' command to do this.
3296
 
3297
   `wchar_t' support in `libstdc++' is not available for old IRIX 6.5.x
3298
releases, x < 19.  The problem cannot be autodetected and in order to
3299
build GCC for such targets you need to configure with
3300
`--disable-wchar_t'.
3301
 
3302
moxie-*-elf
3303
===========
3304
 
3305
The moxie processor.  See `http://moxielogic.org/' for more information
3306
about this processor.
3307
 
3308
powerpc-*-*
3309
===========
3310
 
3311
You can specify a default version for the `-mcpu=CPU_TYPE' switch by
3312
using the configure option `--with-cpu-CPU_TYPE'.
3313
 
3314
   You will need binutils 2.15 or newer for a working GCC.
3315
 
3316
powerpc-*-darwin*
3317
=================
3318
 
3319
PowerPC running Darwin (Mac OS X kernel).
3320
 
3321
   Pre-installed versions of Mac OS X may not include any developer
3322
tools, meaning that you will not be able to build GCC from source.  Tool
3323
binaries are available at
3324
`http://developer.apple.com/darwin/projects/compiler/' (free
3325
registration required).
3326
 
3327
   This version of GCC requires at least cctools-590.36.  The
3328
cctools-590.36 package referenced from
3329
`http://gcc.gnu.org/ml/gcc/2006-03/msg00507.html' will not work on
3330
systems older than 10.3.9 (aka darwin7.9.0).
3331
 
3332
powerpc-*-elf
3333
=============
3334
 
3335
PowerPC system in big endian mode, running System V.4.
3336
 
3337
powerpc*-*-linux-gnu*
3338
=====================
3339
 
3340
PowerPC system in big endian mode running Linux.
3341
 
3342
powerpc-*-netbsd*
3343
=================
3344
 
3345
PowerPC system in big endian mode running NetBSD.
3346
 
3347
powerpc-*-eabisim
3348
=================
3349
 
3350
Embedded PowerPC system in big endian mode for use in running under the
3351
PSIM simulator.
3352
 
3353
powerpc-*-eabi
3354
==============
3355
 
3356
Embedded PowerPC system in big endian mode.
3357
 
3358
powerpcle-*-elf
3359
===============
3360
 
3361
PowerPC system in little endian mode, running System V.4.
3362
 
3363
powerpcle-*-eabisim
3364
===================
3365
 
3366
Embedded PowerPC system in little endian mode for use in running under
3367
the PSIM simulator.
3368
 
3369
powerpcle-*-eabi
3370
================
3371
 
3372
Embedded PowerPC system in little endian mode.
3373
 
3374
rx-*-elf
3375
========
3376
 
3377
The Renesas RX processor.  See
3378
`http://eu.renesas.com/fmwk.jsp?cnt=rx600_series_landing.jsp&fp=/products/mpumcu/rx_family/rx600_series'
3379
for more information about this processor.
3380
 
3381
s390-*-linux*
3382
=============
3383
 
3384
S/390 system running GNU/Linux for S/390.
3385
 
3386
s390x-*-linux*
3387
==============
3388
 
3389
zSeries system (64-bit) running GNU/Linux for zSeries.
3390
 
3391
s390x-ibm-tpf*
3392
==============
3393
 
3394
zSeries system (64-bit) running TPF.  This platform is supported as
3395
cross-compilation target only.
3396
 
3397
*-*-solaris2*
3398
=============
3399
 
3400
Support for Solaris 7 has been obsoleted in GCC 4.5, but can still be
3401
enabled by configuring with `--enable-obsolete'.  Support will be
3402
removed in GCC 4.6.
3403
 
3404
   Sun does not ship a C compiler with Solaris 2, though you can
3405
download the Sun Studio compilers for free from
3406
`http://developers.sun.com/sunstudio/downloads/'.  Alternatively, you
3407
can install a pre-built GCC to bootstrap and install GCC.  See the
3408
binaries page for details.
3409
 
3410
   The Solaris 2 `/bin/sh' will often fail to configure `libstdc++-v3',
3411
`boehm-gc' or `libjava'.  We therefore recommend using the following
3412
initial sequence of commands
3413
 
3414
        % CONFIG_SHELL=/bin/ksh
3415
        % export CONFIG_SHELL
3416
 
3417
and proceed as described in the configure instructions.  In addition we
3418
strongly recommend specifying an absolute path to invoke
3419
`SRCDIR/configure'.
3420
 
3421
   Solaris 2 comes with a number of optional OS packages.  Some of these
3422
are needed to use GCC fully, namely `SUNWarc', `SUNWbtool', `SUNWesu',
3423
`SUNWhea', `SUNWlibm', `SUNWsprot', and `SUNWtoo'.  If you did not
3424
install all optional packages when installing Solaris 2, you will need
3425
to verify that the packages that GCC needs are installed.
3426
 
3427
   To check whether an optional package is installed, use the `pkginfo'
3428
command.  To add an optional package, use the `pkgadd' command.  For
3429
further details, see the Solaris 2 documentation.
3430
 
3431
   Trying to use the linker and other tools in `/usr/ucb' to install
3432
GCC has been observed to cause trouble.  For example, the linker may
3433
hang indefinitely.  The fix is to remove `/usr/ucb' from your `PATH'.
3434
 
3435
   The build process works more smoothly with the legacy Sun tools so,
3436
if you have `/usr/xpg4/bin' in your `PATH', we recommend that you place
3437
`/usr/bin' before `/usr/xpg4/bin' for the duration of the build.
3438
 
3439
   We recommend the use of the Sun assembler or the GNU assembler, in
3440
conjunction with the Sun linker.  The GNU `as' versions included in
3441
Solaris 10, from GNU binutils 2.15, and Solaris 11, from GNU binutils
3442
2.19, are known to work.  They can be found in `/usr/sfw/bin/gas'.
3443
Current versions of GNU binutils (2.20.1) are known to work as well.
3444
Note that your mileage may vary if you use a combination of the GNU
3445
tools and the Sun tools: while the combination GNU `as' + Sun `ld'
3446
should reasonably work, the reverse combination Sun `as' + GNU `ld' is
3447
known to cause memory corruption at runtime in some cases for C++
3448
programs.  GNU `ld' usually works as well, although the version
3449
included in Solaris 10 cannot be used due to several bugs.  Again, the
3450
current version (2.20.1) is known to work, but generally lacks platform
3451
specific features, so better stay with Sun `ld'.
3452
 
3453
   Sun bug 4296832 turns up when compiling X11 headers with GCC 2.95 or
3454
newer: `g++' will complain that types are missing.  These headers
3455
assume that omitting the type means `int'; this assumption worked for
3456
C90 but is wrong for C++, and is now wrong for C99 also.
3457
 
3458
   `g++' accepts such (invalid) constructs with the option
3459
`-fpermissive'; it will assume that any missing type is `int' (as
3460
defined by C90).
3461
 
3462
   There are patches for Solaris 7 (108376-21 or newer for SPARC,
3463
108377-20 for Intel), and Solaris 8 (108652-24 or newer for SPARC,
3464
108653-22 for Intel) that fix this bug.
3465
 
3466
   Sun bug 4927647 sometimes causes random spurious testsuite failures
3467
related to missing diagnostic output.  This bug doesn't affect GCC
3468
itself, rather it is a kernel bug triggered by the `expect' program
3469
which is used only by the GCC testsuite driver.  When the bug causes
3470
the `expect' program to miss anticipated output, extra testsuite
3471
failures appear.
3472
 
3473
   There are patches for Solaris 8 (117350-12 or newer for SPARC,
3474
117351-12 or newer for Intel) and Solaris 9 (117171-11 or newer for
3475
SPARC, 117172-11 or newer for Intel) that address this problem.
3476
 
3477
sparc-sun-solaris2*
3478
===================
3479
 
3480
When GCC is configured to use GNU binutils 2.14 or later, the binaries
3481
produced are smaller than the ones produced using Sun's native tools;
3482
this difference is quite significant for binaries containing debugging
3483
information.
3484
 
3485
   Starting with Solaris 7, the operating system is capable of executing
3486
64-bit SPARC V9 binaries.  GCC 3.1 and later properly supports this;
3487
the `-m64' option enables 64-bit code generation.  However, if all you
3488
want is code tuned for the UltraSPARC CPU, you should try the
3489
`-mtune=ultrasparc' option instead, which produces code that, unlike
3490
full 64-bit code, can still run on non-UltraSPARC machines.
3491
 
3492
   When configuring on a Solaris 7 or later system that is running a
3493
kernel that supports only 32-bit binaries, one must configure with
3494
`--disable-multilib', since we will not be able to build the 64-bit
3495
target libraries.
3496
 
3497
   GCC 3.3 and GCC 3.4 trigger code generation bugs in earlier versions
3498
of the GNU compiler (especially GCC 3.0.x versions), which lead to the
3499
miscompilation of the stage1 compiler and the subsequent failure of the
3500
bootstrap process.  A workaround is to use GCC 3.2.3 as an intermediary
3501
stage, i.e. to bootstrap that compiler with the base compiler and then
3502
use it to bootstrap the final compiler.
3503
 
3504
   GCC 3.4 triggers a code generation bug in versions 5.4 (Sun ONE
3505
Studio 7) and 5.5 (Sun ONE Studio 8) of the Sun compiler, which causes
3506
a bootstrap failure in form of a miscompilation of the stage1 compiler
3507
by the Sun compiler.  This is Sun bug 4974440.  This is fixed with
3508
patch 112760-07.
3509
 
3510
   GCC 3.4 changed the default debugging format from Stabs to DWARF-2
3511
for 32-bit code on Solaris 7 and later.  If you use the Sun assembler,
3512
this change apparently runs afoul of Sun bug 4910101 (which is
3513
referenced as an x86-only problem by Sun, probably because they do not
3514
use DWARF-2).  A symptom of the problem is that you cannot compile C++
3515
programs like `groff' 1.19.1 without getting messages similar to the
3516
following:
3517
 
3518
     ld: warning: relocation error: R_SPARC_UA32: ...
3519
       external symbolic relocation against non-allocatable section
3520
       .debug_info cannot be processed at runtime: relocation ignored.
3521
 
3522
To work around this problem, compile with `-gstabs+' instead of plain
3523
`-g'.
3524
 
3525
   When configuring the GNU Multiple Precision Library (GMP) or the MPFR
3526
library on a Solaris 7 or later system, the canonical target triplet
3527
must be specified as the `build' parameter on the configure line.  This
3528
triplet can be obtained by invoking `./config.guess' in the toplevel
3529
source directory of GCC (and not that of GMP or MPFR).  For example on
3530
a Solaris 7 system:
3531
 
3532
        % ./configure --build=sparc-sun-solaris2.7 --prefix=xxx
3533
 
3534
sparc-sun-solaris2.7
3535
====================
3536
 
3537
_Note_ that this configuration has been obsoleted in GCC 4.5, and will
3538
be removed in GCC 4.6.
3539
 
3540
   Sun patch 107058-01 (1999-01-13) for Solaris 7/SPARC triggers a bug
3541
in the dynamic linker.  This problem (Sun bug 4210064) affects GCC 2.8
3542
and later, including all EGCS releases.  Sun formerly recommended
3543
107058-01 for all Solaris 7 users, but around 1999-09-01 it started to
3544
recommend it only for people who use Sun's compilers.
3545
 
3546
   Here are some workarounds to this problem:
3547
   * Do not install Sun patch 107058-01 until after Sun releases a
3548
     complete patch for bug 4210064.  This is the simplest course to
3549
     take, unless you must also use Sun's C compiler.  Unfortunately
3550
     107058-01 is preinstalled on some new Solaris 7-based hosts, so
3551
     you may have to back it out.
3552
 
3553
   * Copy the original, unpatched Solaris 7 `/usr/ccs/bin/as' into
3554
     `/usr/local/libexec/gcc/sparc-sun-solaris2.7/3.4/as', adjusting
3555
     the latter name to fit your local conventions and software version
3556
     numbers.
3557
 
3558
   * Install Sun patch 106950-03 (1999-05-25) or later.  Nobody with
3559
     both 107058-01 and 106950-03 installed has reported the bug with
3560
     GCC and Sun's dynamic linker.  This last course of action is
3561
     riskiest, for two reasons.  First, you must install 106950 on all
3562
     hosts that run code generated by GCC; it doesn't suffice to
3563
     install it only on the hosts that run GCC itself.  Second, Sun
3564
     says that 106950-03 is only a partial fix for bug 4210064, but Sun
3565
     doesn't know whether the partial fix is adequate for GCC.
3566
     Revision -08 or later should fix the bug.  The current (as of
3567
     2004-05-23) revision is -24, and is included in the Solaris 7
3568
     Recommended Patch Cluster.
3569
 
3570
   GCC 3.3 triggers a bug in version 5.0 Alpha 03/27/98 of the Sun
3571
assembler, which causes a bootstrap failure when linking the 64-bit
3572
shared version of `libgcc'.  A typical error message is:
3573
 
3574
     ld: fatal: relocation error: R_SPARC_32: file libgcc/sparcv9/_muldi3.o:
3575
       symbol :  offset 0xffffffff7ec133e7 is non-aligned.
3576
 
3577
This bug has been fixed in the final 5.0 version of the assembler.
3578
 
3579
   A similar problem was reported for version Sun WorkShop 6 99/08/18
3580
of the Sun assembler, which causes a bootstrap failure with GCC 4.0.0:
3581
 
3582
     ld: fatal: relocation error: R_SPARC_DISP32:
3583
       file .libs/libstdc++.lax/libsupc++convenience.a/vterminate.o:
3584
         symbol : offset 0xfccd33ad is non-aligned
3585
 
3586
This bug has been fixed in more recent revisions of the assembler.
3587
 
3588
sparc-sun-solaris2.10
3589
=====================
3590
 
3591
There is a bug in older versions of the Sun assembler which breaks
3592
thread-local storage (TLS).  A typical error message is
3593
 
3594
     ld: fatal: relocation error: R_SPARC_TLS_LE_HIX22: file /var/tmp//ccamPA1v.o:
3595
       symbol : bad symbol type SECT: symbol type must be TLS
3596
 
3597
This bug is fixed in Sun patch 118683-03 or later.
3598
 
3599
sparc-*-linux*
3600
==============
3601
 
3602
GCC versions 3.0 and higher require binutils 2.11.2 and glibc 2.2.4 or
3603
newer on this platform.  All earlier binutils and glibc releases
3604
mishandled unaligned relocations on `sparc-*-*' targets.
3605
 
3606
sparc64-*-solaris2*
3607
===================
3608
 
3609
When configuring the GNU Multiple Precision Library (GMP) or the MPFR
3610
library, the canonical target triplet must be specified as the `build'
3611
parameter on the configure line.  For example on a Solaris 7 system:
3612
 
3613
        % ./configure --build=sparc64-sun-solaris2.7 --prefix=xxx
3614
 
3615
   The following compiler flags must be specified in the configure step
3616
in order to bootstrap this target with the Sun compiler:
3617
 
3618
        % CC="cc -xarch=v9 -xildoff" SRCDIR/configure [OPTIONS] [TARGET]
3619
 
3620
`-xarch=v9' specifies the SPARC-V9 architecture to the Sun toolchain
3621
and `-xildoff' turns off the incremental linker.
3622
 
3623
sparcv9-*-solaris2*
3624
===================
3625
 
3626
This is a synonym for `sparc64-*-solaris2*'.
3627
 
3628
*-*-vxworks*
3629
============
3630
 
3631
Support for VxWorks is in flux.  At present GCC supports _only_ the
3632
very recent VxWorks 5.5 (aka Tornado 2.2) release, and only on PowerPC.
3633
We welcome patches for other architectures supported by VxWorks 5.5.
3634
Support for VxWorks AE would also be welcome; we believe this is merely
3635
a matter of writing an appropriate "configlette" (see below).  We are
3636
not interested in supporting older, a.out or COFF-based, versions of
3637
VxWorks in GCC 3.
3638
 
3639
   VxWorks comes with an older version of GCC installed in
3640
`$WIND_BASE/host'; we recommend you do not overwrite it.  Choose an
3641
installation PREFIX entirely outside $WIND_BASE.  Before running
3642
`configure', create the directories `PREFIX' and `PREFIX/bin'.  Link or
3643
copy the appropriate assembler, linker, etc. into `PREFIX/bin', and set
3644
your PATH to include that directory while running both `configure' and
3645
`make'.
3646
 
3647
   You must give `configure' the `--with-headers=$WIND_BASE/target/h'
3648
switch so that it can find the VxWorks system headers.  Since VxWorks
3649
is a cross compilation target only, you must also specify
3650
`--target=TARGET'.  `configure' will attempt to create the directory
3651
`PREFIX/TARGET/sys-include' and copy files into it; make sure the user
3652
running `configure' has sufficient privilege to do so.
3653
 
3654
   GCC's exception handling runtime requires a special "configlette"
3655
module, `contrib/gthr_supp_vxw_5x.c'.  Follow the instructions in that
3656
file to add the module to your kernel build.  (Future versions of
3657
VxWorks will incorporate this module.)
3658
 
3659
x86_64-*-*, amd64-*-*
3660
=====================
3661
 
3662
GCC supports the x86-64 architecture implemented by the AMD64 processor
3663
(amd64-*-* is an alias for x86_64-*-*) on GNU/Linux, FreeBSD and NetBSD.
3664
On GNU/Linux the default is a bi-arch compiler which is able to generate
3665
both 64-bit x86-64 and 32-bit x86 code (via the `-m32' switch).
3666
 
3667
xtensa*-*-elf
3668
=============
3669
 
3670
This target is intended for embedded Xtensa systems using the `newlib'
3671
C library.  It uses ELF but does not support shared objects.
3672
Designed-defined instructions specified via the Tensilica Instruction
3673
Extension (TIE) language are only supported through inline assembly.
3674
 
3675
   The Xtensa configuration information must be specified prior to
3676
building GCC.  The `include/xtensa-config.h' header file contains the
3677
configuration information.  If you created your own Xtensa
3678
configuration with the Xtensa Processor Generator, the downloaded files
3679
include a customized copy of this header file, which you can use to
3680
replace the default header file.
3681
 
3682
xtensa*-*-linux*
3683
================
3684
 
3685
This target is for Xtensa systems running GNU/Linux.  It supports ELF
3686
shared objects and the GNU C library (glibc).  It also generates
3687
position-independent code (PIC) regardless of whether the `-fpic' or
3688
`-fPIC' options are used.  In other respects, this target is the same
3689
as the `xtensa*-*-elf' target.
3690
 
3691
Microsoft Windows
3692
=================
3693
 
3694
Intel 16-bit versions
3695
---------------------
3696
 
3697
The 16-bit versions of Microsoft Windows, such as Windows 3.1, are not
3698
supported.
3699
 
3700
   However, the 32-bit port has limited support for Microsoft Windows
3701
3.11 in the Win32s environment, as a target only.  See below.
3702
 
3703
Intel 32-bit versions
3704
---------------------
3705
 
3706
The 32-bit versions of Windows, including Windows 95, Windows NT,
3707
Windows XP, and Windows Vista, are supported by several different target
3708
platforms.  These targets differ in which Windows subsystem they target
3709
and which C libraries are used.
3710
 
3711
   * Cygwin *-*-cygwin: Cygwin provides a user-space Linux API
3712
     emulation layer in the Win32 subsystem.
3713
 
3714
   * Interix *-*-interix: The Interix subsystem provides native support
3715
     for POSIX.
3716
 
3717
   * MinGW *-*-mingw32: MinGW is a native GCC port for the Win32
3718
     subsystem that provides a subset of POSIX.
3719
 
3720
   * MKS i386-pc-mks: NuTCracker from MKS.  See
3721
     `http://www.mkssoftware.com/' for more information.
3722
 
3723
Intel 64-bit versions
3724
---------------------
3725
 
3726
GCC contains support for x86-64 using the mingw-w64 runtime library,
3727
available from `http://mingw-w64.sourceforge.net/'.  This library
3728
should be used with the target triple x86_64-pc-mingw32.
3729
 
3730
   Presently Windows for Itanium is not supported.
3731
 
3732
Windows CE
3733
----------
3734
 
3735
Windows CE is supported as a target only on ARM (arm-wince-pe), Hitachi
3736
SuperH (sh-wince-pe), and MIPS (mips-wince-pe).
3737
 
3738
Other Windows Platforms
3739
-----------------------
3740
 
3741
GCC no longer supports Windows NT on the Alpha or PowerPC.
3742
 
3743
   GCC no longer supports the Windows POSIX subsystem.  However, it does
3744
support the Interix subsystem.  See above.
3745
 
3746
   Old target names including *-*-winnt and *-*-windowsnt are no longer
3747
used.
3748
 
3749
   PW32 (i386-pc-pw32) support was never completed, and the project
3750
seems to be inactive.  See `http://pw32.sourceforge.net/' for more
3751
information.
3752
 
3753
   UWIN support has been removed due to a lack of maintenance.
3754
 
3755
*-*-cygwin
3756
==========
3757
 
3758
Ports of GCC are included with the Cygwin environment.
3759
 
3760
   GCC will build under Cygwin without modification; it does not build
3761
with Microsoft's C++ compiler and there are no plans to make it do so.
3762
 
3763
   The Cygwin native compiler can be configured to target any 32-bit x86
3764
cpu architecture desired; the default is i686-pc-cygwin.  It should be
3765
used with as up-to-date a version of binutils as possible; use either
3766
the latest official GNU binutils release in the Cygwin distribution, or
3767
version 2.20 or above if building your own.
3768
 
3769
*-*-interix
3770
===========
3771
 
3772
The Interix target is used by OpenNT, Interix, Services For UNIX (SFU),
3773
and Subsystem for UNIX-based Applications (SUA).  Applications compiled
3774
with this target run in the Interix subsystem, which is separate from
3775
the Win32 subsystem.  This target was last known to work in GCC 3.3.
3776
 
3777
   For more information, see `http://www.interix.com/'.
3778
 
3779
*-*-mingw32
3780
===========
3781
 
3782
GCC will build with and support only MinGW runtime 3.12 and later.
3783
Earlier versions of headers are incompatible with the new default
3784
semantics of `extern inline' in `-std=c99' and `-std=gnu99' modes.
3785
 
3786
Older systems
3787
=============
3788
 
3789
GCC contains support files for many older (1980s and early 1990s) Unix
3790
variants.  For the most part, support for these systems has not been
3791
deliberately removed, but it has not been maintained for several years
3792
and may suffer from bitrot.
3793
 
3794
   Starting with GCC 3.1, each release has a list of "obsoleted"
3795
systems.  Support for these systems is still present in that release,
3796
but `configure' will fail unless the `--enable-obsolete' option is
3797
given.  Unless a maintainer steps forward, support for these systems
3798
will be removed from the next release of GCC.
3799
 
3800
   Support for old systems as hosts for GCC can cause problems if the
3801
workarounds for compiler, library and operating system bugs affect the
3802
cleanliness or maintainability of the rest of GCC.  In some cases, to
3803
bring GCC up on such a system, if still possible with current GCC, may
3804
require first installing an old version of GCC which did work on that
3805
system, and using it to compile a more recent GCC, to avoid bugs in the
3806
vendor compiler.  Old releases of GCC 1 and GCC 2 are available in the
3807
`old-releases' directory on the GCC mirror sites.  Header bugs may
3808
generally be avoided using `fixincludes', but bugs or deficiencies in
3809
libraries and the operating system may still cause problems.
3810
 
3811
   Support for older systems as targets for cross-compilation is less
3812
problematic than support for them as hosts for GCC; if an enthusiast
3813
wishes to make such a target work again (including resurrecting any of
3814
the targets that never worked with GCC 2, starting from the last
3815
version before they were removed), patches following the usual
3816
requirements would be likely to be accepted, since they should not
3817
affect the support for more modern targets.
3818
 
3819
   For some systems, old versions of GNU binutils may also be useful,
3820
and are available from `pub/binutils/old-releases' on sourceware.org
3821
mirror sites.
3822
 
3823
   Some of the information on specific systems above relates to such
3824
older systems, but much of the information about GCC on such systems
3825
(which may no longer be applicable to current GCC) is to be found in
3826
the GCC texinfo manual.
3827
 
3828
all ELF targets (SVR4, Solaris 2, etc.)
3829
=======================================
3830
 
3831
C++ support is significantly better on ELF targets if you use the GNU
3832
linker; duplicate copies of inlines, vtables and template
3833
instantiations will be discarded automatically.
3834
 
3835

3836
File: gccinstall.info,  Node: Old,  Next: GNU Free Documentation License,  Prev: Specific,  Up: Top
3837
 
3838
10 Old installation documentation
3839
*********************************
3840
 
3841
   Note most of this information is out of date and superseded by the
3842
previous chapters of this manual.  It is provided for historical
3843
reference only, because of a lack of volunteers to merge it into the
3844
main manual.
3845
 
3846
* Menu:
3847
 
3848
* Configurations::    Configurations Supported by GCC.
3849
 
3850
   Here is the procedure for installing GCC on a GNU or Unix system.
3851
 
3852
  1. If you have chosen a configuration for GCC which requires other GNU
3853
     tools (such as GAS or the GNU linker) instead of the standard
3854
     system tools, install the required tools in the build directory
3855
     under the names `as', `ld' or whatever is appropriate.
3856
 
3857
     Alternatively, you can do subsequent compilation using a value of
3858
     the `PATH' environment variable such that the necessary GNU tools
3859
     come before the standard system tools.
3860
 
3861
  2. Specify the host, build and target machine configurations.  You do
3862
     this when you run the `configure' script.
3863
 
3864
     The "build" machine is the system which you are using, the "host"
3865
     machine is the system where you want to run the resulting compiler
3866
     (normally the build machine), and the "target" machine is the
3867
     system for which you want the compiler to generate code.
3868
 
3869
     If you are building a compiler to produce code for the machine it
3870
     runs on (a native compiler), you normally do not need to specify
3871
     any operands to `configure'; it will try to guess the type of
3872
     machine you are on and use that as the build, host and target
3873
     machines.  So you don't need to specify a configuration when
3874
     building a native compiler unless `configure' cannot figure out
3875
     what your configuration is or guesses wrong.
3876
 
3877
     In those cases, specify the build machine's "configuration name"
3878
     with the `--host' option; the host and target will default to be
3879
     the same as the host machine.
3880
 
3881
     Here is an example:
3882
 
3883
          ./configure --host=sparc-sun-sunos4.1
3884
 
3885
     A configuration name may be canonical or it may be more or less
3886
     abbreviated.
3887
 
3888
     A canonical configuration name has three parts, separated by
3889
     dashes.  It looks like this: `CPU-COMPANY-SYSTEM'.  (The three
3890
     parts may themselves contain dashes; `configure' can figure out
3891
     which dashes serve which purpose.)  For example,
3892
     `m68k-sun-sunos4.1' specifies a Sun 3.
3893
 
3894
     You can also replace parts of the configuration by nicknames or
3895
     aliases.  For example, `sun3' stands for `m68k-sun', so
3896
     `sun3-sunos4.1' is another way to specify a Sun 3.
3897
 
3898
     You can specify a version number after any of the system types,
3899
     and some of the CPU types.  In most cases, the version is
3900
     irrelevant, and will be ignored.  So you might as well specify the
3901
     version if you know it.
3902
 
3903
     See *note Configurations::, for a list of supported configuration
3904
     names and notes on many of the configurations.  You should check
3905
     the notes in that section before proceeding any further with the
3906
     installation of GCC.
3907
 
3908
 
3909

3910
File: gccinstall.info,  Node: Configurations,  Up: Old
3911
 
3912
10.1 Configurations Supported by GCC
3913
====================================
3914
 
3915
   Here are the possible CPU types:
3916
 
3917
     1750a, a29k, alpha, arm, avr, cN, clipper, dsp16xx, elxsi, fr30,
3918
     h8300, hppa1.0, hppa1.1, i370, i386, i486, i586, i686, i786, i860,
3919
     i960, ip2k, m32r, m68000, m68k, m6811, m6812, m88k, mcore, mips,
3920
     mipsel, mips64, mips64el, mn10200, mn10300, ns32k, pdp11, powerpc,
3921
     powerpcle, romp, rs6000, sh, sparc, sparclite, sparc64, v850, vax,
3922
     we32k.
3923
 
3924
   Here are the recognized company names.  As you can see, customary
3925
abbreviations are used rather than the longer official names.
3926
 
3927
     acorn, alliant, altos, apollo, apple, att, bull, cbm, convergent,
3928
     convex, crds, dec, dg, dolphin, elxsi, encore, harris, hitachi,
3929
     hp, ibm, intergraph, isi, mips, motorola, ncr, next, ns, omron,
3930
     plexus, sequent, sgi, sony, sun, tti, unicom, wrs.
3931
 
3932
   The company name is meaningful only to disambiguate when the rest of
3933
the information supplied is insufficient.  You can omit it, writing
3934
just `CPU-SYSTEM', if it is not needed.  For example, `vax-ultrix4.2'
3935
is equivalent to `vax-dec-ultrix4.2'.
3936
 
3937
   Here is a list of system types:
3938
 
3939
     386bsd, aix, acis, amigaos, aos, aout, aux, bosx, bsd, clix, coff,
3940
     ctix, cxux, dgux, dynix, ebmon, ecoff, elf, esix, freebsd, hms,
3941
     genix, gnu, linux, linux-gnu, hiux, hpux, iris, irix, isc, luna,
3942
     lynxos, mach, minix, msdos, mvs, netbsd, newsos, nindy, ns, osf,
3943
     osfrose, ptx, riscix, riscos, rtu, sco, sim, solaris, sunos, sym,
3944
     sysv, udi, ultrix, unicos, uniplus, unos, vms, vsta, vxworks,
3945
     winnt, xenix.
3946
 
3947
You can omit the system type; then `configure' guesses the operating
3948
system from the CPU and company.
3949
 
3950
   You can add a version number to the system type; this may or may not
3951
make a difference.  For example, you can write `bsd4.3' or `bsd4.4' to
3952
distinguish versions of BSD.  In practice, the version number is most
3953
needed for `sysv3' and `sysv4', which are often treated differently.
3954
 
3955
   `linux-gnu' is the canonical name for the GNU/Linux target; however
3956
GCC will also accept `linux'.  The version of the kernel in use is not
3957
relevant on these systems.  A suffix such as `libc1' or `aout'
3958
distinguishes major versions of the C library; all of the suffixed
3959
versions are obsolete.
3960
 
3961
   If you specify an impossible combination such as `i860-dg-vms', then
3962
you may get an error message from `configure', or it may ignore part of
3963
the information and do the best it can with the rest.  `configure'
3964
always prints the canonical name for the alternative that it used.  GCC
3965
does not support all possible alternatives.
3966
 
3967
   Often a particular model of machine has a name.  Many machine names
3968
are recognized as aliases for CPU/company combinations.  Thus, the
3969
machine name `sun3', mentioned above, is an alias for `m68k-sun'.
3970
Sometimes we accept a company name as a machine name, when the name is
3971
popularly used for a particular machine.  Here is a table of the known
3972
machine names:
3973
 
3974
     3300, 3b1, 3bN, 7300, altos3068, altos, apollo68, att-7300,
3975
     balance, convex-cN, crds, decstation-3100, decstation, delta,
3976
     encore, fx2800, gmicro, hp7NN, hp8NN, hp9k2NN, hp9k3NN, hp9k7NN,
3977
     hp9k8NN, iris4d, iris, isi68, m3230, magnum, merlin, miniframe,
3978
     mmax, news-3600, news800, news, next, pbd, pc532, pmax, powerpc,
3979
     powerpcle, ps2, risc-news, rtpc, sun2, sun386i, sun386, sun3,
3980
     sun4, symmetry, tower-32, tower.
3981
 
3982
Remember that a machine name specifies both the cpu type and the company
3983
name.  If you want to install your own homemade configuration files,
3984
you can use `local' as the company name to access them.  If you use
3985
configuration `CPU-local', the configuration name without the cpu prefix
3986
is used to form the configuration file names.
3987
 
3988
   Thus, if you specify `m68k-local', configuration uses files
3989
`m68k.md', `local.h', `m68k.c', `xm-local.h', `t-local', and `x-local',
3990
all in the directory `config/m68k'.
3991
 
3992

3993
File: gccinstall.info,  Node: GNU Free Documentation License,  Next: Concept Index,  Prev: Old,  Up: Top
3994
 
3995
GNU Free Documentation License
3996
******************************
3997
 
3998
                      Version 1.2, November 2002
3999
 
4000
     Copyright (C) 2000,2001,2002 Free Software Foundation, Inc.
4001
     51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
4002
 
4003
     Everyone is permitted to copy and distribute verbatim copies
4004
     of this license document, but changing it is not allowed.
4005
 
4006
  0. PREAMBLE
4007
 
4008
     The purpose of this License is to make a manual, textbook, or other
4009
     functional and useful document "free" in the sense of freedom: to
4010
     assure everyone the effective freedom to copy and redistribute it,
4011
     with or without modifying it, either commercially or
4012
     noncommercially.  Secondarily, this License preserves for the
4013
     author and publisher a way to get credit for their work, while not
4014
     being considered responsible for modifications made by others.
4015
 
4016
     This License is a kind of "copyleft", which means that derivative
4017
     works of the document must themselves be free in the same sense.
4018
     It complements the GNU General Public License, which is a copyleft
4019
     license designed for free software.
4020
 
4021
     We have designed this License in order to use it for manuals for
4022
     free software, because free software needs free documentation: a
4023
     free program should come with manuals providing the same freedoms
4024
     that the software does.  But this License is not limited to
4025
     software manuals; it can be used for any textual work, regardless
4026
     of subject matter or whether it is published as a printed book.
4027
     We recommend this License principally for works whose purpose is
4028
     instruction or reference.
4029
 
4030
  1. APPLICABILITY AND DEFINITIONS
4031
 
4032
     This License applies to any manual or other work, in any medium,
4033
     that contains a notice placed by the copyright holder saying it
4034
     can be distributed under the terms of this License.  Such a notice
4035
     grants a world-wide, royalty-free license, unlimited in duration,
4036
     to use that work under the conditions stated herein.  The
4037
     "Document", below, refers to any such manual or work.  Any member
4038
     of the public is a licensee, and is addressed as "you".  You
4039
     accept the license if you copy, modify or distribute the work in a
4040
     way requiring permission under copyright law.
4041
 
4042
     A "Modified Version" of the Document means any work containing the
4043
     Document or a portion of it, either copied verbatim, or with
4044
     modifications and/or translated into another language.
4045
 
4046
     A "Secondary Section" is a named appendix or a front-matter section
4047
     of the Document that deals exclusively with the relationship of the
4048
     publishers or authors of the Document to the Document's overall
4049
     subject (or to related matters) and contains nothing that could
4050
     fall directly within that overall subject.  (Thus, if the Document
4051
     is in part a textbook of mathematics, a Secondary Section may not
4052
     explain any mathematics.)  The relationship could be a matter of
4053
     historical connection with the subject or with related matters, or
4054
     of legal, commercial, philosophical, ethical or political position
4055
     regarding them.
4056
 
4057
     The "Invariant Sections" are certain Secondary Sections whose
4058
     titles are designated, as being those of Invariant Sections, in
4059
     the notice that says that the Document is released under this
4060
     License.  If a section does not fit the above definition of
4061
     Secondary then it is not allowed to be designated as Invariant.
4062
     The Document may contain zero Invariant Sections.  If the Document
4063
     does not identify any Invariant Sections then there are none.
4064
 
4065
     The "Cover Texts" are certain short passages of text that are
4066
     listed, as Front-Cover Texts or Back-Cover Texts, in the notice
4067
     that says that the Document is released under this License.  A
4068
     Front-Cover Text may be at most 5 words, and a Back-Cover Text may
4069
     be at most 25 words.
4070
 
4071
     A "Transparent" copy of the Document means a machine-readable copy,
4072
     represented in a format whose specification is available to the
4073
     general public, that is suitable for revising the document
4074
     straightforwardly with generic text editors or (for images
4075
     composed of pixels) generic paint programs or (for drawings) some
4076
     widely available drawing editor, and that is suitable for input to
4077
     text formatters or for automatic translation to a variety of
4078
     formats suitable for input to text formatters.  A copy made in an
4079
     otherwise Transparent file format whose markup, or absence of
4080
     markup, has been arranged to thwart or discourage subsequent
4081
     modification by readers is not Transparent.  An image format is
4082
     not Transparent if used for any substantial amount of text.  A
4083
     copy that is not "Transparent" is called "Opaque".
4084
 
4085
     Examples of suitable formats for Transparent copies include plain
4086
     ASCII without markup, Texinfo input format, LaTeX input format,
4087
     SGML or XML using a publicly available DTD, and
4088
     standard-conforming simple HTML, PostScript or PDF designed for
4089
     human modification.  Examples of transparent image formats include
4090
     PNG, XCF and JPG.  Opaque formats include proprietary formats that
4091
     can be read and edited only by proprietary word processors, SGML or
4092
     XML for which the DTD and/or processing tools are not generally
4093
     available, and the machine-generated HTML, PostScript or PDF
4094
     produced by some word processors for output purposes only.
4095
 
4096
     The "Title Page" means, for a printed book, the title page itself,
4097
     plus such following pages as are needed to hold, legibly, the
4098
     material this License requires to appear in the title page.  For
4099
     works in formats which do not have any title page as such, "Title
4100
     Page" means the text near the most prominent appearance of the
4101
     work's title, preceding the beginning of the body of the text.
4102
 
4103
     A section "Entitled XYZ" means a named subunit of the Document
4104
     whose title either is precisely XYZ or contains XYZ in parentheses
4105
     following text that translates XYZ in another language.  (Here XYZ
4106
     stands for a specific section name mentioned below, such as
4107
     "Acknowledgements", "Dedications", "Endorsements", or "History".)
4108
     To "Preserve the Title" of such a section when you modify the
4109
     Document means that it remains a section "Entitled XYZ" according
4110
     to this definition.
4111
 
4112
     The Document may include Warranty Disclaimers next to the notice
4113
     which states that this License applies to the Document.  These
4114
     Warranty Disclaimers are considered to be included by reference in
4115
     this License, but only as regards disclaiming warranties: any other
4116
     implication that these Warranty Disclaimers may have is void and
4117
     has no effect on the meaning of this License.
4118
 
4119
  2. VERBATIM COPYING
4120
 
4121
     You may copy and distribute the Document in any medium, either
4122
     commercially or noncommercially, provided that this License, the
4123
     copyright notices, and the license notice saying this License
4124
     applies to the Document are reproduced in all copies, and that you
4125
     add no other conditions whatsoever to those of this License.  You
4126
     may not use technical measures to obstruct or control the reading
4127
     or further copying of the copies you make or distribute.  However,
4128
     you may accept compensation in exchange for copies.  If you
4129
     distribute a large enough number of copies you must also follow
4130
     the conditions in section 3.
4131
 
4132
     You may also lend copies, under the same conditions stated above,
4133
     and you may publicly display copies.
4134
 
4135
  3. COPYING IN QUANTITY
4136
 
4137
     If you publish printed copies (or copies in media that commonly
4138
     have printed covers) of the Document, numbering more than 100, and
4139
     the Document's license notice requires Cover Texts, you must
4140
     enclose the copies in covers that carry, clearly and legibly, all
4141
     these Cover Texts: Front-Cover Texts on the front cover, and
4142
     Back-Cover Texts on the back cover.  Both covers must also clearly
4143
     and legibly identify you as the publisher of these copies.  The
4144
     front cover must present the full title with all words of the
4145
     title equally prominent and visible.  You may add other material
4146
     on the covers in addition.  Copying with changes limited to the
4147
     covers, as long as they preserve the title of the Document and
4148
     satisfy these conditions, can be treated as verbatim copying in
4149
     other respects.
4150
 
4151
     If the required texts for either cover are too voluminous to fit
4152
     legibly, you should put the first ones listed (as many as fit
4153
     reasonably) on the actual cover, and continue the rest onto
4154
     adjacent pages.
4155
 
4156
     If you publish or distribute Opaque copies of the Document
4157
     numbering more than 100, you must either include a
4158
     machine-readable Transparent copy along with each Opaque copy, or
4159
     state in or with each Opaque copy a computer-network location from
4160
     which the general network-using public has access to download
4161
     using public-standard network protocols a complete Transparent
4162
     copy of the Document, free of added material.  If you use the
4163
     latter option, you must take reasonably prudent steps, when you
4164
     begin distribution of Opaque copies in quantity, to ensure that
4165
     this Transparent copy will remain thus accessible at the stated
4166
     location until at least one year after the last time you
4167
     distribute an Opaque copy (directly or through your agents or
4168
     retailers) of that edition to the public.
4169
 
4170
     It is requested, but not required, that you contact the authors of
4171
     the Document well before redistributing any large number of
4172
     copies, to give them a chance to provide you with an updated
4173
     version of the Document.
4174
 
4175
  4. MODIFICATIONS
4176
 
4177
     You may copy and distribute a Modified Version of the Document
4178
     under the conditions of sections 2 and 3 above, provided that you
4179
     release the Modified Version under precisely this License, with
4180
     the Modified Version filling the role of the Document, thus
4181
     licensing distribution and modification of the Modified Version to
4182
     whoever possesses a copy of it.  In addition, you must do these
4183
     things in the Modified Version:
4184
 
4185
       A. Use in the Title Page (and on the covers, if any) a title
4186
          distinct from that of the Document, and from those of
4187
          previous versions (which should, if there were any, be listed
4188
          in the History section of the Document).  You may use the
4189
          same title as a previous version if the original publisher of
4190
          that version gives permission.
4191
 
4192
       B. List on the Title Page, as authors, one or more persons or
4193
          entities responsible for authorship of the modifications in
4194
          the Modified Version, together with at least five of the
4195
          principal authors of the Document (all of its principal
4196
          authors, if it has fewer than five), unless they release you
4197
          from this requirement.
4198
 
4199
       C. State on the Title page the name of the publisher of the
4200
          Modified Version, as the publisher.
4201
 
4202
       D. Preserve all the copyright notices of the Document.
4203
 
4204
       E. Add an appropriate copyright notice for your modifications
4205
          adjacent to the other copyright notices.
4206
 
4207
       F. Include, immediately after the copyright notices, a license
4208
          notice giving the public permission to use the Modified
4209
          Version under the terms of this License, in the form shown in
4210
          the Addendum below.
4211
 
4212
       G. Preserve in that license notice the full lists of Invariant
4213
          Sections and required Cover Texts given in the Document's
4214
          license notice.
4215
 
4216
       H. Include an unaltered copy of this License.
4217
 
4218
       I. Preserve the section Entitled "History", Preserve its Title,
4219
          and add to it an item stating at least the title, year, new
4220
          authors, and publisher of the Modified Version as given on
4221
          the Title Page.  If there is no section Entitled "History" in
4222
          the Document, create one stating the title, year, authors,
4223
          and publisher of the Document as given on its Title Page,
4224
          then add an item describing the Modified Version as stated in
4225
          the previous sentence.
4226
 
4227
       J. Preserve the network location, if any, given in the Document
4228
          for public access to a Transparent copy of the Document, and
4229
          likewise the network locations given in the Document for
4230
          previous versions it was based on.  These may be placed in
4231
          the "History" section.  You may omit a network location for a
4232
          work that was published at least four years before the
4233
          Document itself, or if the original publisher of the version
4234
          it refers to gives permission.
4235
 
4236
       K. For any section Entitled "Acknowledgements" or "Dedications",
4237
          Preserve the Title of the section, and preserve in the
4238
          section all the substance and tone of each of the contributor
4239
          acknowledgements and/or dedications given therein.
4240
 
4241
       L. Preserve all the Invariant Sections of the Document,
4242
          unaltered in their text and in their titles.  Section numbers
4243
          or the equivalent are not considered part of the section
4244
          titles.
4245
 
4246
       M. Delete any section Entitled "Endorsements".  Such a section
4247
          may not be included in the Modified Version.
4248
 
4249
       N. Do not retitle any existing section to be Entitled
4250
          "Endorsements" or to conflict in title with any Invariant
4251
          Section.
4252
 
4253
       O. Preserve any Warranty Disclaimers.
4254
 
4255
     If the Modified Version includes new front-matter sections or
4256
     appendices that qualify as Secondary Sections and contain no
4257
     material copied from the Document, you may at your option
4258
     designate some or all of these sections as invariant.  To do this,
4259
     add their titles to the list of Invariant Sections in the Modified
4260
     Version's license notice.  These titles must be distinct from any
4261
     other section titles.
4262
 
4263
     You may add a section Entitled "Endorsements", provided it contains
4264
     nothing but endorsements of your Modified Version by various
4265
     parties--for example, statements of peer review or that the text
4266
     has been approved by an organization as the authoritative
4267
     definition of a standard.
4268
 
4269
     You may add a passage of up to five words as a Front-Cover Text,
4270
     and a passage of up to 25 words as a Back-Cover Text, to the end
4271
     of the list of Cover Texts in the Modified Version.  Only one
4272
     passage of Front-Cover Text and one of Back-Cover Text may be
4273
     added by (or through arrangements made by) any one entity.  If the
4274
     Document already includes a cover text for the same cover,
4275
     previously added by you or by arrangement made by the same entity
4276
     you are acting on behalf of, you may not add another; but you may
4277
     replace the old one, on explicit permission from the previous
4278
     publisher that added the old one.
4279
 
4280
     The author(s) and publisher(s) of the Document do not by this
4281
     License give permission to use their names for publicity for or to
4282
     assert or imply endorsement of any Modified Version.
4283
 
4284
  5. COMBINING DOCUMENTS
4285
 
4286
     You may combine the Document with other documents released under
4287
     this License, under the terms defined in section 4 above for
4288
     modified versions, provided that you include in the combination
4289
     all of the Invariant Sections of all of the original documents,
4290
     unmodified, and list them all as Invariant Sections of your
4291
     combined work in its license notice, and that you preserve all
4292
     their Warranty Disclaimers.
4293
 
4294
     The combined work need only contain one copy of this License, and
4295
     multiple identical Invariant Sections may be replaced with a single
4296
     copy.  If there are multiple Invariant Sections with the same name
4297
     but different contents, make the title of each such section unique
4298
     by adding at the end of it, in parentheses, the name of the
4299
     original author or publisher of that section if known, or else a
4300
     unique number.  Make the same adjustment to the section titles in
4301
     the list of Invariant Sections in the license notice of the
4302
     combined work.
4303
 
4304
     In the combination, you must combine any sections Entitled
4305
     "History" in the various original documents, forming one section
4306
     Entitled "History"; likewise combine any sections Entitled
4307
     "Acknowledgements", and any sections Entitled "Dedications".  You
4308
     must delete all sections Entitled "Endorsements."
4309
 
4310
  6. COLLECTIONS OF DOCUMENTS
4311
 
4312
     You may make a collection consisting of the Document and other
4313
     documents released under this License, and replace the individual
4314
     copies of this License in the various documents with a single copy
4315
     that is included in the collection, provided that you follow the
4316
     rules of this License for verbatim copying of each of the
4317
     documents in all other respects.
4318
 
4319
     You may extract a single document from such a collection, and
4320
     distribute it individually under this License, provided you insert
4321
     a copy of this License into the extracted document, and follow
4322
     this License in all other respects regarding verbatim copying of
4323
     that document.
4324
 
4325
  7. AGGREGATION WITH INDEPENDENT WORKS
4326
 
4327
     A compilation of the Document or its derivatives with other
4328
     separate and independent documents or works, in or on a volume of
4329
     a storage or distribution medium, is called an "aggregate" if the
4330
     copyright resulting from the compilation is not used to limit the
4331
     legal rights of the compilation's users beyond what the individual
4332
     works permit.  When the Document is included in an aggregate, this
4333
     License does not apply to the other works in the aggregate which
4334
     are not themselves derivative works of the Document.
4335
 
4336
     If the Cover Text requirement of section 3 is applicable to these
4337
     copies of the Document, then if the Document is less than one half
4338
     of the entire aggregate, the Document's Cover Texts may be placed
4339
     on covers that bracket the Document within the aggregate, or the
4340
     electronic equivalent of covers if the Document is in electronic
4341
     form.  Otherwise they must appear on printed covers that bracket
4342
     the whole aggregate.
4343
 
4344
  8. TRANSLATION
4345
 
4346
     Translation is considered a kind of modification, so you may
4347
     distribute translations of the Document under the terms of section
4348
     4.  Replacing Invariant Sections with translations requires special
4349
     permission from their copyright holders, but you may include
4350
     translations of some or all Invariant Sections in addition to the
4351
     original versions of these Invariant Sections.  You may include a
4352
     translation of this License, and all the license notices in the
4353
     Document, and any Warranty Disclaimers, provided that you also
4354
     include the original English version of this License and the
4355
     original versions of those notices and disclaimers.  In case of a
4356
     disagreement between the translation and the original version of
4357
     this License or a notice or disclaimer, the original version will
4358
     prevail.
4359
 
4360
     If a section in the Document is Entitled "Acknowledgements",
4361
     "Dedications", or "History", the requirement (section 4) to
4362
     Preserve its Title (section 1) will typically require changing the
4363
     actual title.
4364
 
4365
  9. TERMINATION
4366
 
4367
     You may not copy, modify, sublicense, or distribute the Document
4368
     except as expressly provided for under this License.  Any other
4369
     attempt to copy, modify, sublicense or distribute the Document is
4370
     void, and will automatically terminate your rights under this
4371
     License.  However, parties who have received copies, or rights,
4372
     from you under this License will not have their licenses
4373
     terminated so long as such parties remain in full compliance.
4374
 
4375
 10. FUTURE REVISIONS OF THIS LICENSE
4376
 
4377
     The Free Software Foundation may publish new, revised versions of
4378
     the GNU Free Documentation License from time to time.  Such new
4379
     versions will be similar in spirit to the present version, but may
4380
     differ in detail to address new problems or concerns.  See
4381
     `http://www.gnu.org/copyleft/'.
4382
 
4383
     Each version of the License is given a distinguishing version
4384
     number.  If the Document specifies that a particular numbered
4385
     version of this License "or any later version" applies to it, you
4386
     have the option of following the terms and conditions either of
4387
     that specified version or of any later version that has been
4388
     published (not as a draft) by the Free Software Foundation.  If
4389
     the Document does not specify a version number of this License,
4390
     you may choose any version ever published (not as a draft) by the
4391
     Free Software Foundation.
4392
 
4393
ADDENDUM: How to use this License for your documents
4394
====================================================
4395
 
4396
To use this License in a document you have written, include a copy of
4397
the License in the document and put the following copyright and license
4398
notices just after the title page:
4399
 
4400
       Copyright (C)  YEAR  YOUR NAME.
4401
       Permission is granted to copy, distribute and/or modify this document
4402
       under the terms of the GNU Free Documentation License, Version 1.2
4403
       or any later version published by the Free Software Foundation;
4404
       with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
4405
       Texts.  A copy of the license is included in the section entitled ``GNU
4406
       Free Documentation License''.
4407
 
4408
   If you have Invariant Sections, Front-Cover Texts and Back-Cover
4409
Texts, replace the "with...Texts." line with this:
4410
 
4411
         with the Invariant Sections being LIST THEIR TITLES, with
4412
         the Front-Cover Texts being LIST, and with the Back-Cover Texts
4413
         being LIST.
4414
 
4415
   If you have Invariant Sections without Cover Texts, or some other
4416
combination of the three, merge those two alternatives to suit the
4417
situation.
4418
 
4419
   If your document contains nontrivial examples of program code, we
4420
recommend releasing these examples in parallel under your choice of
4421
free software license, such as the GNU General Public License, to
4422
permit their use in free software.
4423
 
4424

4425
File: gccinstall.info,  Node: Concept Index,  Prev: GNU Free Documentation License,  Up: Top
4426
 
4427
Concept Index
4428
*************
4429
 
4430
 
4431
* Menu:
4432
4433
* Binaries:                              Binaries.              (line 6)
4434
* Configuration:                         Configuration.         (line 6)
4435
* configurations supported by GCC:       Configurations.        (line 6)
4436
* Downloading GCC:                       Downloading the source.
4437
                                                                (line 6)
4438
* Downloading the Source:                Downloading the source.
4439
                                                                (line 6)
4440
* FDL, GNU Free Documentation License:   GNU Free Documentation License.
4441
                                                                (line 6)
4442
* Host specific installation:            Specific.              (line 6)
4443
* Installing GCC: Binaries:              Binaries.              (line 6)
4444
* Installing GCC: Building:              Building.              (line 6)
4445
* Installing GCC: Configuration:         Configuration.         (line 6)
4446
* Installing GCC: Testing:               Testing.               (line 6)
4447
* Prerequisites:                         Prerequisites.         (line 6)
4448
* Specific:                              Specific.              (line 6)
4449
* Specific installation notes:           Specific.              (line 6)
4450
* Target specific installation:          Specific.              (line 6)
4451
 
4452
 
4453
* Testsuite:                             Testing.               (line 6)
4454
4455
4456

4457
Tag Table:
4458
Node: Top1953
4459
Node: Installing GCC2511
4460
Node: Prerequisites4026
4461
Node: Downloading the source13688
4462
Node: Configuration15625
4463
Ref: with-gnu-as29767
4464
Ref: with-as30665
4465
Ref: with-gnu-ld32078
4466
Node: Building75553
4467
Node: Testing90864
4468
Node: Final install98644
4469
Node: Binaries103874
4470
Node: Specific105467
4471
Ref: alpha-x-x105973
4472
Ref: alpha-dec-osf106462
4473
Ref: arc-x-elf108763
4474
Ref: arm-x-elf108863
4475
Ref: avr109083
4476
Ref: bfin109725
4477
Ref: cris109967
4478
Ref: crx110783
4479
Ref: dos111446
4480
Ref: x-x-freebsd111769
4481
Ref: h8300-hms113582
4482
Ref: hppa-hp-hpux113934
4483
Ref: hppa-hp-hpux10116305
4484
Ref: hppa-hp-hpux11116938
4485
Ref: x-x-linux-gnu122597
4486
Ref: ix86-x-linux122790
4487
Ref: ix86-x-solaris289123103
4488
Ref: ix86-x-solaris210123949
4489
Ref: ia64-x-linux125179
4490
Ref: ia64-x-hpux125949
4491
Ref: x-ibm-aix126504
4492
Ref: iq2000-x-elf132763
4493
Ref: lm32-x-elf132903
4494
Ref: lm32-x-uclinux133007
4495
Ref: m32c-x-elf133135
4496
Ref: m32r-x-elf133237
4497
Ref: m6811-elf133339
4498
Ref: m6812-elf133489
4499
Ref: m68k-x-x133639
4500
Ref: m68k-x-uclinux134611
4501
Ref: mep-x-elf134974
4502
Ref: mips-x-x135084
4503
Ref: mips-sgi-irix5137761
4504
Ref: mips-sgi-irix6139027
4505
Ref: moxie-x-elf142358
4506
Ref: powerpc-x-x142478
4507
Ref: powerpc-x-darwin142683
4508
Ref: powerpc-x-elf143230
4509
Ref: powerpc-x-linux-gnu143315
4510
Ref: powerpc-x-netbsd143410
4511
Ref: powerpc-x-eabisim143498
4512
Ref: powerpc-x-eabi143624
4513
Ref: powerpcle-x-elf143700
4514
Ref: powerpcle-x-eabisim143792
4515
Ref: powerpcle-x-eabi143925
4516
Ref: rx-x-elf144008
4517
Ref: s390-x-linux144207
4518
Ref: s390x-x-linux144279
4519
Ref: s390x-ibm-tpf144366
4520
Ref: x-x-solaris2144497
4521
Ref: sparc-sun-solaris2148309
4522
Ref: sparc-sun-solaris27151035
4523
Ref: sparc-sun-solaris210153593
4524
Ref: sparc-x-linux153969
4525
Ref: sparc64-x-solaris2154194
4526
Ref: sparcv9-x-solaris2154836
4527
Ref: x-x-vxworks154923
4528
Ref: x86-64-x-x156445
4529
Ref: xtensa-x-elf156773
4530
Ref: xtensa-x-linux157444
4531
Ref: windows157785
4532
Ref: x-x-cygwin159742
4533
Ref: x-x-interix160295
4534
Ref: x-x-mingw32160661
4535
Ref: older160887
4536
Ref: elf163004
4537
Node: Old163262
4538
Node: Configurations166399
4539
Node: GNU Free Documentation License170381

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.