1This is doc/gccinstall.info, produced by makeinfo version 4.8 from 2/usr/src6/tools/gcc/../../external/gpl3/gcc/dist/gcc/doc/install.texi. 3 4 Copyright (C) 1988-2017 Free Software Foundation, Inc. 5 6 Permission is granted to copy, distribute and/or modify this document 7under the terms of the GNU Free Documentation License, Version 1.3 or 8any later version published by the Free Software Foundation; with no 9Invariant Sections, the Front-Cover texts being (a) (see below), and 10with the Back-Cover Texts being (b) (see below). A copy of the license 11is included in the section entitled "GNU Free Documentation License". 12 13 (a) The FSF's Front-Cover Text is: 14 15 A GNU Manual 16 17 (b) The FSF's Back-Cover Text is: 18 19 You have freedom to copy and modify this GNU Manual, like GNU 20software. Copies published by the Free Software Foundation raise 21funds for GNU development. 22 23 Copyright (C) 1988-2017 Free Software Foundation, Inc. 24 25 Permission is granted to copy, distribute and/or modify this document 26under the terms of the GNU Free Documentation License, Version 1.3 or 27any later version published by the Free Software Foundation; with no 28Invariant Sections, the Front-Cover texts being (a) (see below), and 29with the Back-Cover Texts being (b) (see below). A copy of the license 30is included in the section entitled "GNU Free Documentation License". 31 32 (a) The FSF's Front-Cover Text is: 33 34 A GNU Manual 35 36 (b) The FSF's Back-Cover Text is: 37 38 You have freedom to copy and modify this GNU Manual, like GNU 39software. Copies published by the Free Software Foundation raise 40funds for GNU development. 41 42INFO-DIR-SECTION Software development 43START-INFO-DIR-ENTRY 44* gccinstall: (gccinstall). Installing the GNU Compiler Collection. 45END-INFO-DIR-ENTRY 46 47 48File: gccinstall.info, Node: Top, Up: (dir) 49 50* Menu: 51 52* Installing GCC:: This document describes the generic installation 53 procedure for GCC as well as detailing some target 54 specific installation instructions. 55 56* Specific:: Host/target specific installation notes for GCC. 57* Binaries:: Where to get pre-compiled binaries. 58 59* Old:: Old installation documentation. 60 61* GNU Free Documentation License:: How you can copy and share this manual. 62* Concept Index:: This index has two entries. 63 64 65File: gccinstall.info, Node: Installing GCC, Next: Binaries, Up: Top 66 671 Installing GCC 68**************** 69 70 The latest version of this document is always available at 71http://gcc.gnu.org/install/. It refers to the current development 72sources, instructions for specific released versions are included with 73the sources. 74 75 This document describes the generic installation procedure for GCC 76as well as detailing some target specific installation instructions. 77 78 GCC includes several components that previously were separate 79distributions with their own installation instructions. This document 80supersedes all package-specific installation instructions. 81 82 _Before_ starting the build/install procedure please check the *Note 83host/target specific installation notes: Specific. We recommend you 84browse the entire generic installation instructions before you proceed. 85 86 Lists of successful builds for released versions of GCC are 87available at `http://gcc.gnu.org/buildstat.html'. These lists are 88updated as new information becomes available. 89 90 The installation procedure itself is broken into five steps. 91 92* Menu: 93 94* Prerequisites:: 95* Downloading the source:: 96* Configuration:: 97* Building:: 98* Testing:: (optional) 99* Final install:: 100 101 Please note that GCC does not support `make uninstall' and probably 102won't do so in the near future as this would open a can of worms. 103Instead, we suggest that you install GCC into a directory of its own 104and simply remove that directory when you do not need that specific 105version of GCC any longer, and, if shared libraries are installed there 106as well, no more binaries exist that use them. 107 108 109File: gccinstall.info, Node: Prerequisites, Next: Downloading the source, Up: Installing GCC 110 1112 Prerequisites 112*************** 113 114 GCC requires that various tools and packages be available for use in 115the build procedure. Modifying GCC sources requires additional tools 116described below. 117 118Tools/packages necessary for building GCC 119========================================= 120 121ISO C++98 compiler 122 Necessary to bootstrap GCC, although versions of GCC prior to 4.8 123 also allow bootstrapping with a ISO C89 compiler and versions of 124 GCC prior to 3.4 also allow bootstrapping with a traditional (K&R) 125 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 3.4 or later) because source code 130 for language frontends other than C might use GCC extensions. 131 132 Note that to bootstrap GCC with versions of GCC earlier than 3.4, 133 you may need to use `--disable-stage1-checking', though 134 bootstrapping the compiler with such earlier compilers is strongly 135 discouraged. 136 137C standard library and headers 138 In order to build GCC, the C standard library and headers must be 139 present for all target variants for which target libraries will be 140 built (and not only the variant of the host C++ compiler). 141 142 This affects the popular `x86_64-unknown-linux-gnu' platform (among 143 other multilib targets), for which 64-bit (`x86_64') and 32-bit 144 (`i386') libc headers are usually packaged separately. If you do a 145 build of a native compiler on `x86_64-unknown-linux-gnu', make 146 sure you either have the 32-bit libc developer package properly 147 installed (the exact name of the package depends on your distro) 148 or you must build GCC as a 64-bit only compiler by configuring 149 with the option `--disable-multilib'. Otherwise, you may 150 encounter an error such as `fatal error: gnu/stubs-32.h: No such 151 file' 152 153GNAT 154 In order to build the Ada compiler (GNAT) you must already have 155 GNAT installed because portions of the Ada frontend are written in 156 Ada (with GNAT extensions.) Refer to the Ada installation 157 instructions for more specific information. 158 159A "working" POSIX compatible shell, or GNU bash 160 Necessary when running `configure' because some `/bin/sh' shells 161 have bugs and may crash when configuring the target libraries. In 162 other cases, `/bin/sh' or `ksh' have disastrous corner-case 163 performance problems. This can cause target `configure' runs to 164 literally take days to complete in some cases. 165 166 So on some platforms `/bin/ksh' is sufficient, on others it isn't. 167 See the host/target specific instructions for your platform, or 168 use `bash' to be sure. Then set `CONFIG_SHELL' in your 169 environment to your "good" shell prior to running 170 `configure'/`make'. 171 172 `zsh' is not a fully compliant POSIX shell and will not work when 173 configuring GCC. 174 175A POSIX or SVR4 awk 176 Necessary for creating some of the generated source files for GCC. 177 If in doubt, use a recent GNU awk version, as some of the older 178 ones are broken. GNU awk version 3.1.5 is known to work. 179 180GNU binutils 181 Necessary in some circumstances, optional in others. See the 182 host/target specific instructions for your platform for the exact 183 requirements. 184 185gzip version 1.2.4 (or later) or 186bzip2 version 1.0.2 (or later) 187 Necessary to uncompress GCC `tar' files when source code is 188 obtained via FTP mirror sites. 189 190GNU make version 3.80 (or later) 191 You must have GNU make installed to build GCC. 192 193GNU tar version 1.14 (or later) 194 Necessary (only on some platforms) to untar the source code. Many 195 systems' `tar' programs will also work, only try GNU `tar' if you 196 have problems. 197 198Perl version 5.6.1 (or later) 199 Necessary when targeting Darwin, building `libstdc++', and not 200 using `--disable-symvers'. Necessary when targeting Solaris 2 201 with Sun `ld' and not using `--disable-symvers'. The bundled 202 `perl' in Solaris 8 and up works. 203 204 Necessary when regenerating `Makefile' dependencies in libiberty. 205 Necessary when regenerating `libiberty/functions.texi'. Necessary 206 when generating manpages from Texinfo manuals. Used by various 207 scripts to generate some files included in SVN (mainly 208 Unicode-related and rarely changing) from source tables. 209 210`jar', or InfoZIP (`zip' and `unzip') 211 Necessary to build libgcj, the GCJ runtime. 212 213 214 Several support libraries are necessary to build GCC, some are 215required, others optional. While any sufficiently new version of 216required tools usually work, library requirements are generally 217stricter. Newer versions may work in some cases, but it's safer to use 218the exact versions documented. We appreciate bug reports about 219problems with newer versions, though. If your OS vendor provides 220packages for the support libraries then using those packages may be the 221simplest way to install the libraries. 222 223GNU Multiple Precision Library (GMP) version 4.3.2 (or later) 224 Necessary to build GCC. If a GMP source distribution is found in a 225 subdirectory of your GCC sources named `gmp', it will be built 226 together with GCC. Alternatively, if GMP is already installed but 227 it is not in your library search path, you will have to configure 228 with the `--with-gmp' configure option. See also `--with-gmp-lib' 229 and `--with-gmp-include'. 230 231MPFR Library version 2.4.2 (or later) 232 Necessary to build GCC. It can be downloaded from 233 `http://www.mpfr.org/'. If an MPFR source distribution is found 234 in a subdirectory of your GCC sources named `mpfr', it will be 235 built together with GCC. Alternatively, if MPFR is already 236 installed but it is not in your default library search path, the 237 `--with-mpfr' configure option should be used. See also 238 `--with-mpfr-lib' and `--with-mpfr-include'. 239 240MPC Library version 0.8.1 (or later) 241 Necessary to build GCC. It can be downloaded from 242 `http://www.multiprecision.org/'. If an MPC source distribution 243 is found in a subdirectory of your GCC sources named `mpc', it 244 will be built together with GCC. Alternatively, if MPC is already 245 installed but it is not in your default library search path, the 246 `--with-mpc' configure option should be used. See also 247 `--with-mpc-lib' and `--with-mpc-include'. 248 249isl Library version 0.16, 0.15, or 0.14. 250 Necessary to build GCC with the Graphite loop optimizations. It 251 can be downloaded from `ftp://gcc.gnu.org/pub/gcc/infrastructure/'. 252 If an isl source distribution is found in a subdirectory of your 253 GCC sources named `isl', it will be built together with GCC. 254 Alternatively, the `--with-isl' configure option should be used if 255 isl is not installed in your default library search path. 256 257 258Tools/packages necessary for modifying GCC 259========================================== 260 261autoconf version 2.64 262GNU m4 version 1.4.6 (or later) 263 Necessary when modifying `configure.ac', `aclocal.m4', etc. to 264 regenerate `configure' and `config.in' files. 265 266automake version 1.11.6 267 Necessary when modifying a `Makefile.am' file to regenerate its 268 associated `Makefile.in'. 269 270 Much of GCC does not use automake, so directly edit the 271 `Makefile.in' file. Specifically this applies to the `gcc', 272 `intl', `libcpp', `libiberty', `libobjc' directories as well as 273 any of their subdirectories. 274 275 For directories that use automake, GCC requires the latest release 276 in the 1.11 series, which is currently 1.11.6. When regenerating 277 a directory to a newer version, please update all the directories 278 using an older 1.11 to the latest released version. 279 280gettext version 0.14.5 (or later) 281 Needed to regenerate `gcc.pot'. 282 283gperf version 2.7.2 (or later) 284 Necessary when modifying `gperf' input files, e.g. 285 `gcc/cp/cfns.gperf' to regenerate its associated header file, e.g. 286 `gcc/cp/cfns.h'. 287 288DejaGnu 1.4.4 289Expect 290Tcl 291 Necessary to run the GCC testsuite; see the section on testing for 292 details. Tcl 8.6 has a known regression in RE pattern handling 293 that make parts of the testsuite fail. See 294 `http://core.tcl.tk/tcl/tktview/267b7e2334ee2e9de34c4b00d6e72e2f1997085f' 295 for more information. This bug has been fixed in 8.6.1. 296 297autogen version 5.5.4 (or later) and 298guile version 1.4.1 (or later) 299 Necessary to regenerate `fixinc/fixincl.x' from 300 `fixinc/inclhack.def' and `fixinc/*.tpl'. 301 302 Necessary to run `make check' for `fixinc'. 303 304 Necessary to regenerate the top level `Makefile.in' file from 305 `Makefile.tpl' and `Makefile.def'. 306 307Flex version 2.5.4 (or later) 308 Necessary when modifying `*.l' files. 309 310 Necessary to build GCC during development because the generated 311 output files are not included in the SVN repository. They are 312 included in releases. 313 314Texinfo version 4.7 (or later) 315 Necessary for running `makeinfo' when modifying `*.texi' files to 316 test your changes. 317 318 Necessary for running `make dvi' or `make pdf' to create printable 319 documentation in DVI or PDF format. Texinfo version 4.8 or later 320 is required for `make pdf'. 321 322 Necessary to build GCC documentation during development because the 323 generated output files are not included in the SVN repository. 324 They are included in releases. 325 326TeX (any working version) 327 Necessary for running `texi2dvi' and `texi2pdf', which are used 328 when running `make dvi' or `make pdf' to create DVI or PDF files, 329 respectively. 330 331Sphinx version 1.0 (or later) 332 Necessary to regenerate `jit/docs/_build/texinfo' from the `.rst' 333 files in the directories below `jit/docs'. 334 335SVN (any version) 336SSH (any version) 337 Necessary to access the SVN repository. Public releases and weekly 338 snapshots of the development sources are also available via FTP. 339 340GNU diffutils version 2.7 (or later) 341 Useful when submitting patches for the GCC source code. 342 343patch version 2.5.4 (or later) 344 Necessary when applying patches, created with `diff', to one's own 345 sources. 346 347ecj1 348gjavah 349 If you wish to modify `.java' files in libjava, you will need to 350 configure with `--enable-java-maintainer-mode', and you will need 351 to have executables named `ecj1' and `gjavah' in your path. The 352 `ecj1' executable should run the Eclipse Java compiler via the 353 GCC-specific entry point. You can download a suitable jar from 354 `ftp://sourceware.org/pub/java/', or by running the script 355 `contrib/download_ecj'. 356 357antlr.jar version 2.7.1 (or later) 358antlr binary 359 If you wish to build the `gjdoc' binary in libjava, you will need 360 to have an `antlr.jar' library available. The library is searched 361 for in system locations but can be specified with 362 `--with-antlr-jar=' instead. When configuring with 363 `--enable-java-maintainer-mode', you will need to have one of the 364 executables named `cantlr', `runantlr' or `antlr' in your path. 365 366 367 368File: gccinstall.info, Node: Downloading the source, Next: Configuration, Prev: Prerequisites, Up: Installing GCC 369 3703 Downloading GCC 371***************** 372 373 GCC is distributed via SVN and FTP tarballs compressed with `gzip' or 374`bzip2'. 375 376 Please refer to the releases web page for information on how to 377obtain GCC. 378 379 The source distribution includes the C, C++, Objective-C, Fortran, 380Java, and Ada (in the case of GCC 3.1 and later) compilers, as well as 381runtime libraries for C++, Objective-C, Fortran, and Java. For 382previous versions these were downloadable as separate components such 383as the core GCC distribution, which included the C language front end 384and shared components, and language-specific distributions including the 385language front end and the language runtime (where appropriate). 386 387 If you also intend to build binutils (either to upgrade an existing 388installation or for use in place of the corresponding tools of your 389OS), unpack the binutils distribution either in the same directory or a 390separate one. In the latter case, add symbolic links to any components 391of the binutils you intend to build alongside the compiler (`bfd', 392`binutils', `gas', `gprof', `ld', `opcodes', ...) to the directory 393containing the GCC sources. 394 395 Likewise the GMP, MPFR and MPC libraries can be automatically built 396together with GCC. You may simply run the 397`contrib/download_prerequisites' script in the GCC source directory to 398set up everything. Otherwise unpack the GMP, MPFR and/or MPC source 399distributions in the directory containing the GCC sources and rename 400their directories to `gmp', `mpfr' and `mpc', respectively (or use 401symbolic links with the same name). 402 403 404File: gccinstall.info, Node: Configuration, Next: Building, Prev: Downloading the source, Up: Installing GCC 405 4064 Installing GCC: Configuration 407******************************* 408 409 Like most GNU software, GCC must be configured before it can be 410built. This document describes the recommended configuration procedure 411for both native and cross targets. 412 413 We use SRCDIR to refer to the toplevel source directory for GCC; we 414use OBJDIR to refer to the toplevel build/object directory. 415 416 If you obtained the sources via SVN, SRCDIR must refer to the top 417`gcc' directory, the one where the `MAINTAINERS' file can be found, and 418not its `gcc' subdirectory, otherwise the build will fail. 419 420 If either SRCDIR or OBJDIR is located on an automounted NFS file 421system, the shell's built-in `pwd' command will return temporary 422pathnames. Using these can lead to various sorts of build problems. 423To avoid this issue, set the `PWDCMD' environment variable to an 424automounter-aware `pwd' command, e.g., `pawd' or `amq -w', during the 425configuration and build phases. 426 427 First, we *highly* recommend that GCC be built into a separate 428directory from the sources which does *not* reside within the source 429tree. This is how we generally build GCC; building where SRCDIR == 430OBJDIR should still work, but doesn't get extensive testing; building 431where OBJDIR is a subdirectory of SRCDIR is unsupported. 432 433 If you have previously built GCC in the same directory for a 434different target machine, do `make distclean' to delete all files that 435might be invalid. One of the files this deletes is `Makefile'; if 436`make distclean' complains that `Makefile' does not exist or issues a 437message like "don't know how to make distclean" it probably means that 438the directory is already suitably clean. However, with the recommended 439method of building in a separate OBJDIR, you should simply use a 440different OBJDIR for each target. 441 442 Second, when configuring a native system, either `cc' or `gcc' must 443be in your path or you must set `CC' in your environment before running 444configure. Otherwise the configuration scripts may fail. 445 446 To configure GCC: 447 448 % mkdir OBJDIR 449 % cd OBJDIR 450 % SRCDIR/configure [OPTIONS] [TARGET] 451 452Distributor options 453=================== 454 455If you will be distributing binary versions of GCC, with modifications 456to the source code, you should use the options described in this 457section to make clear that your version contains modifications. 458 459`--with-pkgversion=VERSION' 460 Specify a string that identifies your package. You may wish to 461 include a build number or build date. This version string will be 462 included in the output of `gcc --version'. This suffix does not 463 replace the default version string, only the `GCC' part. 464 465 The default value is `GCC'. 466 467`--with-bugurl=URL' 468 Specify the URL that users should visit if they wish to report a 469 bug. You are of course welcome to forward bugs reported to you to 470 the FSF, if you determine that they are not bugs in your 471 modifications. 472 473 The default value refers to the FSF's GCC bug tracker. 474 475 476Target specification 477==================== 478 479 * GCC has code to correctly determine the correct value for TARGET 480 for nearly all native systems. Therefore, we highly recommend you 481 do not provide a configure target when configuring a native 482 compiler. 483 484 * TARGET must be specified as `--target=TARGET' when configuring a 485 cross compiler; examples of valid targets would be m68k-elf, 486 sh-elf, etc. 487 488 * Specifying just TARGET instead of `--target=TARGET' implies that 489 the host defaults to TARGET. 490 491Options specification 492===================== 493 494Use OPTIONS to override several configure time options for GCC. A list 495of supported OPTIONS follows; `configure --help' may list other 496options, but those not listed below may not work and should not 497normally be used. 498 499 Note that each `--enable' option has a corresponding `--disable' 500option and that each `--with' option has a corresponding `--without' 501option. 502 503`--prefix=DIRNAME' 504 Specify the toplevel installation directory. This is the 505 recommended way to install the tools into a directory other than 506 the default. The toplevel installation directory defaults to 507 `/usr/local'. 508 509 We *highly* recommend against DIRNAME being the same or a 510 subdirectory of OBJDIR or vice versa. If specifying a directory 511 beneath a user's home directory tree, some shells will not expand 512 DIRNAME correctly if it contains the `~' metacharacter; use 513 `$HOME' instead. 514 515 The following standard `autoconf' options are supported. Normally 516 you should not need to use these options. 517 `--exec-prefix=DIRNAME' 518 Specify the toplevel installation directory for 519 architecture-dependent files. The default is `PREFIX'. 520 521 `--bindir=DIRNAME' 522 Specify the installation directory for the executables called 523 by users (such as `gcc' and `g++'). The default is 524 `EXEC-PREFIX/bin'. 525 526 `--libdir=DIRNAME' 527 Specify the installation directory for object code libraries 528 and internal data files of GCC. The default is 529 `EXEC-PREFIX/lib'. 530 531 `--libexecdir=DIRNAME' 532 Specify the installation directory for internal executables 533 of GCC. The default is `EXEC-PREFIX/libexec'. 534 535 `--with-slibdir=DIRNAME' 536 Specify the installation directory for the shared libgcc 537 library. The default is `LIBDIR'. 538 539 `--datarootdir=DIRNAME' 540 Specify the root of the directory tree for read-only 541 architecture-independent data files referenced by GCC. The 542 default is `PREFIX/share'. 543 544 `--infodir=DIRNAME' 545 Specify the installation directory for documentation in info 546 format. The default is `DATAROOTDIR/info'. 547 548 `--datadir=DIRNAME' 549 Specify the installation directory for some 550 architecture-independent data files referenced by GCC. The 551 default is `DATAROOTDIR'. 552 553 `--docdir=DIRNAME' 554 Specify the installation directory for documentation files 555 (other than Info) for GCC. The default is `DATAROOTDIR/doc'. 556 557 `--htmldir=DIRNAME' 558 Specify the installation directory for HTML documentation 559 files. The default is `DOCDIR'. 560 561 `--pdfdir=DIRNAME' 562 Specify the installation directory for PDF documentation 563 files. The default is `DOCDIR'. 564 565 `--mandir=DIRNAME' 566 Specify the installation directory for manual pages. The 567 default is `DATAROOTDIR/man'. (Note that the manual pages 568 are only extracts from the full GCC manuals, which are 569 provided in Texinfo format. The manpages are derived by an 570 automatic conversion process from parts of the full manual.) 571 572 `--with-gxx-include-dir=DIRNAME' 573 Specify the installation directory for G++ header files. The 574 default depends on other configuration options, and differs 575 between cross and native configurations. 576 577 `--with-specs=SPECS' 578 Specify additional command line driver SPECS. This can be 579 useful if you need to turn on a non-standard feature by 580 default without modifying the compiler's source code, for 581 instance 582 `--with-specs=%{!fcommon:%{!fno-common:-fno-common}}'. *Note 583 Specifying subprocesses and the switches to pass to them: 584 (gcc)Spec Files, 585 586 587`--program-prefix=PREFIX' 588 GCC supports some transformations of the names of its programs when 589 installing them. This option prepends PREFIX to the names of 590 programs to install in BINDIR (see above). For example, specifying 591 `--program-prefix=foo-' would result in `gcc' being installed as 592 `/usr/local/bin/foo-gcc'. 593 594`--program-suffix=SUFFIX' 595 Appends SUFFIX to the names of programs to install in BINDIR (see 596 above). For example, specifying `--program-suffix=-3.1' would 597 result in `gcc' being installed as `/usr/local/bin/gcc-3.1'. 598 599`--program-transform-name=PATTERN' 600 Applies the `sed' script PATTERN to be applied to the names of 601 programs to install in BINDIR (see above). PATTERN has to consist 602 of one or more basic `sed' editing commands, separated by 603 semicolons. For example, if you want the `gcc' program name to be 604 transformed to the installed program `/usr/local/bin/myowngcc' and 605 the `g++' program name to be transformed to 606 `/usr/local/bin/gspecial++' without changing other program names, 607 you could use the pattern 608 `--program-transform-name='s/^gcc$/myowngcc/; s/^g++$/gspecial++/'' 609 to achieve this effect. 610 611 All three options can be combined and used together, resulting in 612 more complex conversion patterns. As a basic rule, PREFIX (and 613 SUFFIX) are prepended (appended) before further transformations 614 can happen with a special transformation script PATTERN. 615 616 As currently implemented, this option only takes effect for native 617 builds; cross compiler binaries' names are not transformed even 618 when a transformation is explicitly asked for by one of these 619 options. 620 621 For native builds, some of the installed programs are also 622 installed with the target alias in front of their name, as in 623 `i686-pc-linux-gnu-gcc'. All of the above transformations happen 624 before the target alias is prepended to the name--so, specifying 625 `--program-prefix=foo-' and `program-suffix=-3.1', the resulting 626 binary would be installed as 627 `/usr/local/bin/i686-pc-linux-gnu-foo-gcc-3.1'. 628 629 As a last shortcoming, none of the installed Ada programs are 630 transformed yet, which will be fixed in some time. 631 632`--with-local-prefix=DIRNAME' 633 Specify the installation directory for local include files. The 634 default is `/usr/local'. Specify this option if you want the 635 compiler to search directory `DIRNAME/include' for locally 636 installed header files _instead_ of `/usr/local/include'. 637 638 You should specify `--with-local-prefix' *only* if your site has a 639 different convention (not `/usr/local') for where to put 640 site-specific files. 641 642 The default value for `--with-local-prefix' is `/usr/local' 643 regardless of the value of `--prefix'. Specifying `--prefix' has 644 no effect on which directory GCC searches for local header files. 645 This may seem counterintuitive, but actually it is logical. 646 647 The purpose of `--prefix' is to specify where to _install GCC_. 648 The local header files in `/usr/local/include'--if you put any in 649 that directory--are not part of GCC. They are part of other 650 programs--perhaps many others. (GCC installs its own header files 651 in another directory which is based on the `--prefix' value.) 652 653 Both the local-prefix include directory and the GCC-prefix include 654 directory are part of GCC's "system include" directories. 655 Although these two directories are not fixed, they need to be 656 searched in the proper order for the correct processing of the 657 include_next directive. The local-prefix include directory is 658 searched before the GCC-prefix include directory. Another 659 characteristic of system include directories is that pedantic 660 warnings are turned off for headers in these directories. 661 662 Some autoconf macros add `-I DIRECTORY' options to the compiler 663 command line, to ensure that directories containing installed 664 packages' headers are searched. When DIRECTORY is one of GCC's 665 system include directories, GCC will ignore the option so that 666 system directories continue to be processed in the correct order. 667 This may result in a search order different from what was 668 specified but the directory will still be searched. 669 670 GCC automatically searches for ordinary libraries using 671 `GCC_EXEC_PREFIX'. Thus, when the same installation prefix is 672 used for both GCC and packages, GCC will automatically search for 673 both headers and libraries. This provides a configuration that is 674 easy to use. GCC behaves in a manner similar to that when it is 675 installed as a system compiler in `/usr'. 676 677 Sites that need to install multiple versions of GCC may not want to 678 use the above simple configuration. It is possible to use the 679 `--program-prefix', `--program-suffix' and 680 `--program-transform-name' options to install multiple versions 681 into a single directory, but it may be simpler to use different 682 prefixes and the `--with-local-prefix' option to specify the 683 location of the site-specific files for each version. It will 684 then be necessary for users to specify explicitly the location of 685 local site libraries (e.g., with `LIBRARY_PATH'). 686 687 The same value can be used for both `--with-local-prefix' and 688 `--prefix' provided it is not `/usr'. This can be used to avoid 689 the default search of `/usr/local/include'. 690 691 *Do not* specify `/usr' as the `--with-local-prefix'! The 692 directory you use for `--with-local-prefix' *must not* contain any 693 of the system's standard header files. If it did contain them, 694 certain programs would be miscompiled (including GNU Emacs, on 695 certain targets), because this would override and nullify the 696 header file corrections made by the `fixincludes' script. 697 698 Indications are that people who use this option use it based on 699 mistaken ideas of what it is for. People use it as if it 700 specified where to install part of GCC. Perhaps they make this 701 assumption because installing GCC creates the directory. 702 703`--with-native-system-header-dir=DIRNAME' 704 Specifies that DIRNAME is the directory that contains native system 705 header files, rather than `/usr/include'. This option is most 706 useful if you are creating a compiler that should be isolated from 707 the system as much as possible. It is most commonly used with the 708 `--with-sysroot' option and will cause GCC to search DIRNAME 709 inside the system root specified by that option. 710 711`--enable-shared[=PACKAGE[,...]]' 712 Build shared versions of libraries, if shared libraries are 713 supported on the target platform. Unlike GCC 2.95.x and earlier, 714 shared libraries are enabled by default on all platforms that 715 support shared libraries. 716 717 If a list of packages is given as an argument, build shared 718 libraries only for the listed packages. For other packages, only 719 static libraries will be built. Package names currently 720 recognized in the GCC tree are `libgcc' (also known as `gcc'), 721 `libstdc++' (not `libstdc++-v3'), `libffi', `zlib', `boehm-gc', 722 `ada', `libada', `libjava', `libgo', and `libobjc'. Note 723 `libiberty' does not support shared libraries at all. 724 725 Use `--disable-shared' to build only static libraries. Note that 726 `--disable-shared' does not accept a list of package names as 727 argument, only `--enable-shared' does. 728 729 Contrast with `--enable-host-shared', which affects _host_ code. 730 731`--enable-host-shared' 732 Specify that the _host_ code should be built into 733 position-independent machine code (with -fPIC), allowing it to be 734 used within shared libraries, but yielding a slightly slower 735 compiler. 736 737 This option is required when building the libgccjit.so library. 738 739 Contrast with `--enable-shared', which affects _target_ libraries. 740 741`--with-gnu-as' 742 Specify that the compiler should assume that the assembler it 743 finds is the GNU assembler. However, this does not modify the 744 rules to find an assembler and will result in confusion if the 745 assembler found is not actually the GNU assembler. (Confusion may 746 also result if the compiler finds the GNU assembler but has not 747 been configured with `--with-gnu-as'.) If you have more than one 748 assembler installed on your system, you may want to use this 749 option in connection with `--with-as=PATHNAME' or 750 `--with-build-time-tools=PATHNAME'. 751 752 The following systems are the only ones where it makes a difference 753 whether you use the GNU assembler. On any other system, 754 `--with-gnu-as' has no effect. 755 756 * `hppa1.0-ANY-ANY' 757 758 * `hppa1.1-ANY-ANY' 759 760 * `sparc-sun-solaris2.ANY' 761 762 * `sparc64-ANY-solaris2.ANY' 763 764`--with-as=PATHNAME' 765 Specify that the compiler should use the assembler pointed to by 766 PATHNAME, rather than the one found by the standard rules to find 767 an assembler, which are: 768 * Unless GCC is being built with a cross compiler, check the 769 `LIBEXEC/gcc/TARGET/VERSION' directory. LIBEXEC defaults to 770 `EXEC-PREFIX/libexec'; EXEC-PREFIX defaults to PREFIX, which 771 defaults to `/usr/local' unless overridden by the 772 `--prefix=PATHNAME' switch described above. TARGET is the 773 target system triple, such as `sparc-sun-solaris2.7', and 774 VERSION denotes the GCC version, such as 3.0. 775 776 * If the target system is the same that you are building on, 777 check operating system specific directories (e.g. 778 `/usr/ccs/bin' on Sun Solaris 2). 779 780 * Check in the `PATH' for a tool whose name is prefixed by the 781 target system triple. 782 783 * Check in the `PATH' for a tool whose name is not prefixed by 784 the target system triple, if the host and target system 785 triple are the same (in other words, we use a host tool if it 786 can be used for the target as well). 787 788 You may want to use `--with-as' if no assembler is installed in 789 the directories listed above, or if you have multiple assemblers 790 installed and want to choose one that is not found by the above 791 rules. 792 793`--with-gnu-ld' 794 Same as `--with-gnu-as' but for the linker. 795 796`--with-ld=PATHNAME' 797 Same as `--with-as' but for the linker. 798 799`--with-stabs' 800 Specify that stabs debugging information should be used instead of 801 whatever format the host normally uses. Normally GCC uses the 802 same debug format as the host system. 803 804 On MIPS based systems and on Alphas, you must specify whether you 805 want GCC to create the normal ECOFF debugging format, or to use 806 BSD-style stabs passed through the ECOFF symbol table. The normal 807 ECOFF debug format cannot fully handle languages other than C. 808 BSD stabs format can handle other languages, but it only works 809 with the GNU debugger GDB. 810 811 Normally, GCC uses the ECOFF debugging format by default; if you 812 prefer BSD stabs, specify `--with-stabs' when you configure GCC. 813 814 No matter which default you choose when you configure GCC, the user 815 can use the `-gcoff' and `-gstabs+' options to specify explicitly 816 the debug format for a particular compilation. 817 818 `--with-stabs' is meaningful on the ISC system on the 386, also, if 819 `--with-gas' is used. It selects use of stabs debugging 820 information embedded in COFF output. This kind of debugging 821 information supports C++ well; ordinary COFF debugging information 822 does not. 823 824 `--with-stabs' is also meaningful on 386 systems running SVR4. It 825 selects use of stabs debugging information embedded in ELF output. 826 The C++ compiler currently (2.6.0) does not support the DWARF 827 debugging information normally used on 386 SVR4 platforms; stabs 828 provide a workable alternative. This requires gas and gdb, as the 829 normal SVR4 tools can not generate or interpret stabs. 830 831`--with-tls=DIALECT' 832 Specify the default TLS dialect, for systems were there is a 833 choice. For ARM targets, possible values for DIALECT are `gnu' or 834 `gnu2', which select between the original GNU dialect and the GNU 835 TLS descriptor-based dialect. 836 837`--enable-multiarch' 838 Specify whether to enable or disable multiarch support. The 839 default is to check for glibc start files in a multiarch location, 840 and enable it if the files are found. The auto detection is 841 enabled for native builds, and for cross builds configured with 842 `--with-sysroot', and without `--with-native-system-header-dir'. 843 More documentation about multiarch can be found at 844 `https://wiki.debian.org/Multiarch'. 845 846`--enable-sjlj-exceptions' 847 Force use of the `setjmp'/`longjmp'-based scheme for exceptions. 848 `configure' ordinarily picks the correct value based on the 849 platform. Only use this option if you are sure you need a 850 different setting. 851 852`--enable-vtable-verify' 853 Specify whether to enable or disable the vtable verification 854 feature. Enabling this feature causes libstdc++ to be built with 855 its virtual calls in verifiable mode. This means that, when 856 linked with libvtv, every virtual call in libstdc++ will verify 857 the vtable pointer through which the call will be made before 858 actually making the call. If not linked with libvtv, the verifier 859 will call stub functions (in libstdc++ itself) and do nothing. If 860 vtable verification is disabled, then libstdc++ is not built with 861 its virtual calls in verifiable mode at all. However the libvtv 862 library will still be built (see `--disable-libvtv' to turn off 863 building libvtv). `--disable-vtable-verify' is the default. 864 865`--disable-multilib' 866 Specify that multiple target libraries to support different target 867 variants, calling conventions, etc. should not be built. The 868 default is to build a predefined set of them. 869 870 Some targets provide finer-grained control over which multilibs 871 are built (e.g., `--disable-softfloat'): 872 `arm-*-*' 873 fpu, 26bit, underscore, interwork, biendian, nofmult. 874 875 `m68*-*-*' 876 softfloat, m68881, m68000, m68020. 877 878 `mips*-*-*' 879 single-float, biendian, softfloat. 880 881 `powerpc*-*-*, rs6000*-*-*' 882 aix64, pthread, softfloat, powercpu, powerpccpu, powerpcos, 883 biendian, sysv, aix. 884 885 886`--with-multilib-list=LIST' 887`--without-multilib-list' 888 Specify what multilibs to build. Currently only implemented for 889 arm*-*-*, sh*-*-* and x86-64-*-linux*. 890 891 `arm*-*-*' 892 LIST is either `default' or `aprofile'. Specifying `default' 893 is equivalent to omitting this option while specifying 894 `aprofile' builds multilibs for each combination of ISA 895 (`-marm' or `-mthumb'), architecture (`-march=armv7-a', 896 `-march=armv7ve', or `-march=armv8-a'), FPU available (none, 897 `-mfpu=vfpv3-d16', `-mfpu=neon', `-mfpu=vfpv4-d16', 898 `-mfpu=neon-vfpv4' or `-mfpu=neon-fp-armv8' depending on 899 architecture) and floating-point ABI (`-mfloat-abi=softfp' or 900 `-mfloat-abi=hard'). 901 902 `sh*-*-*' 903 LIST is a comma separated list of CPU names. These must be 904 of the form `sh*' or `m*' (in which case they match the 905 compiler option for that processor). The list should not 906 contain any endian options - these are handled by 907 `--with-endian'. 908 909 If LIST is empty, then there will be no multilibs for extra 910 processors. The multilib for the secondary endian remains 911 enabled. 912 913 As a special case, if an entry in the list starts with a `!' 914 (exclamation point), then it is added to the list of excluded 915 multilibs. Entries of this sort should be compatible with 916 `MULTILIB_EXCLUDES' (once the leading `!' has been stripped). 917 918 If `--with-multilib-list' is not given, then a default set of 919 multilibs is selected based on the value of `--target'. This 920 is usually the complete set of libraries, but some targets 921 imply a more specialized subset. 922 923 Example 1: to configure a compiler for SH4A only, but 924 supporting both endians, with little endian being the default: 925 --with-cpu=sh4a --with-endian=little,big --with-multilib-list= 926 927 Example 2: to configure a compiler for both SH4A and 928 SH4AL-DSP, but with only little endian SH4AL: 929 --with-cpu=sh4a --with-endian=little,big \ 930 --with-multilib-list=sh4al,!mb/m4al 931 932 `x86-64-*-linux*' 933 LIST is a comma separated list of `m32', `m64' and `mx32' to 934 enable 32-bit, 64-bit and x32 run-time libraries, 935 respectively. If LIST is empty, then there will be no 936 multilibs and only the default run-time library will be 937 enabled. 938 939 If `--with-multilib-list' is not given, then only 32-bit and 940 64-bit run-time libraries will be enabled. 941 942`--with-endian=ENDIANS' 943 Specify what endians to use. Currently only implemented for 944 sh*-*-*. 945 946 ENDIANS may be one of the following: 947 `big' 948 Use big endian exclusively. 949 950 `little' 951 Use little endian exclusively. 952 953 `big,little' 954 Use big endian by default. Provide a multilib for little 955 endian. 956 957 `little,big' 958 Use little endian by default. Provide a multilib for big 959 endian. 960 961`--enable-threads' 962 Specify that the target supports threads. This affects the 963 Objective-C compiler and runtime library, and exception handling 964 for other languages like C++ and Java. On some systems, this is 965 the default. 966 967 In general, the best (and, in many cases, the only known) threading 968 model available will be configured for use. Beware that on some 969 systems, GCC has not been taught what threading models are 970 generally available for the system. In this case, 971 `--enable-threads' is an alias for `--enable-threads=single'. 972 973`--disable-threads' 974 Specify that threading support should be disabled for the system. 975 This is an alias for `--enable-threads=single'. 976 977`--enable-threads=LIB' 978 Specify that LIB is the thread support library. This affects the 979 Objective-C compiler and runtime library, and exception handling 980 for other languages like C++ and Java. The possibilities for LIB 981 are: 982 983 `aix' 984 AIX thread support. 985 986 `dce' 987 DCE thread support. 988 989 `lynx' 990 LynxOS thread support. 991 992 `mipssde' 993 MIPS SDE thread support. 994 995 `no' 996 This is an alias for `single'. 997 998 `posix' 999 Generic POSIX/Unix98 thread support. 1000 1001 `rtems' 1002 RTEMS thread support. 1003 1004 `single' 1005 Disable thread support, should work for all platforms. 1006 1007 `tpf' 1008 TPF thread support. 1009 1010 `vxworks' 1011 VxWorks thread support. 1012 1013 `win32' 1014 Microsoft Win32 API thread support. 1015 1016`--enable-tls' 1017 Specify that the target supports TLS (Thread Local Storage). 1018 Usually configure can correctly determine if TLS is supported. In 1019 cases where it guesses incorrectly, TLS can be explicitly enabled 1020 or disabled with `--enable-tls' or `--disable-tls'. This can 1021 happen if the assembler supports TLS but the C library does not, 1022 or if the assumptions made by the configure test are incorrect. 1023 1024`--disable-tls' 1025 Specify that the target does not support TLS. This is an alias 1026 for `--enable-tls=no'. 1027 1028`--with-cpu=CPU' 1029`--with-cpu-32=CPU' 1030`--with-cpu-64=CPU' 1031 Specify which cpu variant the compiler should generate code for by 1032 default. CPU will be used as the default value of the `-mcpu=' 1033 switch. This option is only supported on some targets, including 1034 ARC, ARM, i386, M68k, PowerPC, and SPARC. It is mandatory for 1035 ARC. The `--with-cpu-32' and `--with-cpu-64' options specify 1036 separate default CPUs for 32-bit and 64-bit modes; these options 1037 are only supported for i386, x86-64, PowerPC, and SPARC. 1038 1039`--with-schedule=CPU' 1040`--with-arch=CPU' 1041`--with-arch-32=CPU' 1042`--with-arch-64=CPU' 1043`--with-tune=CPU' 1044`--with-tune-32=CPU' 1045`--with-tune-64=CPU' 1046`--with-abi=ABI' 1047`--with-fpu=TYPE' 1048`--with-float=TYPE' 1049 These configure options provide default values for the 1050 `-mschedule=', `-march=', `-mtune=', `-mabi=', and `-mfpu=' 1051 options and for `-mhard-float' or `-msoft-float'. As with 1052 `--with-cpu', which switches will be accepted and acceptable values 1053 of the arguments depend on the target. 1054 1055`--with-mode=MODE' 1056 Specify if the compiler should default to `-marm' or `-mthumb'. 1057 This option is only supported on ARM targets. 1058 1059`--with-stack-offset=NUM' 1060 This option sets the default for the -mstack-offset=NUM option, 1061 and will thus generally also control the setting of this option for 1062 libraries. This option is only supported on Epiphany targets. 1063 1064`--with-fpmath=ISA' 1065 This options sets `-mfpmath=sse' by default and specifies the 1066 default ISA for floating-point arithmetics. You can select either 1067 `sse' which enables `-msse2' or `avx' which enables `-mavx' by 1068 default. This option is only supported on i386 and x86-64 targets. 1069 1070`--with-fp-32=MODE' 1071 On MIPS targets, set the default value for the `-mfp' option when 1072 using the o32 ABI. The possibilities for MODE are: 1073 `32' 1074 Use the o32 FP32 ABI extension, as with the `-mfp32' 1075 command-line option. 1076 1077 `xx' 1078 Use the o32 FPXX ABI extension, as with the `-mfpxx' 1079 command-line option. 1080 1081 `64' 1082 Use the o32 FP64 ABI extension, as with the `-mfp64' 1083 command-line option. 1084 In the absence of this configuration option the default is to use 1085 the o32 FP32 ABI extension. 1086 1087`--with-odd-spreg-32' 1088 On MIPS targets, set the `-modd-spreg' option by default when using 1089 the o32 ABI. 1090 1091`--without-odd-spreg-32' 1092 On MIPS targets, set the `-mno-odd-spreg' option by default when 1093 using the o32 ABI. This is normally used in conjunction with 1094 `--with-fp-32=64' in order to target the o32 FP64A ABI extension. 1095 1096`--with-nan=ENCODING' 1097 On MIPS targets, set the default encoding convention to use for the 1098 special not-a-number (NaN) IEEE 754 floating-point data. The 1099 possibilities for ENCODING are: 1100 `legacy' 1101 Use the legacy encoding, as with the `-mnan=legacy' 1102 command-line option. 1103 1104 `2008' 1105 Use the 754-2008 encoding, as with the `-mnan=2008' 1106 command-line option. 1107 To use this configuration option you must have an assembler version 1108 installed that supports the `-mnan=' command-line option too. In 1109 the absence of this configuration option the default convention is 1110 the legacy encoding, as when neither of the `-mnan=2008' and 1111 `-mnan=legacy' command-line options has been used. 1112 1113`--with-divide=TYPE' 1114 Specify how the compiler should generate code for checking for 1115 division by zero. This option is only supported on the MIPS 1116 target. The possibilities for TYPE are: 1117 `traps' 1118 Division by zero checks use conditional traps (this is the 1119 default on systems that support conditional traps). 1120 1121 `breaks' 1122 Division by zero checks use the break instruction. 1123 1124`--with-llsc' 1125 On MIPS targets, make `-mllsc' the default when no `-mno-llsc' 1126 option is passed. This is the default for Linux-based targets, as 1127 the kernel will emulate them if the ISA does not provide them. 1128 1129`--without-llsc' 1130 On MIPS targets, make `-mno-llsc' the default when no `-mllsc' 1131 option is passed. 1132 1133`--with-synci' 1134 On MIPS targets, make `-msynci' the default when no `-mno-synci' 1135 option is passed. 1136 1137`--without-synci' 1138 On MIPS targets, make `-mno-synci' the default when no `-msynci' 1139 option is passed. This is the default. 1140 1141`--with-mips-plt' 1142 On MIPS targets, make use of copy relocations and PLTs. These 1143 features are extensions to the traditional SVR4-based MIPS ABIs 1144 and require support from GNU binutils and the runtime C library. 1145 1146`--enable-__cxa_atexit' 1147 Define if you want to use __cxa_atexit, rather than atexit, to 1148 register C++ destructors for local statics and global objects. 1149 This is essential for fully standards-compliant handling of 1150 destructors, but requires __cxa_atexit in libc. This option is 1151 currently only available on systems with GNU libc. When enabled, 1152 this will cause `-fuse-cxa-atexit' to be passed by default. 1153 1154`--enable-gnu-indirect-function' 1155 Define if you want to enable the `ifunc' attribute. This option is 1156 currently only available on systems with GNU libc on certain 1157 targets. 1158 1159`--enable-target-optspace' 1160 Specify that target libraries should be optimized for code space 1161 instead of code speed. This is the default for the m32r platform. 1162 1163`--with-cpp-install-dir=DIRNAME' 1164 Specify that the user visible `cpp' program should be installed in 1165 `PREFIX/DIRNAME/cpp', in addition to BINDIR. 1166 1167`--enable-comdat' 1168 Enable COMDAT group support. This is primarily used to override 1169 the automatically detected value. 1170 1171`--enable-initfini-array' 1172 Force the use of sections `.init_array' and `.fini_array' (instead 1173 of `.init' and `.fini') for constructors and destructors. Option 1174 `--disable-initfini-array' has the opposite effect. If neither 1175 option is specified, the configure script will try to guess 1176 whether the `.init_array' and `.fini_array' sections are supported 1177 and, if they are, use them. 1178 1179`--enable-link-mutex' 1180 When building GCC, use a mutex to avoid linking the compilers for 1181 multiple languages at the same time, to avoid thrashing on build 1182 systems with limited free memory. The default is not to use such 1183 a mutex. 1184 1185`--enable-maintainer-mode' 1186 The build rules that regenerate the Autoconf and Automake output 1187 files as well as the GCC master message catalog `gcc.pot' are 1188 normally disabled. This is because it can only be rebuilt if the 1189 complete source tree is present. If you have changed the sources 1190 and want to rebuild the catalog, configuring with 1191 `--enable-maintainer-mode' will enable this. Note that you need a 1192 recent version of the `gettext' tools to do so. 1193 1194`--disable-bootstrap' 1195 For a native build, the default configuration is to perform a 1196 3-stage bootstrap of the compiler when `make' is invoked, testing 1197 that GCC can compile itself correctly. If you want to disable 1198 this process, you can configure with `--disable-bootstrap'. 1199 1200`--enable-bootstrap' 1201 In special cases, you may want to perform a 3-stage build even if 1202 the target and host triplets are different. This is possible when 1203 the host can run code compiled for the target (e.g. host is 1204 i686-linux, target is i486-linux). Starting from GCC 4.2, to do 1205 this you have to configure explicitly with `--enable-bootstrap'. 1206 1207`--enable-generated-files-in-srcdir' 1208 Neither the .c and .h files that are generated from Bison and flex 1209 nor the info manuals and man pages that are built from the .texi 1210 files are present in the SVN development tree. When building GCC 1211 from that development tree, or from one of our snapshots, those 1212 generated files are placed in your build directory, which allows 1213 for the source to be in a readonly directory. 1214 1215 If you configure with `--enable-generated-files-in-srcdir' then 1216 those generated files will go into the source directory. This is 1217 mainly intended for generating release or prerelease tarballs of 1218 the GCC sources, since it is not a requirement that the users of 1219 source releases to have flex, Bison, or makeinfo. 1220 1221`--enable-version-specific-runtime-libs' 1222 Specify that runtime libraries should be installed in the compiler 1223 specific subdirectory (`LIBDIR/gcc') rather than the usual places. 1224 In addition, `libstdc++''s include files will be installed into 1225 `LIBDIR' unless you overruled it by using 1226 `--with-gxx-include-dir=DIRNAME'. Using this option is 1227 particularly useful if you intend to use several versions of GCC in 1228 parallel. This is currently supported by `libgfortran', 1229 `libjava', `libstdc++', and `libobjc'. 1230 1231`--with-aix-soname=`aix', `svr4' or `both'' 1232 Traditional AIX shared library versioning (versioned `Shared 1233 Object' files as members of unversioned `Archive Library' files 1234 named `lib.a') causes numerous headaches for package managers. 1235 However, `Import Files' as members of `Archive Library' files 1236 allow for *filename-based versioning* of shared libraries as seen 1237 on Linux/SVR4, where this is called the "SONAME". But as they 1238 prevent static linking, `Import Files' may be used with `Runtime 1239 Linking' only, where the linker does search for `libNAME.so' 1240 before `libNAME.a' library filenames with the `-lNAME' linker flag. 1241 1242 For detailed information please refer to the AIX ld Command 1243 reference. 1244 1245 As long as shared library creation is enabled, upon: 1246 `--with-aix-soname=aix' 1247 1248 `--with-aix-soname=both' 1249 A (traditional AIX) `Shared Archive Library' file is created: 1250 * using the `libNAME.a' filename scheme 1251 1252 * with the `Shared Object' file as archive member named 1253 `libNAME.so.V' (except for `libgcc_s', where the `Shared 1254 Object' file is named `shr.o' for backwards 1255 compatibility), which 1256 - is used for runtime loading from inside the 1257 `libNAME.a' file 1258 1259 - is used for dynamic loading via 1260 `dlopen("libNAME.a(libNAME.so.V)", RTLD_MEMBER)' 1261 1262 - is used for shared linking 1263 1264 - is used for static linking, so no separate `Static 1265 Archive Library' file is needed 1266 1267 1268 `--with-aix-soname=both' 1269 1270 `--with-aix-soname=svr4' 1271 A (second) `Shared Archive Library' file is created: 1272 * using the `libNAME.so.V' filename scheme 1273 1274 * with the `Shared Object' file as archive member named 1275 `shr.o', which 1276 - is created with the `-G linker flag' 1277 1278 - has the `F_LOADONLY' flag set 1279 1280 - is used for runtime loading from inside the 1281 `libNAME.so.V' file 1282 1283 - is used for dynamic loading via 1284 `dlopen("libNAME.so.V(shr.o)", RTLD_MEMBER)' 1285 1286 1287 * with the `Import File' as archive member named `shr.imp', 1288 which 1289 - refers to `libNAME.so.V(shr.o)' as the "SONAME", to 1290 be recorded in the `Loader Section' of 1291 subsequent binaries 1292 1293 - indicates whether `libNAME.so.V(shr.o)' is 32 or 64 1294 bit 1295 1296 - lists all the public symbols exported by 1297 `lib.so.V(shr.o)', eventually decorated with the 1298 ``weak' Keyword' 1299 1300 - is necessary for shared linking against 1301 `lib.so.V(shr.o)' 1302 1303 A symbolic link using the `libNAME.so' filename scheme is 1304 created: 1305 * pointing to the `libNAME.so.V' `Shared Archive Library' 1306 file 1307 1308 * to permit the `ld Command' to find `lib.so.V(shr.imp)' 1309 via the `-lNAME' argument (requires `Runtime Linking' 1310 to be enabled) 1311 1312 * to permit dynamic loading of `lib.so.V(shr.o)' without 1313 the need to specify the version number via 1314 `dlopen("libNAME.so(shr.o)", RTLD_MEMBER)' 1315 1316 As long as static library creation is enabled, upon: 1317 `--with-aix-soname=svr4' 1318 A `Static Archive Library' is created: 1319 * using the `libNAME.a' filename scheme 1320 1321 * with all the `Static Object' files as archive members, 1322 which 1323 - are used for static linking 1324 1325 1326 While the aix-soname=`svr4' option does not create `Shared Object' 1327 files as members of unversioned `Archive Library' files any more, 1328 package managers still are responsible to transfer `Shared Object' 1329 files found as member of a previously installed unversioned 1330 `Archive Library' file into the newly installed `Archive Library' 1331 file with the same filename. 1332 1333 _WARNING:_ Creating `Shared Object' files with `Runtime Linking' 1334 enabled may bloat the TOC, eventually leading to `TOC overflow' 1335 errors, requiring the use of either the `-Wl,-bbigtoc' linker flag 1336 (seen to break with the `GDB' debugger) or some of the TOC-related 1337 compiler flags, *Note RS/6000 and PowerPC Options: (gcc)RS/6000 1338 and PowerPC Options. 1339 1340 `--with-aix-soname' is currently supported by `libgcc_s' only, so 1341 this option is still experimental and not for normal use yet. 1342 1343 Default is the traditional behavior `--with-aix-soname=`aix''. 1344 1345`--enable-languages=LANG1,LANG2,...' 1346 Specify that only a particular subset of compilers and their 1347 runtime libraries should be built. For a list of valid values for 1348 LANGN you can issue the following command in the `gcc' directory 1349 of your GCC source tree: 1350 grep ^language= */config-lang.in 1351 Currently, you can use any of the following: `all', `ada', `c', 1352 `c++', `fortran', `go', `java', `jit', `lto', `objc', `obj-c++'. 1353 Building the Ada compiler has special requirements, see below. If 1354 you do not pass this flag, or specify the option `all', then all 1355 default languages available in the `gcc' sub-tree will be 1356 configured. Ada, Go, Jit, and Objective-C++ are not default 1357 languages. LTO is not a default language, but is built by default 1358 because `--enable-lto' is enabled by default. The other languages 1359 are default languages. 1360 1361`--enable-stage1-languages=LANG1,LANG2,...' 1362 Specify that a particular subset of compilers and their runtime 1363 libraries should be built with the system C compiler during stage 1364 1 of the bootstrap process, rather than only in later stages with 1365 the bootstrapped C compiler. The list of valid values is the same 1366 as for `--enable-languages', and the option `all' will select all 1367 of the languages enabled by `--enable-languages'. This option is 1368 primarily useful for GCC development; for instance, when a 1369 development version of the compiler cannot bootstrap due to 1370 compiler bugs, or when one is debugging front ends other than the 1371 C front end. When this option is used, one can then build the 1372 target libraries for the specified languages with the stage-1 1373 compiler by using `make stage1-bubble all-target', or run the 1374 testsuite on the stage-1 compiler for the specified languages 1375 using `make stage1-start check-gcc'. 1376 1377`--disable-libada' 1378 Specify that the run-time libraries and tools used by GNAT should 1379 not be built. This can be useful for debugging, or for 1380 compatibility with previous Ada build procedures, when it was 1381 required to explicitly do a `make -C gcc gnatlib_and_tools'. 1382 1383`--disable-libsanitizer' 1384 Specify that the run-time libraries for the various sanitizers 1385 should not be built. 1386 1387`--disable-libssp' 1388 Specify that the run-time libraries for stack smashing protection 1389 should not be built. 1390 1391`--disable-libquadmath' 1392 Specify that the GCC quad-precision math library should not be 1393 built. On some systems, the library is required to be linkable 1394 when building the Fortran front end, unless 1395 `--disable-libquadmath-support' is used. 1396 1397`--disable-libquadmath-support' 1398 Specify that the Fortran front end and `libgfortran' do not add 1399 support for `libquadmath' on systems supporting it. 1400 1401`--disable-libgomp' 1402 Specify that the GNU Offloading and Multi Processing Runtime 1403 Library should not be built. 1404 1405`--disable-libvtv' 1406 Specify that the run-time libraries used by vtable verification 1407 should not be built. 1408 1409`--with-dwarf2' 1410 Specify that the compiler should use DWARF 2 debugging information 1411 as the default. 1412 1413`--with-advance-toolchain=AT' 1414 On 64-bit PowerPC Linux systems, configure the compiler to use the 1415 header files, library files, and the dynamic linker from the 1416 Advance Toolchain release AT instead of the default versions that 1417 are provided by the Linux distribution. In general, this option is 1418 intended for the developers of GCC, and it is not intended for 1419 general use. 1420 1421`--enable-targets=all' 1422`--enable-targets=TARGET_LIST' 1423 Some GCC targets, e.g. powerpc64-linux, build bi-arch compilers. 1424 These are compilers that are able to generate either 64-bit or 1425 32-bit code. Typically, the corresponding 32-bit target, e.g. 1426 powerpc-linux for powerpc64-linux, only generates 32-bit code. 1427 This option enables the 32-bit target to be a bi-arch compiler, 1428 which is useful when you want a bi-arch compiler that defaults to 1429 32-bit, and you are building a bi-arch or multi-arch binutils in a 1430 combined tree. On mips-linux, this will build a tri-arch compiler 1431 (ABI o32/n32/64), defaulted to o32. Currently, this option only 1432 affects sparc-linux, powerpc-linux, x86-linux, mips-linux and 1433 s390-linux. 1434 1435`--enable-default-pie' 1436 Turn on `-fPIE' and `-pie' by default. 1437 1438`--enable-secureplt' 1439 This option enables `-msecure-plt' by default for powerpc-linux. 1440 *Note RS/6000 and PowerPC Options: (gcc)RS/6000 and PowerPC 1441 Options, 1442 1443`--enable-default-ssp' 1444 Turn on `-fstack-protector-strong' by default. 1445 1446`--enable-cld' 1447 This option enables `-mcld' by default for 32-bit x86 targets. 1448 *Note i386 and x86-64 Options: (gcc)i386 and x86-64 Options, 1449 1450`--enable-win32-registry' 1451`--enable-win32-registry=KEY' 1452`--disable-win32-registry' 1453 The `--enable-win32-registry' option enables Microsoft 1454 Windows-hosted GCC to look up installations paths in the registry 1455 using the following key: 1456 1457 `HKEY_LOCAL_MACHINE\SOFTWARE\Free Software Foundation\KEY' 1458 1459 KEY defaults to GCC version number, and can be overridden by the 1460 `--enable-win32-registry=KEY' option. Vendors and distributors 1461 who use custom installers are encouraged to provide a different 1462 key, perhaps one comprised of vendor name and GCC version number, 1463 to avoid conflict with existing installations. This feature is 1464 enabled by default, and can be disabled by 1465 `--disable-win32-registry' option. This option has no effect on 1466 the other hosts. 1467 1468`--nfp' 1469 Specify that the machine does not have a floating point unit. This 1470 option only applies to `m68k-sun-sunosN'. On any other system, 1471 `--nfp' has no effect. 1472 1473`--enable-werror' 1474`--disable-werror' 1475`--enable-werror=yes' 1476`--enable-werror=no' 1477 When you specify this option, it controls whether certain files in 1478 the compiler are built with `-Werror' in bootstrap stage2 and 1479 later. If you don't specify it, `-Werror' is turned on for the 1480 main development trunk. However it defaults to off for release 1481 branches and final releases. The specific files which get 1482 `-Werror' are controlled by the Makefiles. 1483 1484`--enable-checking' 1485`--enable-checking=LIST' 1486 When you specify this option, the compiler is built to perform 1487 internal consistency checks of the requested complexity. This 1488 does not change the generated code, but adds error checking within 1489 the compiler. This will slow down the compiler and may only work 1490 properly if you are building the compiler with GCC. This is `yes' 1491 by default when building from SVN or snapshots, but `release' for 1492 releases. The default for building the stage1 compiler is `yes'. 1493 More control over the checks may be had by specifying LIST. The 1494 categories of checks available are `yes' (most common checks 1495 `assert,misc,tree,gc,rtlflag,runtime'), `no' (no checks at all), 1496 `all' (all but `valgrind'), `release' (cheapest checks 1497 `assert,runtime') or `none' (same as `no'). Individual checks can 1498 be enabled with these flags `assert', `df', `fold', `gc', `gcac' 1499 `misc', `rtl', `rtlflag', `runtime', `tree', and `valgrind'. 1500 1501 The `valgrind' check requires the external `valgrind' simulator, 1502 available from `http://valgrind.org/'. The `df', `rtl', `gcac' 1503 and `valgrind' checks are very expensive. To disable all 1504 checking, `--disable-checking' or `--enable-checking=none' must be 1505 explicitly requested. Disabling assertions will make the compiler 1506 and runtime slightly faster but increase the risk of undetected 1507 internal errors causing wrong code to be generated. 1508 1509`--disable-stage1-checking' 1510`--enable-stage1-checking' 1511`--enable-stage1-checking=LIST' 1512 If no `--enable-checking' option is specified the stage1 compiler 1513 will be built with `yes' checking enabled, otherwise the stage1 1514 checking flags are the same as specified by `--enable-checking'. 1515 To build the stage1 compiler with different checking options use 1516 `--enable-stage1-checking'. The list of checking options is the 1517 same as for `--enable-checking'. If your system is too slow or 1518 too small to bootstrap a released compiler with checking for 1519 stage1 enabled, you can use `--disable-stage1-checking' to disable 1520 checking for the stage1 compiler. 1521 1522`--enable-coverage' 1523`--enable-coverage=LEVEL' 1524 With this option, the compiler is built to collect self coverage 1525 information, every time it is run. This is for internal 1526 development purposes, and only works when the compiler is being 1527 built with gcc. The LEVEL argument controls whether the compiler 1528 is built optimized or not, values are `opt' and `noopt'. For 1529 coverage analysis you want to disable optimization, for 1530 performance analysis you want to enable optimization. When 1531 coverage is enabled, the default level is without optimization. 1532 1533`--enable-gather-detailed-mem-stats' 1534 When this option is specified more detailed information on memory 1535 allocation is gathered. This information is printed when using 1536 `-fmem-report'. 1537 1538`--enable-valgrind-annotations' 1539 Mark selected memory related operations in the compiler when run 1540 under valgrind to suppress false positives. 1541 1542`--enable-nls' 1543`--disable-nls' 1544 The `--enable-nls' option enables Native Language Support (NLS), 1545 which lets GCC output diagnostics in languages other than American 1546 English. Native Language Support is enabled by default if not 1547 doing a canadian cross build. The `--disable-nls' option disables 1548 NLS. 1549 1550`--with-included-gettext' 1551 If NLS is enabled, the `--with-included-gettext' option causes the 1552 build procedure to prefer its copy of GNU `gettext'. 1553 1554`--with-catgets' 1555 If NLS is enabled, and if the host lacks `gettext' but has the 1556 inferior `catgets' interface, the GCC build procedure normally 1557 ignores `catgets' and instead uses GCC's copy of the GNU `gettext' 1558 library. The `--with-catgets' option causes the build procedure 1559 to use the host's `catgets' in this situation. 1560 1561`--with-libiconv-prefix=DIR' 1562 Search for libiconv header files in `DIR/include' and libiconv 1563 library files in `DIR/lib'. 1564 1565`--enable-obsolete' 1566 Enable configuration for an obsoleted system. If you attempt to 1567 configure GCC for a system (build, host, or target) which has been 1568 obsoleted, and you do not specify this flag, configure will halt 1569 with an error message. 1570 1571 All support for systems which have been obsoleted in one release 1572 of GCC is removed entirely in the next major release, unless 1573 someone steps forward to maintain the port. 1574 1575`--enable-decimal-float' 1576`--enable-decimal-float=yes' 1577`--enable-decimal-float=no' 1578`--enable-decimal-float=bid' 1579`--enable-decimal-float=dpd' 1580`--disable-decimal-float' 1581 Enable (or disable) support for the C decimal floating point 1582 extension that is in the IEEE 754-2008 standard. This is enabled 1583 by default only on PowerPC, i386, and x86_64 GNU/Linux systems. 1584 Other systems may also support it, but require the user to 1585 specifically enable it. You can optionally control which decimal 1586 floating point format is used (either `bid' or `dpd'). The `bid' 1587 (binary integer decimal) format is default on i386 and x86_64 1588 systems, and the `dpd' (densely packed decimal) format is default 1589 on PowerPC systems. 1590 1591`--enable-fixed-point' 1592`--disable-fixed-point' 1593 Enable (or disable) support for C fixed-point arithmetic. This 1594 option is enabled by default for some targets (such as MIPS) which 1595 have hardware-support for fixed-point operations. On other 1596 targets, you may enable this option manually. 1597 1598`--with-long-double-128' 1599 Specify if `long double' type should be 128-bit by default on 1600 selected GNU/Linux architectures. If using 1601 `--without-long-double-128', `long double' will be by default 1602 64-bit, the same as `double' type. When neither of these 1603 configure options are used, the default will be 128-bit `long 1604 double' when built against GNU C Library 2.4 and later, 64-bit 1605 `long double' otherwise. 1606 1607`--enable-fdpic' 1608 On SH Linux systems, generate ELF FDPIC code. 1609 1610`--with-gmp=PATHNAME' 1611`--with-gmp-include=PATHNAME' 1612`--with-gmp-lib=PATHNAME' 1613`--with-mpfr=PATHNAME' 1614`--with-mpfr-include=PATHNAME' 1615`--with-mpfr-lib=PATHNAME' 1616`--with-mpc=PATHNAME' 1617`--with-mpc-include=PATHNAME' 1618`--with-mpc-lib=PATHNAME' 1619 If you want to build GCC but do not have the GMP library, the MPFR 1620 library and/or the MPC library installed in a standard location and 1621 do not have their sources present in the GCC source tree then you 1622 can explicitly specify the directory where they are installed 1623 (`--with-gmp=GMPINSTALLDIR', `--with-mpfr=MPFRINSTALLDIR', 1624 `--with-mpc=MPCINSTALLDIR'). The `--with-gmp=GMPINSTALLDIR' 1625 option is shorthand for `--with-gmp-lib=GMPINSTALLDIR/lib' and 1626 `--with-gmp-include=GMPINSTALLDIR/include'. Likewise the 1627 `--with-mpfr=MPFRINSTALLDIR' option is shorthand for 1628 `--with-mpfr-lib=MPFRINSTALLDIR/lib' and 1629 `--with-mpfr-include=MPFRINSTALLDIR/include', also the 1630 `--with-mpc=MPCINSTALLDIR' option is shorthand for 1631 `--with-mpc-lib=MPCINSTALLDIR/lib' and 1632 `--with-mpc-include=MPCINSTALLDIR/include'. If these shorthand 1633 assumptions are not correct, you can use the explicit include and 1634 lib options directly. You might also need to ensure the shared 1635 libraries can be found by the dynamic linker when building and 1636 using GCC, for example by setting the runtime shared library path 1637 variable (`LD_LIBRARY_PATH' on GNU/Linux and Solaris systems). 1638 1639 These flags are applicable to the host platform only. When 1640 building a cross compiler, they will not be used to configure 1641 target libraries. 1642 1643`--with-isl=PATHNAME' 1644`--with-isl-include=PATHNAME' 1645`--with-isl-lib=PATHNAME' 1646 If you do not have the isl library installed in a standard 1647 location and you want to build GCC, you can explicitly specify the 1648 directory where it is installed (`--with-isl=ISLINSTALLDIR'). The 1649 `--with-isl=ISLINSTALLDIR' option is shorthand for 1650 `--with-isl-lib=ISLINSTALLDIR/lib' and 1651 `--with-isl-include=ISLINSTALLDIR/include'. If this shorthand 1652 assumption is not correct, you can use the explicit include and 1653 lib options directly. 1654 1655 These flags are applicable to the host platform only. When 1656 building a cross compiler, they will not be used to configure 1657 target libraries. 1658 1659`--with-stage1-ldflags=FLAGS' 1660 This option may be used to set linker flags to be used when linking 1661 stage 1 of GCC. These are also used when linking GCC if 1662 configured with `--disable-bootstrap'. If `--with-stage1-libs' is 1663 not set to a value, then the default is `-static-libstdc++ 1664 -static-libgcc', if supported. 1665 1666`--with-stage1-libs=LIBS' 1667 This option may be used to set libraries to be used when linking 1668 stage 1 of GCC. These are also used when linking GCC if 1669 configured with `--disable-bootstrap'. 1670 1671`--with-boot-ldflags=FLAGS' 1672 This option may be used to set linker flags to be used when linking 1673 stage 2 and later when bootstrapping GCC. If -with-boot-libs is 1674 not is set to a value, then the default is `-static-libstdc++ 1675 -static-libgcc'. 1676 1677`--with-boot-libs=LIBS' 1678 This option may be used to set libraries to be used when linking 1679 stage 2 and later when bootstrapping GCC. 1680 1681`--with-debug-prefix-map=MAP' 1682 Convert source directory names using `-fdebug-prefix-map' when 1683 building runtime libraries. `MAP' is a space-separated list of 1684 maps of the form `OLD=NEW'. 1685 1686`--enable-linker-build-id' 1687 Tells GCC to pass `--build-id' option to the linker for all final 1688 links (links performed without the `-r' or `--relocatable' 1689 option), if the linker supports it. If you specify 1690 `--enable-linker-build-id', but your linker does not support 1691 `--build-id' option, a warning is issued and the 1692 `--enable-linker-build-id' option is ignored. The default is off. 1693 1694`--with-linker-hash-style=CHOICE' 1695 Tells GCC to pass `--hash-style=CHOICE' option to the linker for 1696 all final links. CHOICE can be one of `sysv', `gnu', and `both' 1697 where `sysv' is the default. 1698 1699`--enable-gnu-unique-object' 1700`--disable-gnu-unique-object' 1701 Tells GCC to use the gnu_unique_object relocation for C++ template 1702 static data members and inline function local statics. Enabled by 1703 default for a toolchain with an assembler that accepts it and 1704 GLIBC 2.11 or above, otherwise disabled. 1705 1706`--with-diagnostics-color=CHOICE' 1707 Tells GCC to use CHOICE as the default for `-fdiagnostics-color=' 1708 option (if not used explicitly on the command line). CHOICE can 1709 be one of `never', `auto', `always', and `auto-if-env' where 1710 `auto' is the default. `auto-if-env' means that 1711 `-fdiagnostics-color=auto' will be the default if `GCC_COLORS' is 1712 present and non-empty in the environment, and 1713 `-fdiagnostics-color=never' otherwise. 1714 1715`--enable-lto' 1716`--disable-lto' 1717 Enable support for link-time optimization (LTO). This is enabled 1718 by default, and may be disabled using `--disable-lto'. 1719 1720`--enable-linker-plugin-configure-flags=FLAGS' 1721`--enable-linker-plugin-flags=FLAGS' 1722 By default, linker plugins (such as the LTO plugin) are built for 1723 the host system architecture. For the case that the linker has a 1724 different (but run-time compatible) architecture, these flags can 1725 be specified to build plugins that are compatible to the linker. 1726 For example, if you are building GCC for a 64-bit x86_64 1727 (`x86_64-unknown-linux-gnu') host system, but have a 32-bit x86 1728 GNU/Linux (`i686-pc-linux-gnu') linker executable (which is 1729 executable on the former system), you can configure GCC as follows 1730 for getting compatible linker plugins: 1731 1732 % SRCDIR/configure \ 1733 --host=x86_64-unknown-linux-gnu \ 1734 --enable-linker-plugin-configure-flags=--host=i686-pc-linux-gnu \ 1735 --enable-linker-plugin-flags='CC=gcc\ -m32\ -Wl,-rpath,[...]/i686-pc-linux-gnu/lib' 1736 1737`--with-plugin-ld=PATHNAME' 1738 Enable an alternate linker to be used at link-time optimization 1739 (LTO) link time when `-fuse-linker-plugin' is enabled. This 1740 linker should have plugin support such as gold starting with 1741 version 2.20 or GNU ld starting with version 2.21. See 1742 `-fuse-linker-plugin' for details. 1743 1744`--enable-canonical-system-headers' 1745`--disable-canonical-system-headers' 1746 Enable system header path canonicalization for `libcpp'. This can 1747 produce shorter header file paths in diagnostics and dependency 1748 output files, but these changed header paths may conflict with 1749 some compilation environments. Enabled by default, and may be 1750 disabled using `--disable-canonical-system-headers'. 1751 1752`--with-glibc-version=MAJOR.MINOR' 1753 Tell GCC that when the GNU C Library (glibc) is used on the target 1754 it will be version MAJOR.MINOR or later. Normally this can be 1755 detected from the C library's header files, but this option may be 1756 needed when bootstrapping a cross toolchain without the header 1757 files available for building the initial bootstrap compiler. 1758 1759 If GCC is configured with some multilibs that use glibc and some 1760 that do not, this option applies only to the multilibs that use 1761 glibc. However, such configurations may not work well as not all 1762 the relevant configuration in GCC is on a per-multilib basis. 1763 1764`--enable-as-accelerator-for=TARGET' 1765 Build as offload target compiler. Specify offload host triple by 1766 TARGET. 1767 1768`--enable-offload-targets=TARGET1[=PATH1],...,TARGETN[=PATHN]' 1769 Enable offloading to targets TARGET1, ..., TARGETN. Offload 1770 compilers are expected to be already installed. Default search 1771 path for them is `EXEC-PREFIX', but it can be changed by 1772 specifying paths PATH1, ..., PATHN. 1773 1774 % SRCDIR/configure \ 1775 --enable-offload-target=i686-unknown-linux-gnu=/path/to/i686/compiler,x86_64-pc-linux-gnu 1776 1777 If `hsa' is specified as one of the targets, the compiler will be 1778 built with support for HSA GPU accelerators. Because the same 1779 compiler will emit the accelerator code, no path should be 1780 specified. 1781 1782`--with-hsa-runtime=PATHNAME' 1783`--with-hsa-runtime-include=PATHNAME' 1784`--with-hsa-runtime-lib=PATHNAME' 1785 If you configure GCC with HSA offloading but do not have the HSA 1786 run-time library installed in a standard location then you can 1787 explicitly specify the directory where they are installed. The 1788 `--with-hsa-runtime=HSAINSTALLDIR' option is a shorthand for 1789 `--with-hsa-runtime-lib=HSAINSTALLDIR/lib' and 1790 `--with-hsa-runtime-include=HSAINSTALLDIR/include'. 1791 1792`--with-hsa-kmt-lib=PATHNAME' 1793 If you configure GCC with HSA offloading but do not have the HSA 1794 KMT library installed in a standard location then you can 1795 explicitly specify the directory where it resides. 1796 1797Cross-Compiler-Specific Options 1798------------------------------- 1799 1800The following options only apply to building cross compilers. 1801 1802`--with-sysroot' 1803`--with-sysroot=DIR' 1804 Tells GCC to consider DIR as the root of a tree that contains (a 1805 subset of) the root filesystem of the target operating system. 1806 Target system headers, libraries and run-time object files will be 1807 searched for in there. More specifically, this acts as if 1808 `--sysroot=DIR' was added to the default options of the built 1809 compiler. The specified directory is not copied into the install 1810 tree, unlike the options `--with-headers' and `--with-libs' that 1811 this option obsoletes. The default value, in case 1812 `--with-sysroot' is not given an argument, is 1813 `${gcc_tooldir}/sys-root'. If the specified directory is a 1814 subdirectory of `${exec_prefix}', then it will be found relative to 1815 the GCC binaries if the installation tree is moved. 1816 1817 This option affects the system root for the compiler used to build 1818 target libraries (which runs on the build system) and the compiler 1819 newly installed with `make install'; it does not affect the 1820 compiler which is used to build GCC itself. 1821 1822 If you specify the `--with-native-system-header-dir=DIRNAME' 1823 option then the compiler will search that directory within DIRNAME 1824 for native system headers rather than the default `/usr/include'. 1825 1826`--with-build-sysroot' 1827`--with-build-sysroot=DIR' 1828 Tells GCC to consider DIR as the system root (see 1829 `--with-sysroot') while building target libraries, instead of the 1830 directory specified with `--with-sysroot'. This option is only 1831 useful when you are already using `--with-sysroot'. You can use 1832 `--with-build-sysroot' when you are configuring with `--prefix' 1833 set to a directory that is different from the one in which you are 1834 installing GCC and your target libraries. 1835 1836 This option affects the system root for the compiler used to build 1837 target libraries (which runs on the build system); it does not 1838 affect the compiler which is used to build GCC itself. 1839 1840 If you specify the `--with-native-system-header-dir=DIRNAME' 1841 option then the compiler will search that directory within DIRNAME 1842 for native system headers rather than the default `/usr/include'. 1843 1844`--with-headers' 1845`--with-headers=DIR' 1846 Deprecated in favor of `--with-sysroot'. Specifies that target 1847 headers are available when building a cross compiler. The DIR 1848 argument specifies a directory which has the target include files. 1849 These include files will be copied into the `gcc' install 1850 directory. _This option with the DIR argument is required_ when 1851 building a cross compiler, if `PREFIX/TARGET/sys-include' doesn't 1852 pre-exist. If `PREFIX/TARGET/sys-include' does pre-exist, the DIR 1853 argument may be omitted. `fixincludes' will be run on these files 1854 to make them compatible with GCC. 1855 1856`--without-headers' 1857 Tells GCC not use any target headers from a libc when building a 1858 cross compiler. When crossing to GNU/Linux, you need the headers 1859 so GCC can build the exception handling for libgcc. 1860 1861`--with-libs' 1862`--with-libs="DIR1 DIR2 ... DIRN"' 1863 Deprecated in favor of `--with-sysroot'. Specifies a list of 1864 directories which contain the target runtime libraries. These 1865 libraries will be copied into the `gcc' install directory. If the 1866 directory list is omitted, this option has no effect. 1867 1868`--with-newlib' 1869 Specifies that `newlib' is being used as the target C library. 1870 This causes `__eprintf' to be omitted from `libgcc.a' on the 1871 assumption that it will be provided by `newlib'. 1872 1873`--with-avrlibc' 1874 Specifies that `AVR-Libc' is being used as the target C library. 1875 This causes float support functions like `__addsf3' to be omitted 1876 from `libgcc.a' on the assumption that it will be provided by 1877 `libm.a'. For more technical details, cf. PR54461. This option 1878 is only supported for the AVR target. It is not supported for 1879 RTEMS configurations, which currently use newlib. The option is 1880 supported since version 4.7.2 and is the default in 4.8.0 and 1881 newer. 1882 1883`--with-nds32-lib=LIBRARY' 1884 Specifies that LIBRARY setting is used for building `libgcc.a'. 1885 Currently, the valid LIBRARY is `newlib' or `mculib'. This option 1886 is only supported for the NDS32 target. 1887 1888`--with-build-time-tools=DIR' 1889 Specifies where to find the set of target tools (assembler, 1890 linker, etc.) that will be used while building GCC itself. This 1891 option can be useful if the directory layouts are different 1892 between the system you are building GCC on, and the system where 1893 you will deploy it. 1894 1895 For example, on an `ia64-hp-hpux' system, you may have the GNU 1896 assembler and linker in `/usr/bin', and the native tools in a 1897 different path, and build a toolchain that expects to find the 1898 native tools in `/usr/bin'. 1899 1900 When you use this option, you should ensure that DIR includes 1901 `ar', `as', `ld', `nm', `ranlib' and `strip' if necessary, and 1902 possibly `objdump'. Otherwise, GCC may use an inconsistent set of 1903 tools. 1904 1905Overriding `configure' test results 1906................................... 1907 1908Sometimes, it might be necessary to override the result of some 1909`configure' test, for example in order to ease porting to a new system 1910or work around a bug in a test. The toplevel `configure' script 1911provides three variables for this: 1912 1913`build_configargs' 1914 The contents of this variable is passed to all build `configure' 1915 scripts. 1916 1917`host_configargs' 1918 The contents of this variable is passed to all host `configure' 1919 scripts. 1920 1921`target_configargs' 1922 The contents of this variable is passed to all target `configure' 1923 scripts. 1924 1925 1926 In order to avoid shell and `make' quoting issues for complex 1927overrides, you can pass a setting for `CONFIG_SITE' and set variables 1928in the site file. 1929 1930Java-Specific Options 1931--------------------- 1932 1933The following option applies to the build of the Java front end. 1934 1935`--disable-libgcj' 1936 Specify that the run-time libraries used by GCJ should not be 1937 built. This is useful in case you intend to use GCJ with some 1938 other run-time, or you're going to install it separately, or it 1939 just happens not to build on your particular machine. In general, 1940 if the Java front end is enabled, the GCJ libraries will be 1941 enabled too, unless they're known to not work on the target 1942 platform. If GCJ is enabled but `libgcj' isn't built, you may 1943 need to port it; in this case, before modifying the top-level 1944 `configure.ac' so that `libgcj' is enabled by default on this 1945 platform, you may use `--enable-libgcj' to override the default. 1946 1947 1948 The following options apply to building `libgcj'. 1949 1950General Options 1951............... 1952 1953`--enable-java-maintainer-mode' 1954 By default the `libjava' build will not attempt to compile the 1955 `.java' source files to `.class'. Instead, it will use the 1956 `.class' files from the source tree. If you use this option you 1957 must have executables named `ecj1' and `gjavah' in your path for 1958 use by the build. You must use this option if you intend to 1959 modify any `.java' files in `libjava'. 1960 1961`--with-java-home=DIRNAME' 1962 This `libjava' option overrides the default value of the 1963 `java.home' system property. It is also used to set 1964 `sun.boot.class.path' to `DIRNAME/lib/rt.jar'. By default 1965 `java.home' is set to `PREFIX' and `sun.boot.class.path' to 1966 `DATADIR/java/libgcj-VERSION.jar'. 1967 1968`--with-ecj-jar=FILENAME' 1969 This option can be used to specify the location of an external jar 1970 file containing the Eclipse Java compiler. A specially modified 1971 version of this compiler is used by `gcj' to parse `.java' source 1972 files. If this option is given, the `libjava' build will create 1973 and install an `ecj1' executable which uses this jar file at 1974 runtime. 1975 1976 If this option is not given, but an `ecj.jar' file is found in the 1977 topmost source tree at configure time, then the `libgcj' build 1978 will create and install `ecj1', and will also install the 1979 discovered `ecj.jar' into a suitable place in the install tree. 1980 1981 If `ecj1' is not installed, then the user will have to supply one 1982 on his path in order for `gcj' to properly parse `.java' source 1983 files. A suitable jar is available from 1984 `ftp://sourceware.org/pub/java/'. 1985 1986`--disable-getenv-properties' 1987 Don't set system properties from `GCJ_PROPERTIES'. 1988 1989`--enable-hash-synchronization' 1990 Use a global hash table for monitor locks. Ordinarily, `libgcj''s 1991 `configure' script automatically makes the correct choice for this 1992 option for your platform. Only use this if you know you need the 1993 library to be configured differently. 1994 1995`--enable-interpreter' 1996 Enable the Java interpreter. The interpreter is automatically 1997 enabled by default on all platforms that support it. This option 1998 is really only useful if you want to disable the interpreter 1999 (using `--disable-interpreter'). 2000 2001`--disable-java-net' 2002 Disable java.net. This disables the native part of java.net only, 2003 using non-functional stubs for native method implementations. 2004 2005`--disable-jvmpi' 2006 Disable JVMPI support. 2007 2008`--disable-libgcj-bc' 2009 Disable BC ABI compilation of certain parts of libgcj. By default, 2010 some portions of libgcj are compiled with `-findirect-dispatch' 2011 and `-fno-indirect-classes', allowing them to be overridden at 2012 run-time. 2013 2014 If `--disable-libgcj-bc' is specified, libgcj is built without 2015 these options. This allows the compile-time linker to resolve 2016 dependencies when statically linking to libgcj. However it makes 2017 it impossible to override the affected portions of libgcj at 2018 run-time. 2019 2020`--enable-reduced-reflection' 2021 Build most of libgcj with `-freduced-reflection'. This reduces 2022 the size of libgcj at the expense of not being able to do accurate 2023 reflection on the classes it contains. This option is safe if you 2024 know that code using libgcj will never use reflection on the 2025 standard runtime classes in libgcj (including using serialization, 2026 RMI or CORBA). 2027 2028`--with-ecos' 2029 Enable runtime eCos target support. 2030 2031`--without-libffi' 2032 Don't use `libffi'. This will disable the interpreter and JNI 2033 support as well, as these require `libffi' to work. 2034 2035`--enable-libgcj-debug' 2036 Enable runtime debugging code. 2037 2038`--enable-libgcj-multifile' 2039 If specified, causes all `.java' source files to be compiled into 2040 `.class' files in one invocation of `gcj'. This can speed up 2041 build time, but is more resource-intensive. If this option is 2042 unspecified or disabled, `gcj' is invoked once for each `.java' 2043 file to compile into a `.class' file. 2044 2045`--with-libiconv-prefix=DIR' 2046 Search for libiconv in `DIR/include' and `DIR/lib'. 2047 2048`--with-system-zlib' 2049 Use installed `zlib' rather than that included with GCC. 2050 2051`--with-win32-nlsapi=ansi, unicows or unicode' 2052 Indicates how MinGW `libgcj' translates between UNICODE characters 2053 and the Win32 API. 2054 2055`--enable-java-home' 2056 If enabled, this creates a JPackage compatible SDK environment 2057 during install. Note that if -enable-java-home is used, 2058 -with-arch-directory=ARCH must also be specified. 2059 2060`--with-arch-directory=ARCH' 2061 Specifies the name to use for the `jre/lib/ARCH' directory in the 2062 SDK environment created when -enable-java-home is passed. Typical 2063 names for this directory include i386, amd64, ia64, etc. 2064 2065`--with-os-directory=DIR' 2066 Specifies the OS directory for the SDK include directory. This is 2067 set to auto detect, and is typically 'linux'. 2068 2069`--with-origin-name=NAME' 2070 Specifies the JPackage origin name. This defaults to the 'gcj' in 2071 java-1.5.0-gcj. 2072 2073`--with-arch-suffix=SUFFIX' 2074 Specifies the suffix for the sdk directory. Defaults to the empty 2075 string. Examples include '.x86_64' in 2076 'java-1.5.0-gcj-1.5.0.0.x86_64'. 2077 2078`--with-jvm-root-dir=DIR' 2079 Specifies where to install the SDK. Default is $(prefix)/lib/jvm. 2080 2081`--with-jvm-jar-dir=DIR' 2082 Specifies where to install jars. Default is 2083 $(prefix)/lib/jvm-exports. 2084 2085`--with-python-dir=DIR' 2086 Specifies where to install the Python modules used for 2087 aot-compile. DIR should not include the prefix used in 2088 installation. For example, if the Python modules are to be 2089 installed in /usr/lib/python2.5/site-packages, then 2090 -with-python-dir=/lib/python2.5/site-packages should be passed. If 2091 this is not specified, then the Python modules are installed in 2092 $(prefix)/share/python. 2093 2094`--enable-aot-compile-rpm' 2095 Adds aot-compile-rpm to the list of installed scripts. 2096 2097`--enable-browser-plugin' 2098 Build the gcjwebplugin web browser plugin. 2099 2100`--enable-static-libjava' 2101 Build static libraries in libjava. The default is to only build 2102 shared libraries. 2103 2104 `ansi' 2105 Use the single-byte `char' and the Win32 A functions natively, 2106 translating to and from UNICODE when using these functions. 2107 If unspecified, this is the default. 2108 2109 `unicows' 2110 Use the `WCHAR' and Win32 W functions natively. Adds 2111 `-lunicows' to `libgcj.spec' to link with `libunicows'. 2112 `unicows.dll' needs to be deployed on Microsoft Windows 9X 2113 machines running built executables. `libunicows.a', an 2114 open-source import library around Microsoft's `unicows.dll', 2115 is obtained from `http://libunicows.sourceforge.net/', which 2116 also gives details on getting `unicows.dll' from Microsoft. 2117 2118 `unicode' 2119 Use the `WCHAR' and Win32 W functions natively. Does _not_ 2120 add `-lunicows' to `libgcj.spec'. The built executables will 2121 only run on Microsoft Windows NT and above. 2122 2123AWT-Specific Options 2124.................... 2125 2126`--with-x' 2127 Use the X Window System. 2128 2129`--enable-java-awt=PEER(S)' 2130 Specifies the AWT peer library or libraries to build alongside 2131 `libgcj'. If this option is unspecified or disabled, AWT will be 2132 non-functional. Current valid values are `gtk' and `xlib'. 2133 Multiple libraries should be separated by a comma (i.e. 2134 `--enable-java-awt=gtk,xlib'). 2135 2136`--enable-gtk-cairo' 2137 Build the cairo Graphics2D implementation on GTK. 2138 2139`--enable-java-gc=TYPE' 2140 Choose garbage collector. Defaults to `boehm' if unspecified. 2141 2142`--disable-gtktest' 2143 Do not try to compile and run a test GTK+ program. 2144 2145`--disable-glibtest' 2146 Do not try to compile and run a test GLIB program. 2147 2148`--with-libart-prefix=PFX' 2149 Prefix where libart is installed (optional). 2150 2151`--with-libart-exec-prefix=PFX' 2152 Exec prefix where libart is installed (optional). 2153 2154`--disable-libarttest' 2155 Do not try to compile and run a test libart program. 2156 2157 2158 2159File: gccinstall.info, Node: Building, Next: Testing, Prev: Configuration, Up: Installing GCC 2160 21615 Building 2162********** 2163 2164 Now that GCC is configured, you are ready to build the compiler and 2165runtime libraries. 2166 2167 Some commands executed when making the compiler may fail (return a 2168nonzero status) and be ignored by `make'. These failures, which are 2169often due to files that were not found, are expected, and can safely be 2170ignored. 2171 2172 It is normal to have compiler warnings when compiling certain files. 2173Unless you are a GCC developer, you can generally ignore these warnings 2174unless they cause compilation to fail. Developers should attempt to fix 2175any warnings encountered, however they can temporarily continue past 2176warnings-as-errors by specifying the configure flag `--disable-werror'. 2177 2178 On certain old systems, defining certain environment variables such 2179as `CC' can interfere with the functioning of `make'. 2180 2181 If you encounter seemingly strange errors when trying to build the 2182compiler in a directory other than the source directory, it could be 2183because you have previously configured the compiler in the source 2184directory. Make sure you have done all the necessary preparations. 2185 2186 If you build GCC on a BSD system using a directory stored in an old 2187System V file system, problems may occur in running `fixincludes' if the 2188System V file system doesn't support symbolic links. These problems 2189result in a failure to fix the declaration of `size_t' in 2190`sys/types.h'. If you find that `size_t' is a signed type and that 2191type mismatches occur, this could be the cause. 2192 2193 The solution is not to use such a directory for building GCC. 2194 2195 Similarly, when building from SVN or snapshots, or if you modify 2196`*.l' files, you need the Flex lexical analyzer generator installed. 2197If you do not modify `*.l' files, releases contain the Flex-generated 2198files and you do not need Flex installed to build them. There is still 2199one Flex-based lexical analyzer (part of the build machinery, not of 2200GCC itself) that is used even if you only build the C front end. 2201 2202 When building from SVN or snapshots, or if you modify Texinfo 2203documentation, you need version 4.7 or later of Texinfo installed if you 2204want Info documentation to be regenerated. Releases contain Info 2205documentation pre-built for the unmodified documentation in the release. 2206 22075.1 Building a native compiler 2208============================== 2209 2210For a native build, the default configuration is to perform a 3-stage 2211bootstrap of the compiler when `make' is invoked. This will build the 2212entire GCC system and ensure that it compiles itself correctly. It can 2213be disabled with the `--disable-bootstrap' parameter to `configure', 2214but bootstrapping is suggested because the compiler will be tested more 2215completely and could also have better performance. 2216 2217 The bootstrapping process will complete the following steps: 2218 2219 * Build tools necessary to build the compiler. 2220 2221 * Perform a 3-stage bootstrap of the compiler. This includes 2222 building three times the target tools for use by the compiler such 2223 as binutils (bfd, binutils, gas, gprof, ld, and opcodes) if they 2224 have been individually linked or moved into the top level GCC 2225 source tree before configuring. 2226 2227 * Perform a comparison test of the stage2 and stage3 compilers. 2228 2229 * Build runtime libraries using the stage3 compiler from the 2230 previous step. 2231 2232 2233 If you are short on disk space you might consider `make 2234bootstrap-lean' instead. The sequence of compilation is the same 2235described above, but object files from the stage1 and stage2 of the 22363-stage bootstrap of the compiler are deleted as soon as they are no 2237longer needed. 2238 2239 If you wish to use non-default GCC flags when compiling the stage2 2240and stage3 compilers, set `BOOT_CFLAGS' on the command line when doing 2241`make'. For example, if you want to save additional space during the 2242bootstrap and in the final installation as well, you can build the 2243compiler binaries without debugging information as in the following 2244example. This will save roughly 40% of disk space both for the 2245bootstrap and the final installation. (Libraries will still contain 2246debugging information.) 2247 2248 make BOOT_CFLAGS='-O' bootstrap 2249 2250 You can place non-default optimization flags into `BOOT_CFLAGS'; they 2251are less well tested here than the default of `-g -O2', but should 2252still work. In a few cases, you may find that you need to specify 2253special flags such as `-msoft-float' here to complete the bootstrap; or, 2254if the native compiler miscompiles the stage1 compiler, you may need to 2255work around this, by choosing `BOOT_CFLAGS' to avoid the parts of the 2256stage1 compiler that were miscompiled, or by using `make bootstrap4' to 2257increase the number of stages of bootstrap. 2258 2259 `BOOT_CFLAGS' does not apply to bootstrapped target libraries. 2260Since these are always compiled with the compiler currently being 2261bootstrapped, you can use `CFLAGS_FOR_TARGET' to modify their 2262compilation flags, as for non-bootstrapped target libraries. Again, if 2263the native compiler miscompiles the stage1 compiler, you may need to 2264work around this by avoiding non-working parts of the stage1 compiler. 2265Use `STAGE1_TFLAGS' to this end. 2266 2267 If you used the flag `--enable-languages=...' to restrict the 2268compilers to be built, only those you've actually enabled will be 2269built. This will of course only build those runtime libraries, for 2270which the particular compiler has been built. Please note, that 2271re-defining `LANGUAGES' when calling `make' *does not* work anymore! 2272 2273 If the comparison of stage2 and stage3 fails, this normally indicates 2274that the stage2 compiler has compiled GCC incorrectly, and is therefore 2275a potentially serious bug which you should investigate and report. (On 2276a few systems, meaningful comparison of object files is impossible; they 2277always appear "different". If you encounter this problem, you will 2278need to disable comparison in the `Makefile'.) 2279 2280 If you do not want to bootstrap your compiler, you can configure with 2281`--disable-bootstrap'. In particular cases, you may want to bootstrap 2282your compiler even if the target system is not the same as the one you 2283are building on: for example, you could build a 2284`powerpc-unknown-linux-gnu' toolchain on a 2285`powerpc64-unknown-linux-gnu' host. In this case, pass 2286`--enable-bootstrap' to the configure script. 2287 2288 `BUILD_CONFIG' can be used to bring in additional customization to 2289the build. It can be set to a whitespace-separated list of names. For 2290each such `NAME', top-level `config/`NAME'.mk' will be included by the 2291top-level `Makefile', bringing in any settings it contains. The 2292default `BUILD_CONFIG' can be set using the configure option 2293`--with-build-config=`NAME'...'. Some examples of supported build 2294configurations are: 2295 2296`bootstrap-O1' 2297 Removes any `-O'-started option from `BOOT_CFLAGS', and adds `-O1' 2298 to it. `BUILD_CONFIG=bootstrap-O1' is equivalent to 2299 `BOOT_CFLAGS='-g -O1''. 2300 2301`bootstrap-O3' 2302 Analogous to `bootstrap-O1'. 2303 2304`bootstrap-lto' 2305 Enables Link-Time Optimization for host tools during bootstrapping. 2306 `BUILD_CONFIG=bootstrap-lto' is equivalent to adding `-flto' to 2307 `BOOT_CFLAGS'. This option assumes that the host supports the 2308 linker plugin (e.g. GNU ld version 2.21 or later or GNU gold 2309 version 2.21 or later). 2310 2311`bootstrap-lto-noplugin' 2312 This option is similar to `bootstrap-lto', but is intended for 2313 hosts that do not support the linker plugin. Without the linker 2314 plugin static libraries are not compiled with link-time 2315 optimizations. Since the GCC middle end and back end are in 2316 `libbackend.a' this means that only the front end is actually LTO 2317 optimized. 2318 2319`bootstrap-debug' 2320 Verifies that the compiler generates the same executable code, 2321 whether or not it is asked to emit debug information. To this 2322 end, this option builds stage2 host programs without debug 2323 information, and uses `contrib/compare-debug' to compare them with 2324 the stripped stage3 object files. If `BOOT_CFLAGS' is overridden 2325 so as to not enable debug information, stage2 will have it, and 2326 stage3 won't. This option is enabled by default when GCC 2327 bootstrapping is enabled, if `strip' can turn object files 2328 compiled with and without debug info into identical object files. 2329 In addition to better test coverage, this option makes default 2330 bootstraps faster and leaner. 2331 2332`bootstrap-debug-big' 2333 Rather than comparing stripped object files, as in 2334 `bootstrap-debug', this option saves internal compiler dumps 2335 during stage2 and stage3 and compares them as well, which helps 2336 catch additional potential problems, but at a great cost in terms 2337 of disk space. It can be specified in addition to 2338 `bootstrap-debug'. 2339 2340`bootstrap-debug-lean' 2341 This option saves disk space compared with `bootstrap-debug-big', 2342 but at the expense of some recompilation. Instead of saving the 2343 dumps of stage2 and stage3 until the final compare, it uses 2344 `-fcompare-debug' to generate, compare and remove the dumps during 2345 stage3, repeating the compilation that already took place in 2346 stage2, whose dumps were not saved. 2347 2348`bootstrap-debug-lib' 2349 This option tests executable code invariance over debug information 2350 generation on target libraries, just like `bootstrap-debug-lean' 2351 tests it on host programs. It builds stage3 libraries with 2352 `-fcompare-debug', and it can be used along with any of the 2353 `bootstrap-debug' options above. 2354 2355 There aren't `-lean' or `-big' counterparts to this option because 2356 most libraries are only build in stage3, so bootstrap compares 2357 would not get significant coverage. Moreover, the few libraries 2358 built in stage2 are used in stage3 host programs, so we wouldn't 2359 want to compile stage2 libraries with different options for 2360 comparison purposes. 2361 2362`bootstrap-debug-ckovw' 2363 Arranges for error messages to be issued if the compiler built on 2364 any stage is run without the option `-fcompare-debug'. This is 2365 useful to verify the full `-fcompare-debug' testing coverage. It 2366 must be used along with `bootstrap-debug-lean' and 2367 `bootstrap-debug-lib'. 2368 2369`bootstrap-time' 2370 Arranges for the run time of each program started by the GCC 2371 driver, built in any stage, to be logged to `time.log', in the top 2372 level of the build tree. 2373 2374 23755.2 Building a cross compiler 2376============================= 2377 2378When building a cross compiler, it is not generally possible to do a 23793-stage bootstrap of the compiler. This makes for an interesting 2380problem as parts of GCC can only be built with GCC. 2381 2382 To build a cross compiler, we recommend first building and 2383installing a native compiler. You can then use the native GCC compiler 2384to build the cross compiler. The installed native compiler needs to be 2385GCC version 2.95 or later. 2386 2387 If the cross compiler is to be built with support for the Java 2388programming language and the ability to compile .java source files is 2389desired, the installed native compiler used to build the cross compiler 2390needs to be the same GCC version as the cross compiler. In addition 2391the cross compiler needs to be configured with `--with-ecj-jar=...'. 2392 2393 Assuming you have already installed a native copy of GCC and 2394configured your cross compiler, issue the command `make', which 2395performs the following steps: 2396 2397 * Build host tools necessary to build the compiler. 2398 2399 * Build target tools for use by the compiler such as binutils (bfd, 2400 binutils, gas, gprof, ld, and opcodes) if they have been 2401 individually linked or moved into the top level GCC source tree 2402 before configuring. 2403 2404 * Build the compiler (single stage only). 2405 2406 * Build runtime libraries using the compiler from the previous step. 2407 2408 Note that if an error occurs in any step the make process will exit. 2409 2410 If you are not building GNU binutils in the same source tree as GCC, 2411you will need a cross-assembler and cross-linker installed before 2412configuring GCC. Put them in the directory `PREFIX/TARGET/bin'. Here 2413is a table of the tools you should put in this directory: 2414 2415`as' 2416 This should be the cross-assembler. 2417 2418`ld' 2419 This should be the cross-linker. 2420 2421`ar' 2422 This should be the cross-archiver: a program which can manipulate 2423 archive files (linker libraries) in the target machine's format. 2424 2425`ranlib' 2426 This should be a program to construct a symbol table in an archive 2427 file. 2428 2429 The installation of GCC will find these programs in that directory, 2430and copy or link them to the proper place to for the cross-compiler to 2431find them when run later. 2432 2433 The easiest way to provide these files is to build the Binutils 2434package. Configure it with the same `--host' and `--target' options 2435that you use for configuring GCC, then build and install them. They 2436install their executables automatically into the proper directory. 2437Alas, they do not support all the targets that GCC supports. 2438 2439 If you are not building a C library in the same source tree as GCC, 2440you should also provide the target libraries and headers before 2441configuring GCC, specifying the directories with `--with-sysroot' or 2442`--with-headers' and `--with-libs'. Many targets also require "start 2443files" such as `crt0.o' and `crtn.o' which are linked into each 2444executable. There may be several alternatives for `crt0.o', for use 2445with profiling or other compilation options. Check your target's 2446definition of `STARTFILE_SPEC' to find out what start files it uses. 2447 24485.3 Building in parallel 2449======================== 2450 2451GNU Make 3.80 and above, which is necessary to build GCC, support 2452building in parallel. To activate this, you can use `make -j 2' 2453instead of `make'. You can also specify a bigger number, and in most 2454cases using a value greater than the number of processors in your 2455machine will result in fewer and shorter I/O latency hits, thus 2456improving overall throughput; this is especially true for slow drives 2457and network filesystems. 2458 24595.4 Building the Ada compiler 2460============================= 2461 2462In order to build GNAT, the Ada compiler, you need a working GNAT 2463compiler (GCC version 4.0 or later). This includes GNAT tools such as 2464`gnatmake' and `gnatlink', since the Ada front end is written in Ada and 2465uses some GNAT-specific extensions. 2466 2467 In order to build a cross compiler, it is suggested to install the 2468new compiler as native first, and then use it to build the cross 2469compiler. 2470 2471 `configure' does not test whether the GNAT installation works and 2472has a sufficiently recent version; if too old a GNAT version is 2473installed, the build will fail unless `--enable-languages' is used to 2474disable building the Ada front end. 2475 2476 `ADA_INCLUDE_PATH' and `ADA_OBJECT_PATH' environment variables must 2477not be set when building the Ada compiler, the Ada tools, or the Ada 2478runtime libraries. You can check that your build environment is clean 2479by verifying that `gnatls -v' lists only one explicit path in each 2480section. 2481 24825.5 Building with profile feedback 2483================================== 2484 2485It is possible to use profile feedback to optimize the compiler itself. 2486This should result in a faster compiler binary. Experiments done on 2487x86 using gcc 3.3 showed approximately 7 percent speedup on compiling C 2488programs. To bootstrap the compiler with profile feedback, use `make 2489profiledbootstrap'. 2490 2491 When `make profiledbootstrap' is run, it will first build a `stage1' 2492compiler. This compiler is used to build a `stageprofile' compiler 2493instrumented to collect execution counts of instruction and branch 2494probabilities. Then runtime libraries are compiled with profile 2495collected. Finally a `stagefeedback' compiler is built using the 2496information collected. 2497 2498 Unlike standard bootstrap, several additional restrictions apply. 2499The compiler used to build `stage1' needs to support a 64-bit integral 2500type. It is recommended to only use GCC for this. 2501 2502 2503File: gccinstall.info, Node: Testing, Next: Final install, Prev: Building, Up: Installing GCC 2504 25056 Installing GCC: Testing 2506************************* 2507 2508 Before you install GCC, we encourage you to run the testsuites and to 2509compare your results with results from a similar configuration that have 2510been submitted to the gcc-testresults mailing list. Some of these 2511archived results are linked from the build status lists at 2512`http://gcc.gnu.org/buildstat.html', although not everyone who reports 2513a successful build runs the testsuites and submits the results. This 2514step is optional and may require you to download additional software, 2515but it can give you confidence in your new GCC installation or point out 2516problems before you install and start using your new GCC. 2517 2518 First, you must have downloaded the testsuites. These are part of 2519the full distribution, but if you downloaded the "core" compiler plus 2520any front ends, you must download the testsuites separately. 2521 2522 Second, you must have the testing tools installed. This includes 2523DejaGnu, Tcl, and Expect; the DejaGnu site has links to these. 2524 2525 If the directories where `runtest' and `expect' were installed are 2526not in the `PATH', you may need to set the following environment 2527variables appropriately, as in the following example (which assumes 2528that DejaGnu has been installed under `/usr/local'): 2529 2530 TCL_LIBRARY = /usr/local/share/tcl8.0 2531 DEJAGNULIBS = /usr/local/share/dejagnu 2532 2533 (On systems such as Cygwin, these paths are required to be actual 2534paths, not mounts or links; presumably this is due to some lack of 2535portability in the DejaGnu code.) 2536 2537 Finally, you can run the testsuite (which may take a long time): 2538 cd OBJDIR; make -k check 2539 2540 This will test various components of GCC, such as compiler front 2541ends and runtime libraries. While running the testsuite, DejaGnu might 2542emit some harmless messages resembling `WARNING: Couldn't find the 2543global config file.' or `WARNING: Couldn't find tool init file' that 2544can be ignored. 2545 2546 If you are testing a cross-compiler, you may want to run the 2547testsuite on a simulator as described at 2548`http://gcc.gnu.org/simtest-howto.html'. 2549 25506.1 How can you run the testsuite on selected tests? 2551==================================================== 2552 2553In order to run sets of tests selectively, there are targets `make 2554check-gcc' and language specific `make check-c', `make check-c++', 2555`make check-fortran', `make check-java', `make check-ada', `make 2556check-objc', `make check-obj-c++', `make check-lto' in the `gcc' 2557subdirectory of the object directory. You can also just run `make 2558check' in a subdirectory of the object directory. 2559 2560 A more selective way to just run all `gcc' execute tests in the 2561testsuite is to use 2562 2563 make check-gcc RUNTESTFLAGS="execute.exp OTHER-OPTIONS" 2564 2565 Likewise, in order to run only the `g++' "old-deja" tests in the 2566testsuite with filenames matching `9805*', you would use 2567 2568 make check-g++ RUNTESTFLAGS="old-deja.exp=9805* OTHER-OPTIONS" 2569 2570 The `*.exp' files are located in the testsuite directories of the GCC 2571source, the most important ones being `compile.exp', `execute.exp', 2572`dg.exp' and `old-deja.exp'. To get a list of the possible `*.exp' 2573files, pipe the output of `make check' into a file and look at the 2574`Running ... .exp' lines. 2575 25766.2 Passing options and running multiple testsuites 2577=================================================== 2578 2579You can pass multiple options to the testsuite using the 2580`--target_board' option of DejaGNU, either passed as part of 2581`RUNTESTFLAGS', or directly to `runtest' if you prefer to work outside 2582the makefiles. For example, 2583 2584 make check-g++ RUNTESTFLAGS="--target_board=unix/-O3/-fmerge-constants" 2585 2586 will run the standard `g++' testsuites ("unix" is the target name 2587for a standard native testsuite situation), passing `-O3 2588-fmerge-constants' to the compiler on every test, i.e., slashes 2589separate options. 2590 2591 You can run the testsuites multiple times using combinations of 2592options with a syntax similar to the brace expansion of popular shells: 2593 2594 ..."--target_board=arm-sim\{-mhard-float,-msoft-float\}\{-O1,-O2,-O3,\}" 2595 2596 (Note the empty option caused by the trailing comma in the final 2597group.) The following will run each testsuite eight times using the 2598`arm-sim' target, as if you had specified all possible combinations 2599yourself: 2600 2601 --target_board='arm-sim/-mhard-float/-O1 \ 2602 arm-sim/-mhard-float/-O2 \ 2603 arm-sim/-mhard-float/-O3 \ 2604 arm-sim/-mhard-float \ 2605 arm-sim/-msoft-float/-O1 \ 2606 arm-sim/-msoft-float/-O2 \ 2607 arm-sim/-msoft-float/-O3 \ 2608 arm-sim/-msoft-float' 2609 2610 They can be combined as many times as you wish, in arbitrary ways. 2611This list: 2612 2613 ..."--target_board=unix/-Wextra\{-O3,-fno-strength\}\{-fomit-frame,\}" 2614 2615 will generate four combinations, all involving `-Wextra'. 2616 2617 The disadvantage to this method is that the testsuites are run in 2618serial, which is a waste on multiprocessor systems. For users with GNU 2619Make and a shell which performs brace expansion, you can run the 2620testsuites in parallel by having the shell perform the combinations and 2621`make' do the parallel runs. Instead of using `--target_board', use a 2622special makefile target: 2623 2624 make -jN check-TESTSUITE//TEST-TARGET/OPTION1/OPTION2/... 2625 2626 For example, 2627 2628 make -j3 check-gcc//sh-hms-sim/{-m1,-m2,-m3,-m3e,-m4}/{,-nofpu} 2629 2630 will run three concurrent "make-gcc" testsuites, eventually testing 2631all ten combinations as described above. Note that this is currently 2632only supported in the `gcc' subdirectory. (To see how this works, try 2633typing `echo' before the example given here.) 2634 26356.3 Additional testing for Java Class Libraries 2636=============================================== 2637 2638The Java runtime tests can be executed via `make check' in the 2639`TARGET/libjava/testsuite' directory in the build tree. 2640 2641 The Mauve Project provides a suite of tests for the Java Class 2642Libraries. This suite can be run as part of libgcj testing by placing 2643the Mauve tree within the libjava testsuite at 2644`libjava/testsuite/libjava.mauve/mauve', or by specifying the location 2645of that tree when invoking `make', as in `make MAUVEDIR=~/mauve check'. 2646 26476.4 How to interpret test results 2648================================= 2649 2650The result of running the testsuite are various `*.sum' and `*.log' 2651files in the testsuite subdirectories. The `*.log' files contain a 2652detailed log of the compiler invocations and the corresponding results, 2653the `*.sum' files summarize the results. These summaries contain 2654status codes for all tests: 2655 2656 * PASS: the test passed as expected 2657 2658 * XPASS: the test unexpectedly passed 2659 2660 * FAIL: the test unexpectedly failed 2661 2662 * XFAIL: the test failed as expected 2663 2664 * UNSUPPORTED: the test is not supported on this platform 2665 2666 * ERROR: the testsuite detected an error 2667 2668 * WARNING: the testsuite detected a possible problem 2669 2670 It is normal for some tests to report unexpected failures. At the 2671current time the testing harness does not allow fine grained control 2672over whether or not a test is expected to fail. This problem should be 2673fixed in future releases. 2674 26756.5 Submitting test results 2676=========================== 2677 2678If you want to report the results to the GCC project, use the 2679`contrib/test_summary' shell script. Start it in the OBJDIR with 2680 2681 SRCDIR/contrib/test_summary -p your_commentary.txt \ 2682 -m gcc-testresults@gcc.gnu.org |sh 2683 2684 This script uses the `Mail' program to send the results, so make 2685sure it is in your `PATH'. The file `your_commentary.txt' is prepended 2686to the testsuite summary and should contain any special remarks you 2687have on your results or your build environment. Please do not edit the 2688testsuite result block or the subject line, as these messages may be 2689automatically processed. 2690 2691 2692File: gccinstall.info, Node: Final install, Prev: Testing, Up: Installing GCC 2693 26947 Installing GCC: Final installation 2695************************************ 2696 2697 Now that GCC has been built (and optionally tested), you can install 2698it with 2699 cd OBJDIR && make install 2700 2701 We strongly recommend to install into a target directory where there 2702is no previous version of GCC present. Also, the GNAT runtime should 2703not be stripped, as this would break certain features of the debugger 2704that depend on this debugging information (catching Ada exceptions for 2705instance). 2706 2707 That step completes the installation of GCC; user level binaries can 2708be found in `PREFIX/bin' where PREFIX is the value you specified with 2709the `--prefix' to configure (or `/usr/local' by default). (If you 2710specified `--bindir', that directory will be used instead; otherwise, 2711if you specified `--exec-prefix', `EXEC-PREFIX/bin' will be used.) 2712Headers for the C++ and Java libraries are installed in 2713`PREFIX/include'; libraries in `LIBDIR' (normally `PREFIX/lib'); 2714internal parts of the compiler in `LIBDIR/gcc' and `LIBEXECDIR/gcc'; 2715documentation in info format in `INFODIR' (normally `PREFIX/info'). 2716 2717 When installing cross-compilers, GCC's executables are not only 2718installed into `BINDIR', that is, `EXEC-PREFIX/bin', but additionally 2719into `EXEC-PREFIX/TARGET-ALIAS/bin', if that directory exists. 2720Typically, such "tooldirs" hold target-specific binutils, including 2721assembler and linker. 2722 2723 Installation into a temporary staging area or into a `chroot' jail 2724can be achieved with the command 2725 2726 make DESTDIR=PATH-TO-ROOTDIR install 2727 2728where PATH-TO-ROOTDIR is the absolute path of a directory relative to 2729which all installation paths will be interpreted. Note that the 2730directory specified by `DESTDIR' need not exist yet; it will be created 2731if necessary. 2732 2733 There is a subtle point with tooldirs and `DESTDIR': If you relocate 2734a cross-compiler installation with e.g. `DESTDIR=ROOTDIR', then the 2735directory `ROOTDIR/EXEC-PREFIX/TARGET-ALIAS/bin' will be filled with 2736duplicated GCC executables only if it already exists, it will not be 2737created otherwise. This is regarded as a feature, not as a bug, 2738because it gives slightly more control to the packagers using the 2739`DESTDIR' feature. 2740 2741 You can install stripped programs and libraries with 2742 2743 make install-strip 2744 2745 If you are bootstrapping a released version of GCC then please 2746quickly review the build status page for your release, available from 2747`http://gcc.gnu.org/buildstat.html'. If your system is not listed for 2748the version of GCC that you built, send a note to <gcc@gcc.gnu.org> 2749indicating that you successfully built and installed GCC. Include the 2750following information: 2751 2752 * Output from running `SRCDIR/config.guess'. Do not send that file 2753 itself, just the one-line output from running it. 2754 2755 * The output of `gcc -v' for your newly installed `gcc'. This tells 2756 us which version of GCC you built and the options you passed to 2757 configure. 2758 2759 * Whether you enabled all languages or a subset of them. If you 2760 used a full distribution then this information is part of the 2761 configure options in the output of `gcc -v', but if you downloaded 2762 the "core" compiler plus additional front ends then it isn't 2763 apparent which ones you built unless you tell us about it. 2764 2765 * If the build was for GNU/Linux, also include: 2766 * The distribution name and version (e.g., Red Hat 7.1 or 2767 Debian 2.2.3); this information should be available from 2768 `/etc/issue'. 2769 2770 * The version of the Linux kernel, available from `uname 2771 --version' or `uname -a'. 2772 2773 * The version of glibc you used; for RPM-based systems like Red 2774 Hat, Mandrake, and SuSE type `rpm -q glibc' to get the glibc 2775 version, and on systems like Debian and Progeny use `dpkg -l 2776 libc6'. 2777 For other systems, you can include similar information if you 2778 think it is relevant. 2779 2780 * Any other information that you think would be useful to people 2781 building GCC on the same configuration. The new entry in the 2782 build status list will include a link to the archived copy of your 2783 message. 2784 2785 We'd also like to know if the *Note host/target specific 2786installation notes: Specific. didn't include your host/target 2787information or if that information is incomplete or out of date. Send 2788a note to <gcc@gcc.gnu.org> detailing how the information should be 2789changed. 2790 2791 If you find a bug, please report it following the bug reporting 2792guidelines. 2793 2794 If you want to print the GCC manuals, do `cd OBJDIR; make dvi'. You 2795will need to have `texi2dvi' (version at least 4.7) and TeX installed. 2796This creates a number of `.dvi' files in subdirectories of `OBJDIR'; 2797these may be converted for printing with programs such as `dvips'. 2798Alternately, by using `make pdf' in place of `make dvi', you can create 2799documentation in the form of `.pdf' files; this requires `texi2pdf', 2800which is included with Texinfo version 4.8 and later. You can also buy 2801printed manuals from the Free Software Foundation, though such manuals 2802may not be for the most recent version of GCC. 2803 2804 If you would like to generate online HTML documentation, do `cd 2805OBJDIR; make html' and HTML will be generated for the gcc manuals in 2806`OBJDIR/gcc/HTML'. 2807 2808 2809File: gccinstall.info, Node: Binaries, Next: Specific, Prev: Installing GCC, Up: Top 2810 28118 Installing GCC: Binaries 2812************************** 2813 2814 We are often asked about pre-compiled versions of GCC. While we 2815cannot provide these for all platforms, below you'll find links to 2816binaries for various platforms where creating them by yourself is not 2817easy due to various reasons. 2818 2819 Please note that we did not create these binaries, nor do we support 2820them. If you have any problems installing them, please contact their 2821makers. 2822 2823 * AIX: 2824 * Bull's Open Source Software Archive for for AIX 5L and AIX 6; 2825 2826 * AIX Open Source Packages (AIX5L AIX 6.1 AIX 7.1). 2827 2828 * DOS--DJGPP. 2829 2830 * HP-UX: 2831 * HP-UX Porting Center; 2832 2833 * Solaris 2 (SPARC, Intel): 2834 * OpenCSW 2835 2836 * TGCware 2837 2838 * Microsoft Windows: 2839 * The Cygwin project; 2840 2841 * The MinGW and mingw-w64 projects. 2842 2843 * OpenPKG offers binaries for quite a number of platforms. 2844 2845 * The GFortran Wiki has links to GNU Fortran binaries for several 2846 platforms. 2847 2848 2849File: gccinstall.info, Node: Specific, Next: Old, Prev: Binaries, Up: Top 2850 28519 Host/target specific installation notes for GCC 2852************************************************* 2853 2854 Please read this document carefully _before_ installing the GNU 2855Compiler Collection on your machine. 2856 2857 Note that this list of install notes is _not_ a list of supported 2858hosts or targets. Not all supported hosts and targets are listed here, 2859only the ones that require host-specific or target-specific information 2860have to. 2861 2862aarch64*-*-* 2863============ 2864 2865Binutils pre 2.24 does not have support for selecting `-mabi' and does 2866not support ILP32. If it is used to build GCC 4.9 or later, GCC will 2867not support option `-mabi=ilp32'. 2868 2869 To enable a workaround for the Cortex-A53 erratum number 835769 by 2870default (for all CPUs regardless of -mcpu option given) at configure 2871time use the `--enable-fix-cortex-a53-835769' option. This will enable 2872the fix by default and can be explicitly disabled during compilation by 2873passing the `-mno-fix-cortex-a53-835769' option. Conversely, 2874`--disable-fix-cortex-a53-835769' will disable the workaround by 2875default. The workaround is disabled by default if neither of 2876`--enable-fix-cortex-a53-835769' or `--disable-fix-cortex-a53-835769' 2877is given at configure time. 2878 2879 To enable a workaround for the Cortex-A53 erratum number 843419 by 2880default (for all CPUs regardless of -mcpu option given) at configure 2881time use the `--enable-fix-cortex-a53-843419' option. This workaround 2882is applied at link time. Enabling the workaround will cause GCC to 2883pass the relevant option to the linker. It can be explicitly disabled 2884during compilation by passing the `-mno-fix-cortex-a53-843419' option. 2885Conversely, `--disable-fix-cortex-a53-843419' will disable the 2886workaround by default. The workaround is disabled by default if 2887neither of `--enable-fix-cortex-a53-843419' or 2888`--disable-fix-cortex-a53-843419' is given at configure time. 2889 2890alpha*-*-* 2891========== 2892 2893This section contains general configuration information for all 2894alpha-based platforms using ELF (in particular, ignore this section for 2895DEC OSF/1, Digital UNIX and Tru64 UNIX). In addition to reading this 2896section, please read all other sections that match your target. 2897 2898 We require binutils 2.11.2 or newer. Previous binutils releases had 2899a number of problems with DWARF 2 debugging information, not the least 2900of which is incorrect linking of shared libraries. 2901 2902alpha*-dec-osf5.1 2903================= 2904 2905Systems using processors that implement the DEC Alpha architecture and 2906are running the DEC/Compaq/HP Unix (DEC OSF/1, Digital UNIX, or 2907Compaq/HP Tru64 UNIX) operating system, for example the DEC Alpha AXP 2908systems. 2909 2910 Support for Tru64 UNIX V5.1 has been removed in GCC 4.8. As of GCC 29114.6, support for Tru64 UNIX V4.0 and V5.0 has been removed. As of GCC 29123.2, versions before `alpha*-dec-osf4' are no longer supported. (These 2913are the versions which identify themselves as DEC OSF/1.) 2914 2915amd64-*-solaris2.1[0-9]* 2916======================== 2917 2918This is a synonym for `x86_64-*-solaris2.1[0-9]*'. 2919 2920arc-*-elf32 2921=========== 2922 2923Use `configure --target=arc-elf32 --with-cpu=CPU 2924--enable-languages="c,c++"' to configure GCC, with CPU being one of 2925`arc600', `arc601', or `arc700'. 2926 2927arc-linux-uclibc 2928================ 2929 2930Use `configure --target=arc-linux-uclibc --with-cpu=arc700 2931--enable-languages="c,c++"' to configure GCC. 2932 2933arm-*-eabi 2934========== 2935 2936ARM-family processors. Subtargets that use the ELF object format 2937require GNU binutils 2.13 or newer. Such subtargets include: 2938`arm-*-netbsdelf', `arm-*-*linux-*' and `arm-*-rtemseabi'. 2939 2940 Building the Ada frontend commonly fails (an infinite loop executing 2941`xsinfo') if the host compiler is GNAT 4.8. Host compilers built from 2942the GNAT 4.6, 4.9 or 5 release branches are known to succeed. 2943 2944avr 2945=== 2946 2947ATMEL AVR-family micro controllers. These are used in embedded 2948applications. There are no standard Unix configurations. *Note AVR 2949Options: (gcc)AVR Options, for the list of supported MCU types. 2950 2951 Use `configure --target=avr --enable-languages="c"' to configure GCC. 2952 2953 Further installation notes and other useful information about AVR 2954tools can also be obtained from: 2955 2956 * http://www.nongnu.org/avr/ 2957 2958 * http://www.amelek.gda.pl/avr/ 2959 2960 We _strongly_ recommend using binutils 2.13 or newer. 2961 2962 The following error: 2963 Error: register required 2964 2965 indicates that you should upgrade to a newer version of the binutils. 2966 2967Blackfin 2968======== 2969 2970The Blackfin processor, an Analog Devices DSP. *Note Blackfin Options: 2971(gcc)Blackfin Options, 2972 2973 More information, and a version of binutils with support for this 2974processor, is available at `http://blackfin.uclinux.org' 2975 2976CR16 2977==== 2978 2979The CR16 CompactRISC architecture is a 16-bit architecture. This 2980architecture is used in embedded applications. 2981 2982 *Note CR16 Options: (gcc)CR16 Options, 2983 2984 Use `configure --target=cr16-elf --enable-languages=c,c++' to 2985configure GCC for building a CR16 elf cross-compiler. 2986 2987 Use `configure --target=cr16-uclinux --enable-languages=c,c++' to 2988configure GCC for building a CR16 uclinux cross-compiler. 2989 2990CRIS 2991==== 2992 2993CRIS is the CPU architecture in Axis Communications ETRAX 2994system-on-a-chip series. These are used in embedded applications. 2995 2996 *Note CRIS Options: (gcc)CRIS Options, for a list of CRIS-specific 2997options. 2998 2999 There are a few different CRIS targets: 3000`cris-axis-elf' 3001 Mainly for monolithic embedded systems. Includes a multilib for 3002 the `v10' core used in `ETRAX 100 LX'. 3003 3004`cris-axis-linux-gnu' 3005 A GNU/Linux port for the CRIS architecture, currently targeting 3006 `ETRAX 100 LX' by default. 3007 3008 For `cris-axis-elf' you need binutils 2.11 or newer. For 3009`cris-axis-linux-gnu' you need binutils 2.12 or newer. 3010 3011 Pre-packaged tools can be obtained from 3012`ftp://ftp.axis.com/pub/axis/tools/cris/compiler-kit/'. More 3013information about this platform is available at 3014`http://developer.axis.com/'. 3015 3016DOS 3017=== 3018 3019Please have a look at the binaries page. 3020 3021 You cannot install GCC by itself on MSDOS; it will not compile under 3022any MSDOS compiler except itself. You need to get the complete 3023compilation package DJGPP, which includes binaries as well as sources, 3024and includes all the necessary compilation tools and libraries. 3025 3026epiphany-*-elf 3027============== 3028 3029Adapteva Epiphany. This configuration is intended for embedded systems. 3030 3031*-*-freebsd* 3032============ 3033 3034Support for FreeBSD 1 was discontinued in GCC 3.2. Support for FreeBSD 30352 (and any mutant a.out variants of FreeBSD 3) was discontinued in GCC 30364.0. 3037 3038 In order to better utilize FreeBSD base system functionality and 3039match the configuration of the system compiler, GCC 4.5 and above as 3040well as GCC 4.4 past 2010-06-20 leverage SSP support in libc (which is 3041present on FreeBSD 7 or later) and the use of `__cxa_atexit' by default 3042(on FreeBSD 6 or later). The use of `dl_iterate_phdr' inside 3043`libgcc_s.so.1' and boehm-gc (on FreeBSD 7 or later) is enabled by GCC 30444.5 and above. 3045 3046 We support FreeBSD using the ELF file format with DWARF 2 debugging 3047for all CPU architectures. You may use `-gstabs' instead of `-g', if 3048you really want the old debugging format. There are no known issues 3049with mixing object files and libraries with different debugging 3050formats. Otherwise, this release of GCC should now match more of the 3051configuration used in the stock FreeBSD configuration of GCC. In 3052particular, `--enable-threads' is now configured by default. However, 3053as a general user, do not attempt to replace the system compiler with 3054this release. Known to bootstrap and check with good results on 3055FreeBSD 7.2-STABLE. In the past, known to bootstrap and check with 3056good results on FreeBSD 3.0, 3.4, 4.0, 4.2, 4.3, 4.4, 4.5, 4.8, 4.9 and 30575-CURRENT. 3058 3059 The version of binutils installed in `/usr/bin' probably works with 3060this release of GCC. Bootstrapping against the latest GNU binutils 3061and/or the version found in `/usr/ports/devel/binutils' has been known 3062to enable additional features and improve overall testsuite results. 3063However, it is currently known that boehm-gc (which itself is required 3064for java) may not configure properly on FreeBSD prior to the FreeBSD 30657.0 release with GNU binutils after 2.16.1. 3066 3067ft32-*-elf 3068========== 3069 3070The FT32 processor. This configuration is intended for embedded 3071systems. 3072 3073h8300-hms 3074========= 3075 3076Renesas H8/300 series of processors. 3077 3078 Please have a look at the binaries page. 3079 3080 The calling convention and structure layout has changed in release 30812.6. All code must be recompiled. The calling convention now passes 3082the first three arguments in function calls in registers. Structures 3083are no longer a multiple of 2 bytes. 3084 3085hppa*-hp-hpux* 3086============== 3087 3088Support for HP-UX version 9 and older was discontinued in GCC 3.4. 3089 3090 We require using gas/binutils on all hppa platforms. Version 2.19 or 3091later is recommended. 3092 3093 It may be helpful to configure GCC with the `--with-gnu-as' and 3094`--with-as=...' options to ensure that GCC can find GAS. 3095 3096 The HP assembler should not be used with GCC. It is rarely tested 3097and may not work. It shouldn't be used with any languages other than C 3098due to its many limitations. 3099 3100 Specifically, `-g' does not work (HP-UX uses a peculiar debugging 3101format which GCC does not know about). It also inserts timestamps into 3102each object file it creates, causing the 3-stage comparison test to 3103fail during a bootstrap. You should be able to continue by saying 3104`make all-host all-target' after getting the failure from `make'. 3105 3106 Various GCC features are not supported. For example, it does not 3107support weak symbols or alias definitions. As a result, explicit 3108template instantiations are required when using C++. This makes it 3109difficult if not impossible to build many C++ applications. 3110 3111 There are two default scheduling models for instructions. These are 3112PROCESSOR_7100LC and PROCESSOR_8000. They are selected from the pa-risc 3113architecture specified for the target machine when configuring. 3114PROCESSOR_8000 is the default. PROCESSOR_7100LC is selected when the 3115target is a `hppa1*' machine. 3116 3117 The PROCESSOR_8000 model is not well suited to older processors. 3118Thus, it is important to completely specify the machine architecture 3119when configuring if you want a model other than PROCESSOR_8000. The 3120macro TARGET_SCHED_DEFAULT can be defined in BOOT_CFLAGS if a different 3121default scheduling model is desired. 3122 3123 As of GCC 4.0, GCC uses the UNIX 95 namespace for HP-UX 10.10 3124through 11.00, and the UNIX 98 namespace for HP-UX 11.11 and later. 3125This namespace change might cause problems when bootstrapping with an 3126earlier version of GCC or the HP compiler as essentially the same 3127namespace is required for an entire build. This problem can be avoided 3128in a number of ways. With HP cc, `UNIX_STD' can be set to `95' or 3129`98'. Another way is to add an appropriate set of predefines to `CC'. 3130The description for the `munix=' option contains a list of the 3131predefines used with each standard. 3132 3133 More specific information to `hppa*-hp-hpux*' targets follows. 3134 3135hppa*-hp-hpux10 3136=============== 3137 3138For hpux10.20, we _highly_ recommend you pick up the latest sed patch 3139`PHCO_19798' from HP. 3140 3141 The C++ ABI has changed incompatibly in GCC 4.0. COMDAT subspaces 3142are used for one-only code and data. This resolves many of the previous 3143problems in using C++ on this target. However, the ABI is not 3144compatible with the one implemented under HP-UX 11 using secondary 3145definitions. 3146 3147hppa*-hp-hpux11 3148=============== 3149 3150GCC 3.0 and up support HP-UX 11. GCC 2.95.x is not supported and cannot 3151be used to compile GCC 3.0 and up. 3152 3153 The libffi and libjava libraries haven't been ported to 64-bit HP-UX 3154and don't build. 3155 3156 Refer to binaries for information about obtaining precompiled GCC 3157binaries for HP-UX. Precompiled binaries must be obtained to build the 3158Ada language as it can't be bootstrapped using C. Ada is only 3159available for the 32-bit PA-RISC runtime. 3160 3161 Starting with GCC 3.4 an ISO C compiler is required to bootstrap. 3162The bundled compiler supports only traditional C; you will need either 3163HP's unbundled compiler, or a binary distribution of GCC. 3164 3165 It is possible to build GCC 3.3 starting with the bundled HP 3166compiler, but the process requires several steps. GCC 3.3 can then be 3167used to build later versions. The fastjar program contains ISO C code 3168and can't be built with the HP bundled compiler. This problem can be 3169avoided by not building the Java language. For example, use the 3170`--enable-languages="c,c++,f77,objc"' option in your configure command. 3171 3172 There are several possible approaches to building the distribution. 3173Binutils can be built first using the HP tools. Then, the GCC 3174distribution can be built. The second approach is to build GCC first 3175using the HP tools, then build binutils, then rebuild GCC. There have 3176been problems with various binary distributions, so it is best not to 3177start from a binary distribution. 3178 3179 On 64-bit capable systems, there are two distinct targets. Different 3180installation prefixes must be used if both are to be installed on the 3181same system. The `hppa[1-2]*-hp-hpux11*' target generates code for the 318232-bit PA-RISC runtime architecture and uses the HP linker. The 3183`hppa64-hp-hpux11*' target generates 64-bit code for the PA-RISC 2.0 3184architecture. 3185 3186 The script config.guess now selects the target type based on the 3187compiler detected during configuration. You must define `PATH' or `CC' 3188so that configure finds an appropriate compiler for the initial 3189bootstrap. When `CC' is used, the definition should contain the 3190options that are needed whenever `CC' is used. 3191 3192 Specifically, options that determine the runtime architecture must be 3193in `CC' to correctly select the target for the build. It is also 3194convenient to place many other compiler options in `CC'. For example, 3195`CC="cc -Ac +DA2.0W -Wp,-H16376 -D_CLASSIC_TYPES -D_HPUX_SOURCE"' can 3196be used to bootstrap the GCC 3.3 branch with the HP compiler in 64-bit 3197K&R/bundled mode. The `+DA2.0W' option will result in the automatic 3198selection of the `hppa64-hp-hpux11*' target. The macro definition 3199table of cpp needs to be increased for a successful build with the HP 3200compiler. _CLASSIC_TYPES and _HPUX_SOURCE need to be defined when 3201building with the bundled compiler, or when using the `-Ac' option. 3202These defines aren't necessary with `-Ae'. 3203 3204 It is best to explicitly configure the `hppa64-hp-hpux11*' target 3205with the `--with-ld=...' option. This overrides the standard search 3206for ld. The two linkers supported on this target require different 3207commands. The default linker is determined during configuration. As a 3208result, it's not possible to switch linkers in the middle of a GCC 3209build. This has been reported to sometimes occur in unified builds of 3210binutils and GCC. 3211 3212 A recent linker patch must be installed for the correct operation of 3213GCC 3.3 and later. `PHSS_26559' and `PHSS_24304' are the oldest linker 3214patches that are known to work. They are for HP-UX 11.00 and 11.11, 3215respectively. `PHSS_24303', the companion to `PHSS_24304', might be 3216usable but it hasn't been tested. These patches have been superseded. 3217Consult the HP patch database to obtain the currently recommended 3218linker patch for your system. 3219 3220 The patches are necessary for the support of weak symbols on the 322132-bit port, and for the running of initializers and finalizers. Weak 3222symbols are implemented using SOM secondary definition symbols. Prior 3223to HP-UX 11, there are bugs in the linker support for secondary symbols. 3224The patches correct a problem of linker core dumps creating shared 3225libraries containing secondary symbols, as well as various other 3226linking issues involving secondary symbols. 3227 3228 GCC 3.3 uses the ELF DT_INIT_ARRAY and DT_FINI_ARRAY capabilities to 3229run initializers and finalizers on the 64-bit port. The 32-bit port 3230uses the linker `+init' and `+fini' options for the same purpose. The 3231patches correct various problems with the +init/+fini options, 3232including program core dumps. Binutils 2.14 corrects a problem on the 323364-bit port resulting from HP's non-standard use of the .init and .fini 3234sections for array initializers and finalizers. 3235 3236 Although the HP and GNU linkers are both supported for the 3237`hppa64-hp-hpux11*' target, it is strongly recommended that the HP 3238linker be used for link editing on this target. 3239 3240 At this time, the GNU linker does not support the creation of long 3241branch stubs. As a result, it can't successfully link binaries 3242containing branch offsets larger than 8 megabytes. In addition, there 3243are problems linking shared libraries, linking executables with 3244`-static', and with dwarf2 unwind and exception support. It also 3245doesn't provide stubs for internal calls to global functions in shared 3246libraries, so these calls can't be overloaded. 3247 3248 The HP dynamic loader does not support GNU symbol versioning, so 3249symbol versioning is not supported. It may be necessary to disable 3250symbol versioning with `--disable-symvers' when using GNU ld. 3251 3252 POSIX threads are the default. The optional DCE thread library is 3253not supported, so `--enable-threads=dce' does not work. 3254 3255*-*-linux-gnu 3256============= 3257 3258Versions of libstdc++-v3 starting with 3.2.1 require bug fixes present 3259in glibc 2.2.5 and later. More information is available in the 3260libstdc++-v3 documentation. 3261 3262i?86-*-linux* 3263============= 3264 3265As of GCC 3.3, binutils 2.13.1 or later is required for this platform. 3266See bug 10877 for more information. 3267 3268 If you receive Signal 11 errors when building on GNU/Linux, then it 3269is possible you have a hardware problem. Further information on this 3270can be found on www.bitwizard.nl. 3271 3272i?86-*-solaris2.10 3273================== 3274 3275Use this for Solaris 10 or later on x86 and x86-64 systems. Starting 3276with GCC 4.7, there is also a 64-bit `amd64-*-solaris2.1[0-9]*' or 3277`x86_64-*-solaris2.1[0-9]*' configuration that corresponds to 3278`sparcv9-sun-solaris2*'. 3279 3280 It is recommended that you configure GCC to use the GNU assembler. 3281The versions included in Solaris 10, from GNU binutils 2.15 (in 3282`/usr/sfw/bin/gas'), and Solaris 11, from GNU binutils 2.19 or newer 3283(also available as `/usr/bin/gas' and `/usr/gnu/bin/as'), work fine. 3284Please note that the current version, from GNU binutils 2.26, only 3285works on Solaris 12 when using the Solaris linker. On Solaris 10 and 328611, you either have to wait for GNU binutils 2.26.1 or newer, or stay 3287with GNU binutils 2.25.1. Recent versions of the Solaris assembler in 3288`/usr/ccs/bin/as' work almost as well, though. 3289 3290 For linking, the Solaris linker, is preferred. If you want to use 3291the GNU linker instead, note that due to a packaging bug the version in 3292Solaris 10, from GNU binutils 2.15 (in `/usr/sfw/bin/gld'), cannot be 3293used, while the version in Solaris 11, from GNU binutils 2.19 or newer 3294(also in `/usr/gnu/bin/ld' and `/usr/bin/gld'), works, as does the 3295latest version, from GNU binutils 2.26. 3296 3297 To use GNU `as', configure with the options `--with-gnu-as 3298--with-as=/usr/sfw/bin/gas'. It may be necessary to configure with 3299`--without-gnu-ld --with-ld=/usr/ccs/bin/ld' to guarantee use of Sun 3300`ld'. 3301 3302ia64-*-linux 3303============ 3304 3305IA-64 processor (also known as IPF, or Itanium Processor Family) 3306running GNU/Linux. 3307 3308 If you are using the installed system libunwind library with 3309`--with-system-libunwind', then you must use libunwind 0.98 or later. 3310 3311 None of the following versions of GCC has an ABI that is compatible 3312with any of the other versions in this list, with the exception that 3313Red Hat 2.96 and Trillian 000171 are compatible with each other: 3.1, 33143.0.2, 3.0.1, 3.0, Red Hat 2.96, and Trillian 000717. This primarily 3315affects C++ programs and programs that create shared libraries. GCC 33163.1 or later is recommended for compiling linux, the kernel. As of 3317version 3.1 GCC is believed to be fully ABI compliant, and hence no 3318more major ABI changes are expected. 3319 3320ia64-*-hpux* 3321============ 3322 3323Building GCC on this target requires the GNU Assembler. The bundled HP 3324assembler will not work. To prevent GCC from using the wrong assembler, 3325the option `--with-gnu-as' may be necessary. 3326 3327 The GCC libunwind library has not been ported to HPUX. This means 3328that for GCC versions 3.2.3 and earlier, `--enable-libunwind-exceptions' 3329is required to build GCC. For GCC 3.3 and later, this is the default. 3330For gcc 3.4.3 and later, `--enable-libunwind-exceptions' is removed and 3331the system libunwind library will always be used. 3332 3333*-ibm-aix* 3334========== 3335 3336Support for AIX version 3 and older was discontinued in GCC 3.4. 3337Support for AIX version 4.2 and older was discontinued in GCC 4.5. 3338 3339 "out of memory" bootstrap failures may indicate a problem with 3340process resource limits (ulimit). Hard limits are configured in the 3341`/etc/security/limits' system configuration file. 3342 3343 GCC 4.9 and above require a C++ compiler for bootstrap. IBM VAC++ / 3344xlC cannot bootstrap GCC. xlc can bootstrap an older version of GCC and 3345G++ can bootstrap recent releases of GCC. 3346 3347 GCC can bootstrap with recent versions of IBM XLC, but bootstrapping 3348with an earlier release of GCC is recommended. Bootstrapping with XLC 3349requires a larger data segment, which can be enabled through the 3350LDR_CNTRL environment variable, e.g., 3351 3352 % LDR_CNTRL=MAXDATA=0x50000000 3353 % export LDR_CNTRL 3354 3355 One can start with a pre-compiled version of GCC to build from 3356sources. One may delete GCC's "fixed" header files when starting with 3357a version of GCC built for an earlier release of AIX. 3358 3359 To speed up the configuration phases of bootstrapping and installing 3360GCC, one may use GNU Bash instead of AIX `/bin/sh', e.g., 3361 3362 % CONFIG_SHELL=/opt/freeware/bin/bash 3363 % export CONFIG_SHELL 3364 3365 and then proceed as described in the build instructions, where we 3366strongly recommend specifying an absolute path to invoke 3367SRCDIR/configure. 3368 3369 Because GCC on AIX is built as a 32-bit executable by default, 3370(although it can generate 64-bit programs) the GMP and MPFR libraries 3371required by gfortran must be 32-bit libraries. Building GMP and MPFR 3372as static archive libraries works better than shared libraries. 3373 3374 Errors involving `alloca' when building GCC generally are due to an 3375incorrect definition of `CC' in the Makefile or mixing files compiled 3376with the native C compiler and GCC. During the stage1 phase of the 3377build, the native AIX compiler *must* be invoked as `cc' (not `xlc'). 3378Once `configure' has been informed of `xlc', one needs to use `make 3379distclean' to remove the configure cache files and ensure that `CC' 3380environment variable does not provide a definition that will confuse 3381`configure'. If this error occurs during stage2 or later, then the 3382problem most likely is the version of Make (see above). 3383 3384 The native `as' and `ld' are recommended for bootstrapping on AIX. 3385The GNU Assembler, GNU Linker, and GNU Binutils version 2.20 is the 3386minimum level that supports bootstrap on AIX 5. The GNU Assembler has 3387not been updated to support AIX 6 or AIX 7. The native AIX tools do 3388interoperate with GCC. 3389 3390 AIX 7.1 added partial support for DWARF debugging, but full support 3391requires AIX 7.1 TL03 SP7 that supports additional DWARF sections and 3392fixes a bug in the assembler. AIX 7.1 TL03 SP5 distributed a version 3393of libm.a missing important symbols; a fix for IV77796 will be included 3394in SP6. 3395 3396 AIX 5.3 TL10, AIX 6.1 TL05 and AIX 7.1 TL00 introduced an AIX 3397assembler change that sometimes produces corrupt assembly files causing 3398AIX linker errors. The bug breaks GCC bootstrap on AIX and can cause 3399compilation failures with existing GCC installations. An AIX iFix for 3400AIX 5.3 is available (APAR IZ98385 for AIX 5.3 TL10, APAR IZ98477 for 3401AIX 5.3 TL11 and IZ98134 for AIX 5.3 TL12). AIX 5.3 TL11 SP8, AIX 5.3 3402TL12 SP5, AIX 6.1 TL04 SP11, AIX 6.1 TL05 SP7, AIX 6.1 TL06 SP6, AIX 34036.1 TL07 and AIX 7.1 TL01 should include the fix. 3404 3405 Building `libstdc++.a' requires a fix for an AIX Assembler bug APAR 3406IY26685 (AIX 4.3) or APAR IY25528 (AIX 5.1). It also requires a fix 3407for another AIX Assembler bug and a co-dependent AIX Archiver fix 3408referenced as APAR IY53606 (AIX 5.2) or as APAR IY54774 (AIX 5.1) 3409 3410 `libstdc++' in GCC 3.4 increments the major version number of the 3411shared object and GCC installation places the `libstdc++.a' shared 3412library in a common location which will overwrite the and GCC 3.3 3413version of the shared library. Applications either need to be 3414re-linked against the new shared library or the GCC 3.1 and GCC 3.3 3415versions of the `libstdc++' shared object needs to be available to the 3416AIX runtime loader. The GCC 3.1 `libstdc++.so.4', if present, and GCC 34173.3 `libstdc++.so.5' shared objects can be installed for runtime 3418dynamic loading using the following steps to set the `F_LOADONLY' flag 3419in the shared object for _each_ multilib `libstdc++.a' installed: 3420 3421 Extract the shared objects from the currently installed 3422`libstdc++.a' archive: 3423 % ar -x libstdc++.a libstdc++.so.4 libstdc++.so.5 3424 3425 Enable the `F_LOADONLY' flag so that the shared object will be 3426available for runtime dynamic loading, but not linking: 3427 % strip -e libstdc++.so.4 libstdc++.so.5 3428 3429 Archive the runtime-only shared object in the GCC 3.4 `libstdc++.a' 3430archive: 3431 % ar -q libstdc++.a libstdc++.so.4 libstdc++.so.5 3432 3433 Eventually, the `--with-aix-soname=svr4' configure option may drop 3434the need for this procedure for libraries that support it. 3435 3436 Linking executables and shared libraries may produce warnings of 3437duplicate symbols. The assembly files generated by GCC for AIX always 3438have included multiple symbol definitions for certain global variable 3439and function declarations in the original program. The warnings should 3440not prevent the linker from producing a correct library or runnable 3441executable. 3442 3443 AIX 4.3 utilizes a "large format" archive to support both 32-bit and 344464-bit object modules. The routines provided in AIX 4.3.0 and AIX 4.3.1 3445to parse archive libraries did not handle the new format correctly. 3446These routines are used by GCC and result in error messages during 3447linking such as "not a COFF file". The version of the routines shipped 3448with AIX 4.3.1 should work for a 32-bit environment. The `-g' option 3449of the archive command may be used to create archives of 32-bit objects 3450using the original "small format". A correct version of the routines 3451is shipped with AIX 4.3.2 and above. 3452 3453 Some versions of the AIX binder (linker) can fail with a relocation 3454overflow severe error when the `-bbigtoc' option is used to link 3455GCC-produced object files into an executable that overflows the TOC. A 3456fix for APAR IX75823 (OVERFLOW DURING LINK WHEN USING GCC AND -BBIGTOC) 3457is available from IBM Customer Support and from its 3458techsupport.services.ibm.com website as PTF U455193. 3459 3460 The AIX 4.3.2.1 linker (bos.rte.bind_cmds Level 4.3.2.1) will dump 3461core with a segmentation fault when invoked by any version of GCC. A 3462fix for APAR IX87327 is available from IBM Customer Support and from its 3463techsupport.services.ibm.com website as PTF U461879. This fix is 3464incorporated in AIX 4.3.3 and above. 3465 3466 The initial assembler shipped with AIX 4.3.0 generates incorrect 3467object files. A fix for APAR IX74254 (64BIT DISASSEMBLED OUTPUT FROM 3468COMPILER FAILS TO ASSEMBLE/BIND) is available from IBM Customer Support 3469and from its techsupport.services.ibm.com website as PTF U453956. This 3470fix is incorporated in AIX 4.3.1 and above. 3471 3472 AIX provides National Language Support (NLS). Compilers and 3473assemblers use NLS to support locale-specific representations of 3474various data formats including floating-point numbers (e.g., `.' vs 3475`,' for separating decimal fractions). There have been problems 3476reported where GCC does not produce the same floating-point formats 3477that the assembler expects. If one encounters this problem, set the 3478`LANG' environment variable to `C' or `En_US'. 3479 3480 A default can be specified with the `-mcpu=CPU_TYPE' switch and 3481using the configure option `--with-cpu-CPU_TYPE'. 3482 3483iq2000-*-elf 3484============ 3485 3486Vitesse IQ2000 processors. These are used in embedded applications. 3487There are no standard Unix configurations. 3488 3489lm32-*-elf 3490========== 3491 3492Lattice Mico32 processor. This configuration is intended for embedded 3493systems. 3494 3495lm32-*-uclinux 3496============== 3497 3498Lattice Mico32 processor. This configuration is intended for embedded 3499systems running uClinux. 3500 3501m32c-*-elf 3502========== 3503 3504Renesas M32C processor. This configuration is intended for embedded 3505systems. 3506 3507m32r-*-elf 3508========== 3509 3510Renesas M32R processor. This configuration is intended for embedded 3511systems. 3512 3513m68k-*-* 3514======== 3515 3516By default, `m68k-*-elf*', `m68k-*-rtems', `m68k-*-uclinux' and 3517`m68k-*-linux' build libraries for both M680x0 and ColdFire processors. 3518If you only need the M680x0 libraries, you can omit the ColdFire ones 3519by passing `--with-arch=m68k' to `configure'. Alternatively, you can 3520omit the M680x0 libraries by passing `--with-arch=cf' to `configure'. 3521These targets default to 5206 or 5475 code as appropriate for the 3522target system when configured with `--with-arch=cf' and 68020 code 3523otherwise. 3524 3525 The `m68k-*-netbsd' and `m68k-*-openbsd' targets also support the 3526`--with-arch' option. They will generate ColdFire CFV4e code when 3527configured with `--with-arch=cf' and 68020 code otherwise. 3528 3529 You can override the default processors listed above by configuring 3530with `--with-cpu=TARGET'. This TARGET can either be a `-mcpu' argument 3531or one of the following values: `m68000', `m68010', `m68020', `m68030', 3532`m68040', `m68060', `m68020-40' and `m68020-60'. 3533 3534 GCC requires at least binutils version 2.17 on these targets. 3535 3536m68k-*-uclinux 3537============== 3538 3539GCC 4.3 changed the uClinux configuration so that it uses the 3540`m68k-linux-gnu' ABI rather than the `m68k-elf' ABI. It also added 3541improved support for C++ and flat shared libraries, both of which were 3542ABI changes. 3543 3544mep-*-elf 3545========= 3546 3547Toshiba Media embedded Processor. This configuration is intended for 3548embedded systems. 3549 3550microblaze-*-elf 3551================ 3552 3553Xilinx MicroBlaze processor. This configuration is intended for 3554embedded systems. 3555 3556mips-*-* 3557======== 3558 3559If on a MIPS system you get an error message saying "does not have gp 3560sections for all it's [sic] sectons [sic]", don't worry about it. This 3561happens whenever you use GAS with the MIPS linker, but there is not 3562really anything wrong, and it is okay to use the output file. You can 3563stop such warnings by installing the GNU linker. 3564 3565 It would be nice to extend GAS to produce the gp tables, but they are 3566optional, and there should not be a warning about their absence. 3567 3568 The libstdc++ atomic locking routines for MIPS targets requires MIPS 3569II and later. A patch went in just after the GCC 3.3 release to make 3570`mips*-*-*' use the generic implementation instead. You can also 3571configure for `mipsel-elf' as a workaround. The `mips*-*-linux*' 3572target continues to use the MIPS II routines. More work on this is 3573expected in future releases. 3574 3575 The built-in `__sync_*' functions are available on MIPS II and later 3576systems and others that support the `ll', `sc' and `sync' instructions. 3577This can be overridden by passing `--with-llsc' or `--without-llsc' 3578when configuring GCC. Since the Linux kernel emulates these 3579instructions if they are missing, the default for `mips*-*-linux*' 3580targets is `--with-llsc'. The `--with-llsc' and `--without-llsc' 3581configure options may be overridden at compile time by passing the 3582`-mllsc' or `-mno-llsc' options to the compiler. 3583 3584 MIPS systems check for division by zero (unless 3585`-mno-check-zero-division' is passed to the compiler) by generating 3586either a conditional trap or a break instruction. Using trap results 3587in smaller code, but is only supported on MIPS II and later. Also, 3588some versions of the Linux kernel have a bug that prevents trap from 3589generating the proper signal (`SIGFPE'). To enable the use of break, 3590use the `--with-divide=breaks' `configure' option when configuring GCC. 3591The default is to use traps on systems that support them. 3592 3593 The assembler from GNU binutils 2.17 and earlier has a bug in the way 3594it sorts relocations for REL targets (o32, o64, EABI). This can cause 3595bad code to be generated for simple C++ programs. Also the linker from 3596GNU binutils versions prior to 2.17 has a bug which causes the runtime 3597linker stubs in very large programs, like `libgcj.so', to be 3598incorrectly generated. GNU Binutils 2.18 and later (and snapshots made 3599after Nov. 9, 2006) should be free from both of these problems. 3600 3601mips-sgi-irix5 3602============== 3603 3604Support for IRIX 5 has been removed in GCC 4.6. 3605 3606mips-sgi-irix6 3607============== 3608 3609Support for IRIX 6.5 has been removed in GCC 4.8. Support for IRIX 6 3610releases before 6.5 has been removed in GCC 4.6, as well as support for 3611the O32 ABI. 3612 3613moxie-*-elf 3614=========== 3615 3616The moxie processor. 3617 3618msp430-*-elf 3619============ 3620 3621TI MSP430 processor. This configuration is intended for embedded 3622systems. 3623 3624nds32le-*-elf 3625============= 3626 3627Andes NDS32 target in little endian mode. 3628 3629nds32be-*-elf 3630============= 3631 3632Andes NDS32 target in big endian mode. 3633 3634nvptx-*-none 3635============ 3636 3637Nvidia PTX target. 3638 3639 Instead of GNU binutils, you will need to install nvptx-tools. Tell 3640GCC where to find it: 3641`--with-build-time-tools=[install-nvptx-tools]/nvptx-none/bin'. 3642 3643 A nvptx port of newlib is available at nvptx-newlib. It can be 3644automatically built together with GCC. For this, add a symbolic link 3645to nvptx-newlib's `newlib' directory to the directory containing the 3646GCC sources. 3647 3648 Use the `--disable-sjlj-exceptions' and 3649`--enable-newlib-io-long-long' options when configuring. 3650 3651powerpc-*-* 3652=========== 3653 3654You can specify a default version for the `-mcpu=CPU_TYPE' switch by 3655using the configure option `--with-cpu-CPU_TYPE'. 3656 3657 You will need binutils 2.15 or newer for a working GCC. 3658 3659powerpc-*-darwin* 3660================= 3661 3662PowerPC running Darwin (Mac OS X kernel). 3663 3664 Pre-installed versions of Mac OS X may not include any developer 3665tools, meaning that you will not be able to build GCC from source. Tool 3666binaries are available at `http://opensource.apple.com/'. 3667 3668 This version of GCC requires at least cctools-590.36. The 3669cctools-590.36 package referenced from 3670`http://gcc.gnu.org/ml/gcc/2006-03/msg00507.html' will not work on 3671systems older than 10.3.9 (aka darwin7.9.0). 3672 3673powerpc-*-elf 3674============= 3675 3676PowerPC system in big endian mode, running System V.4. 3677 3678powerpc*-*-linux-gnu* 3679===================== 3680 3681PowerPC system in big endian mode running Linux. 3682 3683powerpc-*-netbsd* 3684================= 3685 3686PowerPC system in big endian mode running NetBSD. 3687 3688powerpc-*-eabisim 3689================= 3690 3691Embedded PowerPC system in big endian mode for use in running under the 3692PSIM simulator. 3693 3694powerpc-*-eabi 3695============== 3696 3697Embedded PowerPC system in big endian mode. 3698 3699powerpcle-*-elf 3700=============== 3701 3702PowerPC system in little endian mode, running System V.4. 3703 3704powerpcle-*-eabisim 3705=================== 3706 3707Embedded PowerPC system in little endian mode for use in running under 3708the PSIM simulator. 3709 3710powerpcle-*-eabi 3711================ 3712 3713Embedded PowerPC system in little endian mode. 3714 3715rl78-*-elf 3716========== 3717 3718The Renesas RL78 processor. This configuration is intended for 3719embedded systems. 3720 3721rx-*-elf 3722======== 3723 3724The Renesas RX processor. See 3725`http://eu.renesas.com/fmwk.jsp?cnt=rx600_series_landing.jsp&fp=/products/mpumcu/rx_family/rx600_series' 3726for more information about this processor. 3727 3728s390-*-linux* 3729============= 3730 3731S/390 system running GNU/Linux for S/390. 3732 3733s390x-*-linux* 3734============== 3735 3736zSeries system (64-bit) running GNU/Linux for zSeries. 3737 3738s390x-ibm-tpf* 3739============== 3740 3741zSeries system (64-bit) running TPF. This platform is supported as 3742cross-compilation target only. 3743 3744*-*-solaris2* 3745============= 3746 3747Support for Solaris 9 has been removed in GCC 5. Support for Solaris 8 3748has been removed in GCC 4.8. Support for Solaris 7 has been removed in 3749GCC 4.6. 3750 3751 Sun does not ship a C compiler with Solaris 2 before Solaris 10, 3752though you can download the Sun Studio compilers for free. In Solaris 375310 and 11, GCC 3.4.3 is available as `/usr/sfw/bin/gcc'. Solaris 11 3754also provides GCC 4.5.2, 4.7.3, and 4.8.2 as `/usr/gcc/4.5/bin/gcc' or 3755similar. Alternatively, you can install a pre-built GCC to bootstrap 3756and install GCC. See the binaries page for details. 3757 3758 The Solaris 2 `/bin/sh' will often fail to configure `libstdc++-v3', 3759`boehm-gc' or `libjava'. We therefore recommend using the following 3760initial sequence of commands 3761 3762 % CONFIG_SHELL=/bin/ksh 3763 % export CONFIG_SHELL 3764 3765and proceed as described in the configure instructions. In addition we 3766strongly recommend specifying an absolute path to invoke 3767`SRCDIR/configure'. 3768 3769 Solaris 10 comes with a number of optional OS packages. Some of 3770these are needed to use GCC fully, namely `SUNWarc', `SUNWbtool', 3771`SUNWesu', `SUNWhea', `SUNWlibm', `SUNWsprot', and `SUNWtoo'. If you 3772did not install all optional packages when installing Solaris 10, you 3773will need to verify that the packages that GCC needs are installed. To 3774check whether an optional package is installed, use the `pkginfo' 3775command. To add an optional package, use the `pkgadd' command. For 3776further details, see the Solaris 10 documentation. 3777 3778 Starting with Solaris 11, the package management has changed, so you 3779need to check for `system/header', `system/linker', and 3780`developer/assembler' packages. Checking for and installing packages 3781is done with the `pkg' command now. 3782 3783 Trying to use the linker and other tools in `/usr/ucb' to install 3784GCC has been observed to cause trouble. For example, the linker may 3785hang indefinitely. The fix is to remove `/usr/ucb' from your `PATH'. 3786 3787 The build process works more smoothly with the legacy Sun tools so, 3788if you have `/usr/xpg4/bin' in your `PATH', we recommend that you place 3789`/usr/bin' before `/usr/xpg4/bin' for the duration of the build. 3790 3791 We recommend the use of the Solaris assembler or the GNU assembler, 3792in conjunction with the Solaris linker. The GNU `as' versions included 3793in Solaris 10, from GNU binutils 2.15 (in `/usr/sfw/bin/gas'), and 3794Solaris 11, from GNU binutils 2.19 or newer (also in `/usr/bin/gas' and 3795`/usr/gnu/bin/as'), are known to work. Current versions of GNU 3796binutils (2.26) are known to work as well, with the caveat mentioned in 3797i?86-*-solaris2.10 . Note that your mileage may vary if you use a 3798combination of the GNU tools and the Solaris tools: while the 3799combination GNU `as' + Sun `ld' should reasonably work, the reverse 3800combination Sun `as' + GNU `ld' may fail to build or cause memory 3801corruption at runtime in some cases for C++ programs. GNU `ld' usually 3802works as well, although the version included in Solaris 10 cannot be 3803used due to several bugs. Again, the current version (2.26) is known 3804to work, but generally lacks platform specific features, so better stay 3805with Solaris `ld'. To use the LTO linker plugin 3806(`-fuse-linker-plugin') with GNU `ld', GNU binutils _must_ be 3807configured with `--enable-largefile'. 3808 3809 To enable symbol versioning in `libstdc++' with the Solaris linker, 3810you need to have any version of GNU `c++filt', which is part of GNU 3811binutils. `libstdc++' symbol versioning will be disabled if no 3812appropriate version is found. Solaris `c++filt' from the Solaris 3813Studio compilers does _not_ work. 3814 3815 GNU `make' version 3.81 or later is required to build libjava with 3816the Solaris linker. 3817 3818 Sun bug 4927647 sometimes causes random spurious testsuite failures 3819related to missing diagnostic output. This bug doesn't affect GCC 3820itself, rather it is a kernel bug triggered by the `expect' program 3821which is used only by the GCC testsuite driver. When the bug causes 3822the `expect' program to miss anticipated output, extra testsuite 3823failures appear. 3824 3825sparc*-*-* 3826========== 3827 3828This section contains general configuration information for all 3829SPARC-based platforms. In addition to reading this section, please 3830read all other sections that match your target. 3831 3832 Newer versions of the GNU Multiple Precision Library (GMP), the MPFR 3833library and the MPC library are known to be miscompiled by earlier 3834versions of GCC on these platforms. We therefore recommend the use of 3835the exact versions of these libraries listed as minimal versions in the 3836prerequisites. 3837 3838sparc-sun-solaris2* 3839=================== 3840 3841When GCC is configured to use GNU binutils 2.14 or later, the binaries 3842produced are smaller than the ones produced using Sun's native tools; 3843this difference is quite significant for binaries containing debugging 3844information. 3845 3846 Starting with Solaris 7, the operating system is capable of executing 384764-bit SPARC V9 binaries. GCC 3.1 and later properly supports this; 3848the `-m64' option enables 64-bit code generation. However, if all you 3849want is code tuned for the UltraSPARC CPU, you should try the 3850`-mtune=ultrasparc' option instead, which produces code that, unlike 3851full 64-bit code, can still run on non-UltraSPARC machines. 3852 3853 When configuring the GNU Multiple Precision Library (GMP), the MPFR 3854library or the MPC library on a Solaris 7 or later system, the canonical 3855target triplet must be specified as the `build' parameter on the 3856configure line. This target triplet can be obtained by invoking 3857`./config.guess' in the toplevel source directory of GCC (and not that 3858of GMP or MPFR or MPC). For example on a Solaris 9 system: 3859 3860 % ./configure --build=sparc-sun-solaris2.9 --prefix=xxx 3861 3862sparc-sun-solaris2.10 3863===================== 3864 3865There is a bug in older versions of the Sun assembler which breaks 3866thread-local storage (TLS). A typical error message is 3867 3868 ld: fatal: relocation error: R_SPARC_TLS_LE_HIX22: file /var/tmp//ccamPA1v.o: 3869 symbol <unknown>: bad symbol type SECT: symbol type must be TLS 3870 3871This bug is fixed in Sun patch 118683-03 or later. 3872 3873sparc-*-linux* 3874============== 3875 3876GCC versions 3.0 and higher require binutils 2.11.2 and glibc 2.2.4 or 3877newer on this platform. All earlier binutils and glibc releases 3878mishandled unaligned relocations on `sparc-*-*' targets. 3879 3880sparc64-*-solaris2* 3881=================== 3882 3883When configuring the GNU Multiple Precision Library (GMP), the MPFR 3884library or the MPC library, the canonical target triplet must be 3885specified as the `build' parameter on the configure line. For example 3886on a Solaris 9 system: 3887 3888 % ./configure --build=sparc64-sun-solaris2.9 --prefix=xxx 3889 3890sparcv9-*-solaris2* 3891=================== 3892 3893This is a synonym for `sparc64-*-solaris2*'. 3894 3895c6x-*-* 3896======= 3897 3898The C6X family of processors. This port requires binutils-2.22 or newer. 3899 3900tilegx-*-linux* 3901=============== 3902 3903The TILE-Gx processor in little endian mode, running GNU/Linux. This 3904port requires binutils-2.22 or newer. 3905 3906tilegxbe-*-linux* 3907================= 3908 3909The TILE-Gx processor in big endian mode, running GNU/Linux. This port 3910requires binutils-2.23 or newer. 3911 3912tilepro-*-linux* 3913================ 3914 3915The TILEPro processor running GNU/Linux. This port requires 3916binutils-2.22 or newer. 3917 3918visium-*-elf 3919============ 3920 3921CDS VISIUMcore processor. This configuration is intended for embedded 3922systems. 3923 3924*-*-vxworks* 3925============ 3926 3927Support for VxWorks is in flux. At present GCC supports _only_ the 3928very recent VxWorks 5.5 (aka Tornado 2.2) release, and only on PowerPC. 3929We welcome patches for other architectures supported by VxWorks 5.5. 3930Support for VxWorks AE would also be welcome; we believe this is merely 3931a matter of writing an appropriate "configlette" (see below). We are 3932not interested in supporting older, a.out or COFF-based, versions of 3933VxWorks in GCC 3. 3934 3935 VxWorks comes with an older version of GCC installed in 3936`$WIND_BASE/host'; we recommend you do not overwrite it. Choose an 3937installation PREFIX entirely outside $WIND_BASE. Before running 3938`configure', create the directories `PREFIX' and `PREFIX/bin'. Link or 3939copy the appropriate assembler, linker, etc. into `PREFIX/bin', and set 3940your PATH to include that directory while running both `configure' and 3941`make'. 3942 3943 You must give `configure' the `--with-headers=$WIND_BASE/target/h' 3944switch so that it can find the VxWorks system headers. Since VxWorks 3945is a cross compilation target only, you must also specify 3946`--target=TARGET'. `configure' will attempt to create the directory 3947`PREFIX/TARGET/sys-include' and copy files into it; make sure the user 3948running `configure' has sufficient privilege to do so. 3949 3950 GCC's exception handling runtime requires a special "configlette" 3951module, `contrib/gthr_supp_vxw_5x.c'. Follow the instructions in that 3952file to add the module to your kernel build. (Future versions of 3953VxWorks will incorporate this module.) 3954 3955x86_64-*-*, amd64-*-* 3956===================== 3957 3958GCC supports the x86-64 architecture implemented by the AMD64 processor 3959(amd64-*-* is an alias for x86_64-*-*) on GNU/Linux, FreeBSD and NetBSD. 3960On GNU/Linux the default is a bi-arch compiler which is able to generate 3961both 64-bit x86-64 and 32-bit x86 code (via the `-m32' switch). 3962 3963x86_64-*-solaris2.1[0-9]* 3964========================= 3965 3966GCC also supports the x86-64 architecture implemented by the AMD64 3967processor (`amd64-*-*' is an alias for `x86_64-*-*') on Solaris 10 or 3968later. Unlike other systems, without special options a bi-arch 3969compiler is built which generates 32-bit code by default, but can 3970generate 64-bit x86-64 code with the `-m64' switch. Since GCC 4.7, 3971there is also a configuration that defaults to 64-bit code, but can 3972generate 32-bit code with `-m32'. To configure and build this way, you 3973have to provide all support libraries like `libgmp' as 64-bit code, 3974configure with `--target=x86_64-pc-solaris2.1x' and `CC=gcc -m64'. 3975 3976xtensa*-*-elf 3977============= 3978 3979This target is intended for embedded Xtensa systems using the `newlib' 3980C library. It uses ELF but does not support shared objects. 3981Designed-defined instructions specified via the Tensilica Instruction 3982Extension (TIE) language are only supported through inline assembly. 3983 3984 The Xtensa configuration information must be specified prior to 3985building GCC. The `include/xtensa-config.h' header file contains the 3986configuration information. If you created your own Xtensa 3987configuration with the Xtensa Processor Generator, the downloaded files 3988include a customized copy of this header file, which you can use to 3989replace the default header file. 3990 3991xtensa*-*-linux* 3992================ 3993 3994This target is for Xtensa systems running GNU/Linux. It supports ELF 3995shared objects and the GNU C library (glibc). It also generates 3996position-independent code (PIC) regardless of whether the `-fpic' or 3997`-fPIC' options are used. In other respects, this target is the same 3998as the `xtensa*-*-elf' target. 3999 4000Microsoft Windows 4001================= 4002 4003Intel 16-bit versions 4004--------------------- 4005 4006The 16-bit versions of Microsoft Windows, such as Windows 3.1, are not 4007supported. 4008 4009 However, the 32-bit port has limited support for Microsoft Windows 40103.11 in the Win32s environment, as a target only. See below. 4011 4012Intel 32-bit versions 4013--------------------- 4014 4015The 32-bit versions of Windows, including Windows 95, Windows NT, 4016Windows XP, and Windows Vista, are supported by several different target 4017platforms. These targets differ in which Windows subsystem they target 4018and which C libraries are used. 4019 4020 * Cygwin *-*-cygwin: Cygwin provides a user-space Linux API 4021 emulation layer in the Win32 subsystem. 4022 4023 * Interix *-*-interix: The Interix subsystem provides native support 4024 for POSIX. 4025 4026 * MinGW *-*-mingw32: MinGW is a native GCC port for the Win32 4027 subsystem that provides a subset of POSIX. 4028 4029 * MKS i386-pc-mks: NuTCracker from MKS. See 4030 `http://www.mkssoftware.com/' for more information. 4031 4032Intel 64-bit versions 4033--------------------- 4034 4035GCC contains support for x86-64 using the mingw-w64 runtime library, 4036available from `http://mingw-w64.sourceforge.net/'. This library 4037should be used with the target triple x86_64-pc-mingw32. 4038 4039 Presently Windows for Itanium is not supported. 4040 4041Windows CE 4042---------- 4043 4044Windows CE is supported as a target only on Hitachi SuperH 4045(sh-wince-pe), and MIPS (mips-wince-pe). 4046 4047Other Windows Platforms 4048----------------------- 4049 4050GCC no longer supports Windows NT on the Alpha or PowerPC. 4051 4052 GCC no longer supports the Windows POSIX subsystem. However, it does 4053support the Interix subsystem. See above. 4054 4055 Old target names including *-*-winnt and *-*-windowsnt are no longer 4056used. 4057 4058 PW32 (i386-pc-pw32) support was never completed, and the project 4059seems to be inactive. See `http://pw32.sourceforge.net/' for more 4060information. 4061 4062 UWIN support has been removed due to a lack of maintenance. 4063 4064*-*-cygwin 4065========== 4066 4067Ports of GCC are included with the Cygwin environment. 4068 4069 GCC will build under Cygwin without modification; it does not build 4070with Microsoft's C++ compiler and there are no plans to make it do so. 4071 4072 The Cygwin native compiler can be configured to target any 32-bit x86 4073cpu architecture desired; the default is i686-pc-cygwin. It should be 4074used with as up-to-date a version of binutils as possible; use either 4075the latest official GNU binutils release in the Cygwin distribution, or 4076version 2.20 or above if building your own. 4077 4078*-*-interix 4079=========== 4080 4081The Interix target is used by OpenNT, Interix, Services For UNIX (SFU), 4082and Subsystem for UNIX-based Applications (SUA). Applications compiled 4083with this target run in the Interix subsystem, which is separate from 4084the Win32 subsystem. This target was last known to work in GCC 3.3. 4085 4086*-*-mingw32 4087=========== 4088 4089GCC will build with and support only MinGW runtime 3.12 and later. 4090Earlier versions of headers are incompatible with the new default 4091semantics of `extern inline' in `-std=c99' and `-std=gnu99' modes. 4092 4093Older systems 4094============= 4095 4096GCC contains support files for many older (1980s and early 1990s) Unix 4097variants. For the most part, support for these systems has not been 4098deliberately removed, but it has not been maintained for several years 4099and may suffer from bitrot. 4100 4101 Starting with GCC 3.1, each release has a list of "obsoleted" 4102systems. Support for these systems is still present in that release, 4103but `configure' will fail unless the `--enable-obsolete' option is 4104given. Unless a maintainer steps forward, support for these systems 4105will be removed from the next release of GCC. 4106 4107 Support for old systems as hosts for GCC can cause problems if the 4108workarounds for compiler, library and operating system bugs affect the 4109cleanliness or maintainability of the rest of GCC. In some cases, to 4110bring GCC up on such a system, if still possible with current GCC, may 4111require first installing an old version of GCC which did work on that 4112system, and using it to compile a more recent GCC, to avoid bugs in the 4113vendor compiler. Old releases of GCC 1 and GCC 2 are available in the 4114`old-releases' directory on the GCC mirror sites. Header bugs may 4115generally be avoided using `fixincludes', but bugs or deficiencies in 4116libraries and the operating system may still cause problems. 4117 4118 Support for older systems as targets for cross-compilation is less 4119problematic than support for them as hosts for GCC; if an enthusiast 4120wishes to make such a target work again (including resurrecting any of 4121the targets that never worked with GCC 2, starting from the last 4122version before they were removed), patches following the usual 4123requirements would be likely to be accepted, since they should not 4124affect the support for more modern targets. 4125 4126 For some systems, old versions of GNU binutils may also be useful, 4127and are available from `pub/binutils/old-releases' on sourceware.org 4128mirror sites. 4129 4130 Some of the information on specific systems above relates to such 4131older systems, but much of the information about GCC on such systems 4132(which may no longer be applicable to current GCC) is to be found in 4133the GCC texinfo manual. 4134 4135all ELF targets (SVR4, Solaris 2, etc.) 4136======================================= 4137 4138C++ support is significantly better on ELF targets if you use the GNU 4139linker; duplicate copies of inlines, vtables and template 4140instantiations will be discarded automatically. 4141 4142 4143File: gccinstall.info, Node: Old, Next: GNU Free Documentation License, Prev: Specific, Up: Top 4144 414510 Old installation documentation 4146********************************* 4147 4148 Note most of this information is out of date and superseded by the 4149previous chapters of this manual. It is provided for historical 4150reference only, because of a lack of volunteers to merge it into the 4151main manual. 4152 4153* Menu: 4154 4155* Configurations:: Configurations Supported by GCC. 4156 4157 Here is the procedure for installing GCC on a GNU or Unix system. 4158 4159 1. If you have chosen a configuration for GCC which requires other GNU 4160 tools (such as GAS or the GNU linker) instead of the standard 4161 system tools, install the required tools in the build directory 4162 under the names `as', `ld' or whatever is appropriate. 4163 4164 Alternatively, you can do subsequent compilation using a value of 4165 the `PATH' environment variable such that the necessary GNU tools 4166 come before the standard system tools. 4167 4168 2. Specify the host, build and target machine configurations. You do 4169 this when you run the `configure' script. 4170 4171 The "build" machine is the system which you are using, the "host" 4172 machine is the system where you want to run the resulting compiler 4173 (normally the build machine), and the "target" machine is the 4174 system for which you want the compiler to generate code. 4175 4176 If you are building a compiler to produce code for the machine it 4177 runs on (a native compiler), you normally do not need to specify 4178 any operands to `configure'; it will try to guess the type of 4179 machine you are on and use that as the build, host and target 4180 machines. So you don't need to specify a configuration when 4181 building a native compiler unless `configure' cannot figure out 4182 what your configuration is or guesses wrong. 4183 4184 In those cases, specify the build machine's "configuration name" 4185 with the `--host' option; the host and target will default to be 4186 the same as the host machine. 4187 4188 Here is an example: 4189 4190 ./configure --host=sparc-sun-sunos4.1 4191 4192 A configuration name may be canonical or it may be more or less 4193 abbreviated. 4194 4195 A canonical configuration name has three parts, separated by 4196 dashes. It looks like this: `CPU-COMPANY-SYSTEM'. (The three 4197 parts may themselves contain dashes; `configure' can figure out 4198 which dashes serve which purpose.) For example, 4199 `m68k-sun-sunos4.1' specifies a Sun 3. 4200 4201 You can also replace parts of the configuration by nicknames or 4202 aliases. For example, `sun3' stands for `m68k-sun', so 4203 `sun3-sunos4.1' is another way to specify a Sun 3. 4204 4205 You can specify a version number after any of the system types, 4206 and some of the CPU types. In most cases, the version is 4207 irrelevant, and will be ignored. So you might as well specify the 4208 version if you know it. 4209 4210 See *Note Configurations::, for a list of supported configuration 4211 names and notes on many of the configurations. You should check 4212 the notes in that section before proceeding any further with the 4213 installation of GCC. 4214 4215 4216 4217File: gccinstall.info, Node: Configurations, Up: Old 4218 421910.1 Configurations Supported by GCC 4220==================================== 4221 4222 Here are the possible CPU types: 4223 4224 1750a, a29k, alpha, arm, avr, cN, clipper, dsp16xx, elxsi, fr30, 4225 h8300, hppa1.0, hppa1.1, i370, i386, i486, i586, i686, i786, i860, 4226 i960, ip2k, m32r, m68000, m68k, m88k, mcore, mips, mipsel, mips64, 4227 mips64el, mn10200, mn10300, ns32k, pdp11, powerpc, powerpcle, 4228 romp, rs6000, sh, sparc, sparclite, sparc64, v850, vax, we32k. 4229 4230 Here are the recognized company names. As you can see, customary 4231abbreviations are used rather than the longer official names. 4232 4233 acorn, alliant, altos, apollo, apple, att, bull, cbm, convergent, 4234 convex, crds, dec, dg, dolphin, elxsi, encore, harris, hitachi, 4235 hp, ibm, intergraph, isi, mips, motorola, ncr, next, ns, omron, 4236 plexus, sequent, sgi, sony, sun, tti, unicom, wrs. 4237 4238 The company name is meaningful only to disambiguate when the rest of 4239the information supplied is insufficient. You can omit it, writing 4240just `CPU-SYSTEM', if it is not needed. For example, `vax-ultrix4.2' 4241is equivalent to `vax-dec-ultrix4.2'. 4242 4243 Here is a list of system types: 4244 4245 386bsd, aix, acis, amigaos, aos, aout, aux, bosx, bsd, clix, coff, 4246 ctix, cxux, dgux, dynix, ebmon, ecoff, elf, esix, freebsd, hms, 4247 genix, gnu, linux, linux-gnu, hiux, hpux, iris, irix, isc, luna, 4248 lynxos, mach, minix, msdos, mvs, netbsd, newsos, nindy, ns, osf, 4249 osfrose, ptx, riscix, riscos, rtu, sco, sim, solaris, sunos, sym, 4250 sysv, udi, ultrix, unicos, uniplus, unos, vms, vsta, vxworks, 4251 winnt, xenix. 4252 4253You can omit the system type; then `configure' guesses the operating 4254system from the CPU and company. 4255 4256 You can add a version number to the system type; this may or may not 4257make a difference. For example, you can write `bsd4.3' or `bsd4.4' to 4258distinguish versions of BSD. In practice, the version number is most 4259needed for `sysv3' and `sysv4', which are often treated differently. 4260 4261 `linux-gnu' is the canonical name for the GNU/Linux target; however 4262GCC will also accept `linux'. The version of the kernel in use is not 4263relevant on these systems. A suffix such as `libc1' or `aout' 4264distinguishes major versions of the C library; all of the suffixed 4265versions are obsolete. 4266 4267 If you specify an impossible combination such as `i860-dg-vms', then 4268you may get an error message from `configure', or it may ignore part of 4269the information and do the best it can with the rest. `configure' 4270always prints the canonical name for the alternative that it used. GCC 4271does not support all possible alternatives. 4272 4273 Often a particular model of machine has a name. Many machine names 4274are recognized as aliases for CPU/company combinations. Thus, the 4275machine name `sun3', mentioned above, is an alias for `m68k-sun'. 4276Sometimes we accept a company name as a machine name, when the name is 4277popularly used for a particular machine. Here is a table of the known 4278machine names: 4279 4280 3300, 3b1, 3bN, 7300, altos3068, altos, apollo68, att-7300, 4281 balance, convex-cN, crds, decstation-3100, decstation, delta, 4282 encore, fx2800, gmicro, hp7NN, hp8NN, hp9k2NN, hp9k3NN, hp9k7NN, 4283 hp9k8NN, iris4d, iris, isi68, m3230, magnum, merlin, miniframe, 4284 mmax, news-3600, news800, news, next, pbd, pc532, pmax, powerpc, 4285 powerpcle, ps2, risc-news, rtpc, sun2, sun386i, sun386, sun3, 4286 sun4, symmetry, tower-32, tower. 4287 4288Remember that a machine name specifies both the cpu type and the company 4289name. 4290 4291 4292File: gccinstall.info, Node: GNU Free Documentation License, Next: Concept Index, Prev: Old, Up: Top 4293 4294GNU Free Documentation License 4295****************************** 4296 4297 Version 1.3, 3 November 2008 4298 4299 Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc. 4300 `http://fsf.org/' 4301 4302 Everyone is permitted to copy and distribute verbatim copies 4303 of this license document, but changing it is not allowed. 4304 4305 0. PREAMBLE 4306 4307 The purpose of this License is to make a manual, textbook, or other 4308 functional and useful document "free" in the sense of freedom: to 4309 assure everyone the effective freedom to copy and redistribute it, 4310 with or without modifying it, either commercially or 4311 noncommercially. Secondarily, this License preserves for the 4312 author and publisher a way to get credit for their work, while not 4313 being considered responsible for modifications made by others. 4314 4315 This License is a kind of "copyleft", which means that derivative 4316 works of the document must themselves be free in the same sense. 4317 It complements the GNU General Public License, which is a copyleft 4318 license designed for free software. 4319 4320 We have designed this License in order to use it for manuals for 4321 free software, because free software needs free documentation: a 4322 free program should come with manuals providing the same freedoms 4323 that the software does. But this License is not limited to 4324 software manuals; it can be used for any textual work, regardless 4325 of subject matter or whether it is published as a printed book. 4326 We recommend this License principally for works whose purpose is 4327 instruction or reference. 4328 4329 1. APPLICABILITY AND DEFINITIONS 4330 4331 This License applies to any manual or other work, in any medium, 4332 that contains a notice placed by the copyright holder saying it 4333 can be distributed under the terms of this License. Such a notice 4334 grants a world-wide, royalty-free license, unlimited in duration, 4335 to use that work under the conditions stated herein. The 4336 "Document", below, refers to any such manual or work. Any member 4337 of the public is a licensee, and is addressed as "you". You 4338 accept the license if you copy, modify or distribute the work in a 4339 way requiring permission under copyright law. 4340 4341 A "Modified Version" of the Document means any work containing the 4342 Document or a portion of it, either copied verbatim, or with 4343 modifications and/or translated into another language. 4344 4345 A "Secondary Section" is a named appendix or a front-matter section 4346 of the Document that deals exclusively with the relationship of the 4347 publishers or authors of the Document to the Document's overall 4348 subject (or to related matters) and contains nothing that could 4349 fall directly within that overall subject. (Thus, if the Document 4350 is in part a textbook of mathematics, a Secondary Section may not 4351 explain any mathematics.) The relationship could be a matter of 4352 historical connection with the subject or with related matters, or 4353 of legal, commercial, philosophical, ethical or political position 4354 regarding them. 4355 4356 The "Invariant Sections" are certain Secondary Sections whose 4357 titles are designated, as being those of Invariant Sections, in 4358 the notice that says that the Document is released under this 4359 License. If a section does not fit the above definition of 4360 Secondary then it is not allowed to be designated as Invariant. 4361 The Document may contain zero Invariant Sections. If the Document 4362 does not identify any Invariant Sections then there are none. 4363 4364 The "Cover Texts" are certain short passages of text that are 4365 listed, as Front-Cover Texts or Back-Cover Texts, in the notice 4366 that says that the Document is released under this License. A 4367 Front-Cover Text may be at most 5 words, and a Back-Cover Text may 4368 be at most 25 words. 4369 4370 A "Transparent" copy of the Document means a machine-readable copy, 4371 represented in a format whose specification is available to the 4372 general public, that is suitable for revising the document 4373 straightforwardly with generic text editors or (for images 4374 composed of pixels) generic paint programs or (for drawings) some 4375 widely available drawing editor, and that is suitable for input to 4376 text formatters or for automatic translation to a variety of 4377 formats suitable for input to text formatters. A copy made in an 4378 otherwise Transparent file format whose markup, or absence of 4379 markup, has been arranged to thwart or discourage subsequent 4380 modification by readers is not Transparent. An image format is 4381 not Transparent if used for any substantial amount of text. A 4382 copy that is not "Transparent" is called "Opaque". 4383 4384 Examples of suitable formats for Transparent copies include plain 4385 ASCII without markup, Texinfo input format, LaTeX input format, 4386 SGML or XML using a publicly available DTD, and 4387 standard-conforming simple HTML, PostScript or PDF designed for 4388 human modification. Examples of transparent image formats include 4389 PNG, XCF and JPG. Opaque formats include proprietary formats that 4390 can be read and edited only by proprietary word processors, SGML or 4391 XML for which the DTD and/or processing tools are not generally 4392 available, and the machine-generated HTML, PostScript or PDF 4393 produced by some word processors for output purposes only. 4394 4395 The "Title Page" means, for a printed book, the title page itself, 4396 plus such following pages as are needed to hold, legibly, the 4397 material this License requires to appear in the title page. For 4398 works in formats which do not have any title page as such, "Title 4399 Page" means the text near the most prominent appearance of the 4400 work's title, preceding the beginning of the body of the text. 4401 4402 The "publisher" means any person or entity that distributes copies 4403 of the Document to the public. 4404 4405 A section "Entitled XYZ" means a named subunit of the Document 4406 whose title either is precisely XYZ or contains XYZ in parentheses 4407 following text that translates XYZ in another language. (Here XYZ 4408 stands for a specific section name mentioned below, such as 4409 "Acknowledgements", "Dedications", "Endorsements", or "History".) 4410 To "Preserve the Title" of such a section when you modify the 4411 Document means that it remains a section "Entitled XYZ" according 4412 to this definition. 4413 4414 The Document may include Warranty Disclaimers next to the notice 4415 which states that this License applies to the Document. These 4416 Warranty Disclaimers are considered to be included by reference in 4417 this License, but only as regards disclaiming warranties: any other 4418 implication that these Warranty Disclaimers may have is void and 4419 has no effect on the meaning of this License. 4420 4421 2. VERBATIM COPYING 4422 4423 You may copy and distribute the Document in any medium, either 4424 commercially or noncommercially, provided that this License, the 4425 copyright notices, and the license notice saying this License 4426 applies to the Document are reproduced in all copies, and that you 4427 add no other conditions whatsoever to those of this License. You 4428 may not use technical measures to obstruct or control the reading 4429 or further copying of the copies you make or distribute. However, 4430 you may accept compensation in exchange for copies. If you 4431 distribute a large enough number of copies you must also follow 4432 the conditions in section 3. 4433 4434 You may also lend copies, under the same conditions stated above, 4435 and you may publicly display copies. 4436 4437 3. COPYING IN QUANTITY 4438 4439 If you publish printed copies (or copies in media that commonly 4440 have printed covers) of the Document, numbering more than 100, and 4441 the Document's license notice requires Cover Texts, you must 4442 enclose the copies in covers that carry, clearly and legibly, all 4443 these Cover Texts: Front-Cover Texts on the front cover, and 4444 Back-Cover Texts on the back cover. Both covers must also clearly 4445 and legibly identify you as the publisher of these copies. The 4446 front cover must present the full title with all words of the 4447 title equally prominent and visible. You may add other material 4448 on the covers in addition. Copying with changes limited to the 4449 covers, as long as they preserve the title of the Document and 4450 satisfy these conditions, can be treated as verbatim copying in 4451 other respects. 4452 4453 If the required texts for either cover are too voluminous to fit 4454 legibly, you should put the first ones listed (as many as fit 4455 reasonably) on the actual cover, and continue the rest onto 4456 adjacent pages. 4457 4458 If you publish or distribute Opaque copies of the Document 4459 numbering more than 100, you must either include a 4460 machine-readable Transparent copy along with each Opaque copy, or 4461 state in or with each Opaque copy a computer-network location from 4462 which the general network-using public has access to download 4463 using public-standard network protocols a complete Transparent 4464 copy of the Document, free of added material. If you use the 4465 latter option, you must take reasonably prudent steps, when you 4466 begin distribution of Opaque copies in quantity, to ensure that 4467 this Transparent copy will remain thus accessible at the stated 4468 location until at least one year after the last time you 4469 distribute an Opaque copy (directly or through your agents or 4470 retailers) of that edition to the public. 4471 4472 It is requested, but not required, that you contact the authors of 4473 the Document well before redistributing any large number of 4474 copies, to give them a chance to provide you with an updated 4475 version of the Document. 4476 4477 4. MODIFICATIONS 4478 4479 You may copy and distribute a Modified Version of the Document 4480 under the conditions of sections 2 and 3 above, provided that you 4481 release the Modified Version under precisely this License, with 4482 the Modified Version filling the role of the Document, thus 4483 licensing distribution and modification of the Modified Version to 4484 whoever possesses a copy of it. In addition, you must do these 4485 things in the Modified Version: 4486 4487 A. Use in the Title Page (and on the covers, if any) a title 4488 distinct from that of the Document, and from those of 4489 previous versions (which should, if there were any, be listed 4490 in the History section of the Document). You may use the 4491 same title as a previous version if the original publisher of 4492 that version gives permission. 4493 4494 B. List on the Title Page, as authors, one or more persons or 4495 entities responsible for authorship of the modifications in 4496 the Modified Version, together with at least five of the 4497 principal authors of the Document (all of its principal 4498 authors, if it has fewer than five), unless they release you 4499 from this requirement. 4500 4501 C. State on the Title page the name of the publisher of the 4502 Modified Version, as the publisher. 4503 4504 D. Preserve all the copyright notices of the Document. 4505 4506 E. Add an appropriate copyright notice for your modifications 4507 adjacent to the other copyright notices. 4508 4509 F. Include, immediately after the copyright notices, a license 4510 notice giving the public permission to use the Modified 4511 Version under the terms of this License, in the form shown in 4512 the Addendum below. 4513 4514 G. Preserve in that license notice the full lists of Invariant 4515 Sections and required Cover Texts given in the Document's 4516 license notice. 4517 4518 H. Include an unaltered copy of this License. 4519 4520 I. Preserve the section Entitled "History", Preserve its Title, 4521 and add to it an item stating at least the title, year, new 4522 authors, and publisher of the Modified Version as given on 4523 the Title Page. If there is no section Entitled "History" in 4524 the Document, create one stating the title, year, authors, 4525 and publisher of the Document as given on its Title Page, 4526 then add an item describing the Modified Version as stated in 4527 the previous sentence. 4528 4529 J. Preserve the network location, if any, given in the Document 4530 for public access to a Transparent copy of the Document, and 4531 likewise the network locations given in the Document for 4532 previous versions it was based on. These may be placed in 4533 the "History" section. You may omit a network location for a 4534 work that was published at least four years before the 4535 Document itself, or if the original publisher of the version 4536 it refers to gives permission. 4537 4538 K. For any section Entitled "Acknowledgements" or "Dedications", 4539 Preserve the Title of the section, and preserve in the 4540 section all the substance and tone of each of the contributor 4541 acknowledgements and/or dedications given therein. 4542 4543 L. Preserve all the Invariant Sections of the Document, 4544 unaltered in their text and in their titles. Section numbers 4545 or the equivalent are not considered part of the section 4546 titles. 4547 4548 M. Delete any section Entitled "Endorsements". Such a section 4549 may not be included in the Modified Version. 4550 4551 N. Do not retitle any existing section to be Entitled 4552 "Endorsements" or to conflict in title with any Invariant 4553 Section. 4554 4555 O. Preserve any Warranty Disclaimers. 4556 4557 If the Modified Version includes new front-matter sections or 4558 appendices that qualify as Secondary Sections and contain no 4559 material copied from the Document, you may at your option 4560 designate some or all of these sections as invariant. To do this, 4561 add their titles to the list of Invariant Sections in the Modified 4562 Version's license notice. These titles must be distinct from any 4563 other section titles. 4564 4565 You may add a section Entitled "Endorsements", provided it contains 4566 nothing but endorsements of your Modified Version by various 4567 parties--for example, statements of peer review or that the text 4568 has been approved by an organization as the authoritative 4569 definition of a standard. 4570 4571 You may add a passage of up to five words as a Front-Cover Text, 4572 and a passage of up to 25 words as a Back-Cover Text, to the end 4573 of the list of Cover Texts in the Modified Version. Only one 4574 passage of Front-Cover Text and one of Back-Cover Text may be 4575 added by (or through arrangements made by) any one entity. If the 4576 Document already includes a cover text for the same cover, 4577 previously added by you or by arrangement made by the same entity 4578 you are acting on behalf of, you may not add another; but you may 4579 replace the old one, on explicit permission from the previous 4580 publisher that added the old one. 4581 4582 The author(s) and publisher(s) of the Document do not by this 4583 License give permission to use their names for publicity for or to 4584 assert or imply endorsement of any Modified Version. 4585 4586 5. COMBINING DOCUMENTS 4587 4588 You may combine the Document with other documents released under 4589 this License, under the terms defined in section 4 above for 4590 modified versions, provided that you include in the combination 4591 all of the Invariant Sections of all of the original documents, 4592 unmodified, and list them all as Invariant Sections of your 4593 combined work in its license notice, and that you preserve all 4594 their Warranty Disclaimers. 4595 4596 The combined work need only contain one copy of this License, and 4597 multiple identical Invariant Sections may be replaced with a single 4598 copy. If there are multiple Invariant Sections with the same name 4599 but different contents, make the title of each such section unique 4600 by adding at the end of it, in parentheses, the name of the 4601 original author or publisher of that section if known, or else a 4602 unique number. Make the same adjustment to the section titles in 4603 the list of Invariant Sections in the license notice of the 4604 combined work. 4605 4606 In the combination, you must combine any sections Entitled 4607 "History" in the various original documents, forming one section 4608 Entitled "History"; likewise combine any sections Entitled 4609 "Acknowledgements", and any sections Entitled "Dedications". You 4610 must delete all sections Entitled "Endorsements." 4611 4612 6. COLLECTIONS OF DOCUMENTS 4613 4614 You may make a collection consisting of the Document and other 4615 documents released under this License, and replace the individual 4616 copies of this License in the various documents with a single copy 4617 that is included in the collection, provided that you follow the 4618 rules of this License for verbatim copying of each of the 4619 documents in all other respects. 4620 4621 You may extract a single document from such a collection, and 4622 distribute it individually under this License, provided you insert 4623 a copy of this License into the extracted document, and follow 4624 this License in all other respects regarding verbatim copying of 4625 that document. 4626 4627 7. AGGREGATION WITH INDEPENDENT WORKS 4628 4629 A compilation of the Document or its derivatives with other 4630 separate and independent documents or works, in or on a volume of 4631 a storage or distribution medium, is called an "aggregate" if the 4632 copyright resulting from the compilation is not used to limit the 4633 legal rights of the compilation's users beyond what the individual 4634 works permit. When the Document is included in an aggregate, this 4635 License does not apply to the other works in the aggregate which 4636 are not themselves derivative works of the Document. 4637 4638 If the Cover Text requirement of section 3 is applicable to these 4639 copies of the Document, then if the Document is less than one half 4640 of the entire aggregate, the Document's Cover Texts may be placed 4641 on covers that bracket the Document within the aggregate, or the 4642 electronic equivalent of covers if the Document is in electronic 4643 form. Otherwise they must appear on printed covers that bracket 4644 the whole aggregate. 4645 4646 8. TRANSLATION 4647 4648 Translation is considered a kind of modification, so you may 4649 distribute translations of the Document under the terms of section 4650 4. Replacing Invariant Sections with translations requires special 4651 permission from their copyright holders, but you may include 4652 translations of some or all Invariant Sections in addition to the 4653 original versions of these Invariant Sections. You may include a 4654 translation of this License, and all the license notices in the 4655 Document, and any Warranty Disclaimers, provided that you also 4656 include the original English version of this License and the 4657 original versions of those notices and disclaimers. In case of a 4658 disagreement between the translation and the original version of 4659 this License or a notice or disclaimer, the original version will 4660 prevail. 4661 4662 If a section in the Document is Entitled "Acknowledgements", 4663 "Dedications", or "History", the requirement (section 4) to 4664 Preserve its Title (section 1) will typically require changing the 4665 actual title. 4666 4667 9. TERMINATION 4668 4669 You may not copy, modify, sublicense, or distribute the Document 4670 except as expressly provided under this License. Any attempt 4671 otherwise to copy, modify, sublicense, or distribute it is void, 4672 and will automatically terminate your rights under this License. 4673 4674 However, if you cease all violation of this License, then your 4675 license from a particular copyright holder is reinstated (a) 4676 provisionally, unless and until the copyright holder explicitly 4677 and finally terminates your license, and (b) permanently, if the 4678 copyright holder fails to notify you of the violation by some 4679 reasonable means prior to 60 days after the cessation. 4680 4681 Moreover, your license from a particular copyright holder is 4682 reinstated permanently if the copyright holder notifies you of the 4683 violation by some reasonable means, this is the first time you have 4684 received notice of violation of this License (for any work) from 4685 that copyright holder, and you cure the violation prior to 30 days 4686 after your receipt of the notice. 4687 4688 Termination of your rights under this section does not terminate 4689 the licenses of parties who have received copies or rights from 4690 you under this License. If your rights have been terminated and 4691 not permanently reinstated, receipt of a copy of some or all of 4692 the same material does not give you any rights to use it. 4693 4694 10. FUTURE REVISIONS OF THIS LICENSE 4695 4696 The Free Software Foundation may publish new, revised versions of 4697 the GNU Free Documentation License from time to time. Such new 4698 versions will be similar in spirit to the present version, but may 4699 differ in detail to address new problems or concerns. See 4700 `http://www.gnu.org/copyleft/'. 4701 4702 Each version of the License is given a distinguishing version 4703 number. If the Document specifies that a particular numbered 4704 version of this License "or any later version" applies to it, you 4705 have the option of following the terms and conditions either of 4706 that specified version or of any later version that has been 4707 published (not as a draft) by the Free Software Foundation. If 4708 the Document does not specify a version number of this License, 4709 you may choose any version ever published (not as a draft) by the 4710 Free Software Foundation. If the Document specifies that a proxy 4711 can decide which future versions of this License can be used, that 4712 proxy's public statement of acceptance of a version permanently 4713 authorizes you to choose that version for the Document. 4714 4715 11. RELICENSING 4716 4717 "Massive Multiauthor Collaboration Site" (or "MMC Site") means any 4718 World Wide Web server that publishes copyrightable works and also 4719 provides prominent facilities for anybody to edit those works. A 4720 public wiki that anybody can edit is an example of such a server. 4721 A "Massive Multiauthor Collaboration" (or "MMC") contained in the 4722 site means any set of copyrightable works thus published on the MMC 4723 site. 4724 4725 "CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0 4726 license published by Creative Commons Corporation, a not-for-profit 4727 corporation with a principal place of business in San Francisco, 4728 California, as well as future copyleft versions of that license 4729 published by that same organization. 4730 4731 "Incorporate" means to publish or republish a Document, in whole or 4732 in part, as part of another Document. 4733 4734 An MMC is "eligible for relicensing" if it is licensed under this 4735 License, and if all works that were first published under this 4736 License somewhere other than this MMC, and subsequently 4737 incorporated in whole or in part into the MMC, (1) had no cover 4738 texts or invariant sections, and (2) were thus incorporated prior 4739 to November 1, 2008. 4740 4741 The operator of an MMC Site may republish an MMC contained in the 4742 site under CC-BY-SA on the same site at any time before August 1, 4743 2009, provided the MMC is eligible for relicensing. 4744 4745 4746ADDENDUM: How to use this License for your documents 4747==================================================== 4748 4749To use this License in a document you have written, include a copy of 4750the License in the document and put the following copyright and license 4751notices just after the title page: 4752 4753 Copyright (C) YEAR YOUR NAME. 4754 Permission is granted to copy, distribute and/or modify this document 4755 under the terms of the GNU Free Documentation License, Version 1.3 4756 or any later version published by the Free Software Foundation; 4757 with no Invariant Sections, no Front-Cover Texts, and no Back-Cover 4758 Texts. A copy of the license is included in the section entitled ``GNU 4759 Free Documentation License''. 4760 4761 If you have Invariant Sections, Front-Cover Texts and Back-Cover 4762Texts, replace the "with...Texts." line with this: 4763 4764 with the Invariant Sections being LIST THEIR TITLES, with 4765 the Front-Cover Texts being LIST, and with the Back-Cover Texts 4766 being LIST. 4767 4768 If you have Invariant Sections without Cover Texts, or some other 4769combination of the three, merge those two alternatives to suit the 4770situation. 4771 4772 If your document contains nontrivial examples of program code, we 4773recommend releasing these examples in parallel under your choice of 4774free software license, such as the GNU General Public License, to 4775permit their use in free software. 4776 4777 4778File: gccinstall.info, Node: Concept Index, Prev: GNU Free Documentation License, Up: Top 4779 4780Concept Index 4781************* 4782 4783[index] 4784* Menu: 4785 4786* Binaries: Binaries. (line 6) 4787* build_configargs: Configuration. (line 1511) 4788* Configuration: Configuration. (line 6) 4789* configurations supported by GCC: Configurations. (line 6) 4790* Downloading GCC: Downloading the source. 4791 (line 6) 4792* Downloading the Source: Downloading the source. 4793 (line 6) 4794* FDL, GNU Free Documentation License: GNU Free Documentation License. 4795 (line 6) 4796* Host specific installation: Specific. (line 6) 4797* host_configargs: Configuration. (line 1515) 4798* Installing GCC: Binaries: Binaries. (line 6) 4799* Installing GCC: Building: Building. (line 6) 4800* Installing GCC: Configuration: Configuration. (line 6) 4801* Installing GCC: Testing: Testing. (line 6) 4802* Prerequisites: Prerequisites. (line 6) 4803* Specific: Specific. (line 6) 4804* Specific installation notes: Specific. (line 6) 4805* Target specific installation: Specific. (line 6) 4806* Target specific installation notes: Specific. (line 6) 4807* target_configargs: Configuration. (line 1519) 4808* Testing: Testing. (line 6) 4809* Testsuite: Testing. (line 6) 4810 4811 4812 4813Tag Table: 4814Node: Top1761 4815Node: Installing GCC2319 4816Node: Prerequisites3956 4817Node: Downloading the source15075 4818Node: Configuration16753 4819Ref: with-gnu-as32204 4820Ref: with-as33102 4821Ref: with-gnu-ld34515 4822Ref: WithAixSoname52667 4823Ref: AixLdCommand53328 4824Node: Building93492 4825Node: Testing109401 4826Node: Final install117273 4827Node: Binaries122587 4828Node: Specific123645 4829Ref: aarch64-x-x124155 4830Ref: alpha-x-x125587 4831Ref: alpha-dec-osf51126076 4832Ref: amd64-x-solaris210126601 4833Ref: arc-x-elf32126704 4834Ref: arc-linux-uclibc126880 4835Ref: arm-x-eabi127021 4836Ref: avr127438 4837Ref: bfin128078 4838Ref: cr16128320 4839Ref: cris128735 4840Ref: dos129551 4841Ref: epiphany-x-elf129874 4842Ref: x-x-freebsd129979 4843Ref: ft32-x-elf131816 4844Ref: h8300-hms131914 4845Ref: hppa-hp-hpux132266 4846Ref: hppa-hp-hpux10134637 4847Ref: hppa-hp-hpux11135050 4848Ref: x-x-linux-gnu140709 4849Ref: ix86-x-linux140902 4850Ref: ix86-x-solaris210141215 4851Ref: ia64-x-linux142674 4852Ref: ia64-x-hpux143444 4853Ref: x-ibm-aix143999 4854Ref: TransferAixShobj147661 4855Ref: iq2000-x-elf151472 4856Ref: lm32-x-elf151612 4857Ref: lm32-x-uclinux151716 4858Ref: m32c-x-elf151844 4859Ref: m32r-x-elf151946 4860Ref: m68k-x-x152048 4861Ref: m68k-x-uclinux153086 4862Ref: mep-x-elf153332 4863Ref: microblaze-x-elf153442 4864Ref: mips-x-x153561 4865Ref: mips-sgi-irix5155957 4866Ref: mips-sgi-irix6156037 4867Ref: moxie-x-elf156224 4868Ref: msp430-x-elf156271 4869Ref: nds32le-x-elf156374 4870Ref: nds32be-x-elf156446 4871Ref: nvptx-x-none156515 4872Ref: powerpc-x-x157042 4873Ref: powerpc-x-darwin157247 4874Ref: powerpc-x-elf157741 4875Ref: powerpc-x-linux-gnu157826 4876Ref: powerpc-x-netbsd157921 4877Ref: powerpc-x-eabisim158009 4878Ref: powerpc-x-eabi158135 4879Ref: powerpcle-x-elf158211 4880Ref: powerpcle-x-eabisim158303 4881Ref: powerpcle-x-eabi158436 4882Ref: rl78-x-elf158519 4883Ref: rx-x-elf158625 4884Ref: s390-x-linux158824 4885Ref: s390x-x-linux158896 4886Ref: s390x-ibm-tpf158983 4887Ref: x-x-solaris2159114 4888Ref: sparc-x-x163131 4889Ref: sparc-sun-solaris2163633 4890Ref: sparc-sun-solaris210164773 4891Ref: sparc-x-linux165149 4892Ref: sparc64-x-solaris2165374 4893Ref: sparcv9-x-solaris2165707 4894Ref: c6x-x-x165794 4895Ref: tilegx-*-linux165885 4896Ref: tilegxbe-*-linux166027 4897Ref: tilepro-*-linux166170 4898Ref: visium-x-elf166291 4899Ref: x-x-vxworks166399 4900Ref: x86-64-x-x167921 4901Ref: x86-64-x-solaris210168249 4902Ref: xtensa-x-elf168913 4903Ref: xtensa-x-linux169584 4904Ref: windows169925 4905Ref: x-x-cygwin171862 4906Ref: x-x-interix172415 4907Ref: x-x-mingw32172724 4908Ref: older172950 4909Ref: elf175067 4910Node: Old175325 4911Node: Configurations178462 4912Node: GNU Free Documentation License182003 4913Node: Concept Index207150 4914 4915End Tag Table 4916