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