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