Mercurial > hg > CbC > CbC_gcc
comparison gcc/doc/install.texi @ 55:77e2b8dfacca gcc-4.4.5
update it from 4.4.3 to 4.5.0
author | ryoma <e075725@ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 12 Feb 2010 23:39:51 +0900 |
parents | 855418dad1a3 |
children | b7f97abdc517 |
comparison
equal
deleted
inserted
replaced
52:c156f1bd5cd9 | 55:77e2b8dfacca |
---|---|
300 | 300 |
301 Necessary (only on some platforms) to untar the source code. Many | 301 Necessary (only on some platforms) to untar the source code. Many |
302 systems' @command{tar} programs will also work, only try GNU | 302 systems' @command{tar} programs will also work, only try GNU |
303 @command{tar} if you have problems. | 303 @command{tar} if you have problems. |
304 | 304 |
305 @item GNU Multiple Precision Library (GMP) version 4.1 (or later) | 305 @item GNU Multiple Precision Library (GMP) version 4.2 (or later) |
306 | 306 |
307 Necessary to build GCC@. If you do not have it installed in your | 307 Necessary to build GCC@. If you do not have it installed in your |
308 library search path, you will have to configure with the | 308 library search path, you will have to configure with the |
309 @option{--with-gmp} configure option. See also @option{--with-gmp-lib} | 309 @option{--with-gmp} configure option. See also @option{--with-gmp-lib} |
310 and @option{--with-gmp-include}. Alternatively, if a GMP source | 310 and @option{--with-gmp-include}. Alternatively, if a GMP source |
312 @file{gmp}, it will be built together with GCC@. | 312 @file{gmp}, it will be built together with GCC@. |
313 | 313 |
314 @item MPFR Library version 2.3.2 (or later) | 314 @item MPFR Library version 2.3.2 (or later) |
315 | 315 |
316 Necessary to build GCC@. It can be downloaded from | 316 Necessary to build GCC@. It can be downloaded from |
317 @uref{http://www.mpfr.org/}. The version of MPFR that is bundled with | 317 @uref{http://www.mpfr.org/}. The @option{--with-mpfr} configure |
318 GMP 4.1.x contains numerous bugs. Although GCC may appear to function | 318 option should be used if your MPFR Library is not installed in your |
319 with the buggy versions of MPFR, there are a few bugs that will not be | 319 default library search path. See also @option{--with-mpfr-lib} and |
320 fixed when using this version. It is strongly recommended to upgrade | 320 @option{--with-mpfr-include}. Alternatively, if a MPFR source |
321 to the recommended version of MPFR. | 321 distribution is found in a subdirectory of your GCC sources named |
322 | 322 @file{mpfr}, it will be built together with GCC@. |
323 The @option{--with-mpfr} configure option should be used if your MPFR | 323 |
324 Library is not installed in your default library search path. See also | 324 @item MPC Library version 0.8.0 (or later) |
325 @option{--with-mpfr-lib} and @option{--with-mpfr-include}. | 325 |
326 Alternatively, if a MPFR source distribution is found in a subdirectory | 326 Necessary to build GCC@. It can be downloaded from |
327 of your GCC sources named @file{mpfr}, it will be built together with | 327 @uref{http://www.multiprecision.org/}. The @option{--with-mpc} |
328 GCC@. | 328 configure option should be used if your MPC Library is not installed |
329 in your default library search path. See also @option{--with-mpc-lib} | |
330 and @option{--with-mpc-include}. Alternatively, if an MPC source | |
331 distribution is found in a subdirectory of your GCC sources named | |
332 @file{mpc}, it will be built together with GCC@. | |
329 | 333 |
330 @item Parma Polyhedra Library (PPL) version 0.10 | 334 @item Parma Polyhedra Library (PPL) version 0.10 |
331 | 335 |
332 Necessary to build GCC with the Graphite loop optimizations. | 336 Necessary to build GCC with the Graphite loop optimizations. |
333 It can be downloaded from @uref{http://www.cs.unipr.it/ppl/Download/}. | 337 It can be downloaded from @uref{http://www.cs.unipr.it/ppl/Download/}. |
348 | 352 |
349 @item @command{jar}, or InfoZIP (@command{zip} and @command{unzip}) | 353 @item @command{jar}, or InfoZIP (@command{zip} and @command{unzip}) |
350 | 354 |
351 Necessary to build libgcj, the GCJ runtime. | 355 Necessary to build libgcj, the GCJ runtime. |
352 | 356 |
357 @item libelf version 0.8.12 (or later) | |
358 | |
359 Necessary to build link-time optimization (LTO) support. It can be | |
360 downloaded from @uref{http://www.mr511.de/software/libelf-0.8.12.tar.gz}, | |
361 though it is commonly available in several systems. | |
362 | |
363 The @option{--with-libelf} configure option should be used if libelf is | |
364 not installed in your default library search patch. | |
365 | |
353 @end table | 366 @end table |
354 | |
355 | 367 |
356 @heading Tools/packages necessary for modifying GCC | 368 @heading Tools/packages necessary for modifying GCC |
357 @table @asis | 369 @table @asis |
358 @item autoconf version 2.59 | 370 @item autoconf version 2.64 |
359 @itemx GNU m4 version 1.4 (or later) | 371 @itemx GNU m4 version 1.4.6 (or later) |
360 | 372 |
361 Necessary when modifying @file{configure.ac}, @file{aclocal.m4}, etc.@: | 373 Necessary when modifying @file{configure.ac}, @file{aclocal.m4}, etc.@: |
362 to regenerate @file{configure} and @file{config.in} files. | 374 to regenerate @file{configure} and @file{config.in} files. |
363 | 375 |
364 @item automake version 1.9.6 | 376 @item automake version 1.11 |
365 | 377 |
366 Necessary when modifying a @file{Makefile.am} file to regenerate its | 378 Necessary when modifying a @file{Makefile.am} file to regenerate its |
367 associated @file{Makefile.in}. | 379 associated @file{Makefile.in}. |
368 | 380 |
369 Much of GCC does not use automake, so directly edit the @file{Makefile.in} | 381 Much of GCC does not use automake, so directly edit the @file{Makefile.in} |
370 file. Specifically this applies to the @file{gcc}, @file{intl}, | 382 file. Specifically this applies to the @file{gcc}, @file{intl}, |
371 @file{libcpp}, @file{libiberty}, @file{libobjc} directories as well | 383 @file{libcpp}, @file{libiberty}, @file{libobjc} directories as well |
372 as any of their subdirectories. | 384 as any of their subdirectories. |
373 | 385 |
374 For directories that use automake, GCC requires the latest release in | 386 For directories that use automake, GCC requires the latest release in |
375 the 1.9.x series, which is currently 1.9.6. When regenerating a directory | 387 the 1.11 series, which is currently 1.11. When regenerating a directory |
376 to a newer version, please update all the directories using an older 1.9.x | 388 to a newer version, please update all the directories using an older 1.11 |
377 to the latest released version. | 389 to the latest released version. |
378 | 390 |
379 @item gettext version 0.14.5 (or later) | 391 @item gettext version 0.14.5 (or later) |
380 | 392 |
381 Needed to regenerate @file{gcc.pot}. | 393 Needed to regenerate @file{gcc.pot}. |
468 | 480 |
469 @item antlr.jar version 2.7.1 (or later) | 481 @item antlr.jar version 2.7.1 (or later) |
470 @itemx antlr binary | 482 @itemx antlr binary |
471 | 483 |
472 If you wish to build the @command{gjdoc} binary in libjava, you will | 484 If you wish to build the @command{gjdoc} binary in libjava, you will |
473 need to have a @file{antlr.jar} library available. The library is | 485 need to have an @file{antlr.jar} library available. The library is |
474 searched in system locations but can be configured with | 486 searched in system locations but can be configured with |
475 @option{--with-antlr-jar=} instead. When configuring with | 487 @option{--with-antlr-jar=} instead. When configuring with |
476 @option{--enable-java-maintainer-mode}, you will need to have one of | 488 @option{--enable-java-maintainer-mode}, you will need to have one of |
477 the executables named @command{cantlr}, @command{runantlr} or | 489 the executables named @command{cantlr}, @command{runantlr} or |
478 @command{antlr} in your path. | 490 @command{antlr} in your path. |
529 a separate one. In the latter case, add symbolic links to any | 541 a separate one. In the latter case, add symbolic links to any |
530 components of the binutils you intend to build alongside the compiler | 542 components of the binutils you intend to build alongside the compiler |
531 (@file{bfd}, @file{binutils}, @file{gas}, @file{gprof}, @file{ld}, | 543 (@file{bfd}, @file{binutils}, @file{gas}, @file{gprof}, @file{ld}, |
532 @file{opcodes}, @dots{}) to the directory containing the GCC sources. | 544 @file{opcodes}, @dots{}) to the directory containing the GCC sources. |
533 | 545 |
534 Likewise, the GMP and MPFR libraries can be automatically built together | 546 Likewise the GMP, MPFR and MPC libraries can be automatically built |
535 with GCC. Unpack the GMP and/or MPFR source distributions in the | 547 together with GCC. Unpack the GMP, MPFR and/or MPC source |
536 directory containing the GCC sources and rename their directories to | 548 distributions in the directory containing the GCC sources and rename |
537 @file{gmp} and @file{mpfr}, respectively (or use symbolic links with the | 549 their directories to @file{gmp}, @file{mpfr} and @file{mpc}, |
538 same name). | 550 respectively (or use symbolic links with the same name). |
539 | 551 |
540 @html | 552 @html |
541 <hr /> | 553 <hr /> |
542 <p> | 554 <p> |
543 @end html | 555 @end html |
564 | 576 |
565 We use @var{srcdir} to refer to the toplevel source directory for | 577 We use @var{srcdir} to refer to the toplevel source directory for |
566 GCC; we use @var{objdir} to refer to the toplevel build/object directory. | 578 GCC; we use @var{objdir} to refer to the toplevel build/object directory. |
567 | 579 |
568 If you obtained the sources via SVN, @var{srcdir} must refer to the top | 580 If you obtained the sources via SVN, @var{srcdir} must refer to the top |
569 @file{gcc} directory, the one where the @file{MAINTAINERS} can be found, | 581 @file{gcc} directory, the one where the @file{MAINTAINERS} file can be |
570 and not its @file{gcc} subdirectory, otherwise the build will fail. | 582 found, and not its @file{gcc} subdirectory, otherwise the build will fail. |
571 | 583 |
572 If either @var{srcdir} or @var{objdir} is located on an automounted NFS | 584 If either @var{srcdir} or @var{objdir} is located on an automounted NFS |
573 file system, the shell's built-in @command{pwd} command will return | 585 file system, the shell's built-in @command{pwd} command will return |
574 temporary pathnames. Using these can lead to various sorts of build | 586 temporary pathnames. Using these can lead to various sorts of build |
575 problems. To avoid this issue, set the @env{PWDCMD} environment | 587 problems. To avoid this issue, set the @env{PWDCMD} environment |
576 variable to an automounter-aware @command{pwd} command, e.g., | 588 variable to an automounter-aware @command{pwd} command, e.g., |
577 @command{pawd} or @samp{amq -w}, during the configuration and build | 589 @command{pawd} or @samp{amq -w}, during the configuration and build |
578 phases. | 590 phases. |
579 | 591 |
580 First, we @strong{highly} recommend that GCC be built into a | 592 First, we @strong{highly} recommend that GCC be built into a |
581 separate directory than the sources which does @strong{not} reside | 593 separate directory from the sources which does @strong{not} reside |
582 within the source tree. This is how we generally build GCC; building | 594 within the source tree. This is how we generally build GCC; building |
583 where @var{srcdir} == @var{objdir} should still work, but doesn't | 595 where @var{srcdir} == @var{objdir} should still work, but doesn't |
584 get extensive testing; building where @var{objdir} is a subdirectory | 596 get extensive testing; building where @var{objdir} is a subdirectory |
585 of @var{srcdir} is unsupported. | 597 of @var{srcdir} is unsupported. |
586 | 598 |
645 | 657 |
646 @heading Target specification | 658 @heading Target specification |
647 @itemize @bullet | 659 @itemize @bullet |
648 @item | 660 @item |
649 GCC has code to correctly determine the correct value for @var{target} | 661 GCC has code to correctly determine the correct value for @var{target} |
650 for nearly all native systems. Therefore, we highly recommend you not | 662 for nearly all native systems. Therefore, we highly recommend you do |
651 provide a configure target when configuring a native compiler. | 663 not provide a configure target when configuring a native compiler. |
652 | 664 |
653 @item | 665 @item |
654 @var{target} must be specified as @option{--target=@var{target}} | 666 @var{target} must be specified as @option{--target=@var{target}} |
655 when configuring a cross compiler; examples of valid targets would be | 667 when configuring a cross compiler; examples of valid targets would be |
656 m68k-coff, sh-elf, etc. | 668 m68k-elf, sh-elf, etc. |
657 | 669 |
658 @item | 670 @item |
659 Specifying just @var{target} instead of @option{--target=@var{target}} | 671 Specifying just @var{target} instead of @option{--target=@var{target}} |
660 implies that the host defaults to @var{target}. | 672 implies that the host defaults to @var{target}. |
661 @end itemize | 673 @end itemize |
707 | 719 |
708 @item --with-slibdir=@var{dirname} | 720 @item --with-slibdir=@var{dirname} |
709 Specify the installation directory for the shared libgcc library. The | 721 Specify the installation directory for the shared libgcc library. The |
710 default is @file{@var{libdir}}. | 722 default is @file{@var{libdir}}. |
711 | 723 |
724 @item --datarootdir=@var{dirname} | |
725 Specify the root of the directory tree for read-only architecture-independent | |
726 data files referenced by GCC@. The default is @file{@var{prefix}/share}. | |
727 | |
712 @item --infodir=@var{dirname} | 728 @item --infodir=@var{dirname} |
713 Specify the installation directory for documentation in info format. | 729 Specify the installation directory for documentation in info format. |
714 The default is @file{@var{prefix}/info}. | 730 The default is @file{@var{datarootdir}/info}. |
715 | 731 |
716 @item --datadir=@var{dirname} | 732 @item --datadir=@var{dirname} |
717 Specify the installation directory for some architecture-independent | 733 Specify the installation directory for some architecture-independent |
718 data files referenced by GCC@. The default is @file{@var{prefix}/share}. | 734 data files referenced by GCC@. The default is @file{@var{datarootdir}}. |
735 | |
736 @item --docdir=@var{dirname} | |
737 Specify the installation directory for documentation files (other | |
738 than Info) for GCC@. The default is @file{@var{datarootdir}/doc}. | |
739 | |
740 @item --htmldir=@var{dirname} | |
741 Specify the installation directory for HTML documentation files. | |
742 The default is @file{@var{docdir}}. | |
743 | |
744 @item --pdfdir=@var{dirname} | |
745 Specify the installation directory for PDF documentation files. | |
746 The default is @file{@var{docdir}}. | |
719 | 747 |
720 @item --mandir=@var{dirname} | 748 @item --mandir=@var{dirname} |
721 Specify the installation directory for manual pages. The default is | 749 Specify the installation directory for manual pages. The default is |
722 @file{@var{prefix}/man}. (Note that the manual pages are only extracts from | 750 @file{@var{datarootdir}/man}. (Note that the manual pages are only extracts |
723 the full GCC manuals, which are provided in Texinfo format. The manpages | 751 from the full GCC manuals, which are provided in Texinfo format. The manpages |
724 are derived by an automatic conversion process from parts of the full | 752 are derived by an automatic conversion process from parts of the full |
725 manual.) | 753 manual.) |
726 | 754 |
727 @item --with-gxx-include-dir=@var{dirname} | 755 @item --with-gxx-include-dir=@var{dirname} |
728 Specify | 756 Specify |
729 the installation directory for G++ header files. The default is | 757 the installation directory for G++ header files. The default depends |
730 @file{@var{prefix}/include/c++/@var{version}}. | 758 on other configuration options, and differs between cross and native |
759 configurations. | |
731 | 760 |
732 @end table | 761 @end table |
733 | 762 |
734 @item --program-prefix=@var{prefix} | 763 @item --program-prefix=@var{prefix} |
735 GCC supports some transformations of the names of its programs when | 764 GCC supports some transformations of the names of its programs when |
984 | 1013 |
985 @item powerpc*-*-*, rs6000*-*-* | 1014 @item powerpc*-*-*, rs6000*-*-* |
986 aix64, pthread, softfloat, powercpu, powerpccpu, powerpcos, biendian, | 1015 aix64, pthread, softfloat, powercpu, powerpccpu, powerpcos, biendian, |
987 sysv, aix. | 1016 sysv, aix. |
988 | 1017 |
1018 @end table | |
1019 | |
1020 @item --with-multilib-list=@var{list} | |
1021 @itemx --without-multilib-list | |
1022 Specify what multilibs to build. | |
1023 Currently only implemented for sh*-*-*. | |
1024 | |
1025 @var{list} is a comma separated list of CPU names. These must be of the | |
1026 form @code{sh*} or @code{m*} (in which case they match the compiler option | |
1027 for that processor). The list should not contain any endian options - | |
1028 these are handled by @option{--with-endian}. | |
1029 | |
1030 If @var{list} is empty, then there will be no multilibs for extra | |
1031 processors. The multilib for the secondary endian remains enabled. | |
1032 | |
1033 As a special case, if an entry in the list starts with a @code{!} | |
1034 (exclamation point), then it is added to the list of excluded multilibs. | |
1035 Entries of this sort should be compatible with @samp{MULTILIB_EXCLUDES} | |
1036 (once the leading @code{!} has been stripped). | |
1037 | |
1038 If @option{--with-multilib-list} is not given, then a default set of | |
1039 multilibs is selected based on the value of @option{--target}. This is | |
1040 usually the complete set of libraries, but some targets imply a more | |
1041 specialized subset. | |
1042 | |
1043 Example 1: to configure a compiler for SH4A only, but supporting both | |
1044 endians, with little endian being the default: | |
1045 @smallexample | |
1046 --with-cpu=sh4a --with-endian=little,big --with-multilib-list= | |
1047 @end smallexample | |
1048 | |
1049 Example 2: to configure a compiler for both SH4A and SH4AL-DSP, but with | |
1050 only little endian SH4AL: | |
1051 @smallexample | |
1052 --with-cpu=sh4a --with-endian=little,big --with-multilib-list=sh4al,!mb/m4al | |
1053 @end smallexample | |
1054 | |
1055 @item --with-endian=@var{endians} | |
1056 Specify what endians to use. | |
1057 Currently only implemented for sh*-*-*. | |
1058 | |
1059 @var{endians} may be one of the following: | |
1060 @table @code | |
1061 @item big | |
1062 Use big endian exclusively. | |
1063 @item little | |
1064 Use little endian exclusively. | |
1065 @item big,little | |
1066 Use big endian by default. Provide a multilib for little endian. | |
1067 @item little,big | |
1068 Use little endian by default. Provide a multilib for big endian. | |
989 @end table | 1069 @end table |
990 | 1070 |
991 @item --enable-threads | 1071 @item --enable-threads |
992 Specify that the target | 1072 Specify that the target |
993 supports threads. This affects the Objective-C compiler and runtime | 1073 supports threads. This affects the Objective-C compiler and runtime |
1034 @item rtems | 1114 @item rtems |
1035 RTEMS thread support. | 1115 RTEMS thread support. |
1036 @item single | 1116 @item single |
1037 Disable thread support, should work for all platforms. | 1117 Disable thread support, should work for all platforms. |
1038 @item solaris | 1118 @item solaris |
1039 Sun Solaris 2 thread support. | 1119 Sun Solaris 2/Unix International thread support. Only use this if you |
1120 really need to use this legacy API instead of the default, @samp{posix}. | |
1040 @item vxworks | 1121 @item vxworks |
1041 VxWorks thread support. | 1122 VxWorks thread support. |
1042 @item win32 | 1123 @item win32 |
1043 Microsoft Win32 API thread support. | 1124 Microsoft Win32 API thread support. |
1044 @item nks | 1125 @item nks |
1063 Specify which cpu variant the compiler should generate code for by default. | 1144 Specify which cpu variant the compiler should generate code for by default. |
1064 @var{cpu} will be used as the default value of the @option{-mcpu=} switch. | 1145 @var{cpu} will be used as the default value of the @option{-mcpu=} switch. |
1065 This option is only supported on some targets, including ARM, i386, M68k, | 1146 This option is only supported on some targets, including ARM, i386, M68k, |
1066 PowerPC, and SPARC@. The @option{--with-cpu-32} and | 1147 PowerPC, and SPARC@. The @option{--with-cpu-32} and |
1067 @option{--with-cpu-64} options specify separate default CPUs for | 1148 @option{--with-cpu-64} options specify separate default CPUs for |
1068 32-bit and 64-bit modes; these options are only supported for i386 and | 1149 32-bit and 64-bit modes; these options are only supported for i386, |
1069 x86-64. | 1150 x86-64 and PowerPC. |
1070 | 1151 |
1071 @item --with-schedule=@var{cpu} | 1152 @item --with-schedule=@var{cpu} |
1072 @itemx --with-arch=@var{cpu} | 1153 @itemx --with-arch=@var{cpu} |
1073 @itemx --with-arch-32=@var{cpu} | 1154 @itemx --with-arch-32=@var{cpu} |
1074 @itemx --with-arch-64=@var{cpu} | 1155 @itemx --with-arch-64=@var{cpu} |
1111 | 1192 |
1112 @item --without-llsc | 1193 @item --without-llsc |
1113 On MIPS targets, make @option{-mno-llsc} the default when no | 1194 On MIPS targets, make @option{-mno-llsc} the default when no |
1114 @option{-mllsc} option is passed. | 1195 @option{-mllsc} option is passed. |
1115 | 1196 |
1197 @item --with-synci | |
1198 On MIPS targets, make @option{-msynci} the default when no | |
1199 @option{-mno-synci} option is passed. | |
1200 | |
1201 @item --without-synci | |
1202 On MIPS targets, make @option{-mno-synci} the default when no | |
1203 @option{-msynci} option is passed. This is the default. | |
1204 | |
1116 @item --with-mips-plt | 1205 @item --with-mips-plt |
1117 On MIPS targets, make use of copy relocations and PLTs. | 1206 On MIPS targets, make use of copy relocations and PLTs. |
1118 These features are extensions to the traditional | 1207 These features are extensions to the traditional |
1119 SVR4-based MIPS ABIs and require support from GNU binutils | 1208 SVR4-based MIPS ABIs and require support from GNU binutils |
1120 and the runtime C library. | 1209 and the runtime C library. |
1130 @item --enable-target-optspace | 1219 @item --enable-target-optspace |
1131 Specify that target | 1220 Specify that target |
1132 libraries should be optimized for code space instead of code speed. | 1221 libraries should be optimized for code space instead of code speed. |
1133 This is the default for the m32r platform. | 1222 This is the default for the m32r platform. |
1134 | 1223 |
1135 @item --disable-cpp | |
1136 Specify that a user visible @command{cpp} program should not be installed. | |
1137 | |
1138 @item --with-cpp-install-dir=@var{dirname} | 1224 @item --with-cpp-install-dir=@var{dirname} |
1139 Specify that the user visible @command{cpp} program should be installed | 1225 Specify that the user visible @command{cpp} program should be installed |
1140 in @file{@var{prefix}/@var{dirname}/cpp}, in addition to @var{bindir}. | 1226 in @file{@var{prefix}/@var{dirname}/cpp}, in addition to @var{bindir}. |
1141 | 1227 |
1142 @item --enable-initfini-array | 1228 @item --enable-initfini-array |
1145 destructors. Option @option{--disable-initfini-array} has the | 1231 destructors. Option @option{--disable-initfini-array} has the |
1146 opposite effect. If neither option is specified, the configure script | 1232 opposite effect. If neither option is specified, the configure script |
1147 will try to guess whether the @code{.init_array} and | 1233 will try to guess whether the @code{.init_array} and |
1148 @code{.fini_array} sections are supported and, if they are, use them. | 1234 @code{.fini_array} sections are supported and, if they are, use them. |
1149 | 1235 |
1236 @item --enable-build-with-cxx | |
1237 Build GCC using a C++ compiler rather than a C compiler. This is an | |
1238 experimental option which may become the default in a later release. | |
1239 | |
1150 @item --enable-maintainer-mode | 1240 @item --enable-maintainer-mode |
1151 The build rules that | 1241 The build rules that regenerate the Autoconf and Automake output files as |
1152 regenerate the GCC master message catalog @file{gcc.pot} are normally | 1242 well as the GCC master message catalog @file{gcc.pot} are normally |
1153 disabled. This is because it can only be rebuilt if the complete source | 1243 disabled. This is because it can only be rebuilt if the complete source |
1154 tree is present. If you have changed the sources and want to rebuild the | 1244 tree is present. If you have changed the sources and want to rebuild the |
1155 catalog, configuring with @option{--enable-maintainer-mode} will enable | 1245 catalog, configuring with @option{--enable-maintainer-mode} will enable |
1156 this. Note that you need a recent version of the @code{gettext} tools | 1246 this. Note that you need a recent version of the @code{gettext} tools |
1157 to do so. | 1247 to do so. |
1163 this process, you can configure with @option{--disable-bootstrap}. | 1253 this process, you can configure with @option{--disable-bootstrap}. |
1164 | 1254 |
1165 @item --enable-bootstrap | 1255 @item --enable-bootstrap |
1166 In special cases, you may want to perform a 3-stage build | 1256 In special cases, you may want to perform a 3-stage build |
1167 even if the target and host triplets are different. | 1257 even if the target and host triplets are different. |
1168 This could happen when the host can run code compiled for | 1258 This is possible when the host can run code compiled for |
1169 the target (e.g.@: host is i686-linux, target is i486-linux). | 1259 the target (e.g.@: host is i686-linux, target is i486-linux). |
1170 Starting from GCC 4.2, to do this you have to configure explicitly | 1260 Starting from GCC 4.2, to do this you have to configure explicitly |
1171 with @option{--enable-bootstrap}. | 1261 with @option{--enable-bootstrap}. |
1172 | 1262 |
1173 @item --enable-generated-files-in-srcdir | 1263 @item --enable-generated-files-in-srcdir |
1253 code. Typically, the corresponding 32-bit target, e.g.@: | 1343 code. Typically, the corresponding 32-bit target, e.g.@: |
1254 powerpc-linux for powerpc64-linux, only generates 32-bit code. This | 1344 powerpc-linux for powerpc64-linux, only generates 32-bit code. This |
1255 option enables the 32-bit target to be a bi-arch compiler, which is | 1345 option enables the 32-bit target to be a bi-arch compiler, which is |
1256 useful when you want a bi-arch compiler that defaults to 32-bit, and | 1346 useful when you want a bi-arch compiler that defaults to 32-bit, and |
1257 you are building a bi-arch or multi-arch binutils in a combined tree. | 1347 you are building a bi-arch or multi-arch binutils in a combined tree. |
1258 Currently, this option only affects sparc-linux, powerpc-linux and | 1348 On mips-linux, this will build a tri-arch compiler (ABI o32/n32/64), |
1259 x86-linux. | 1349 defaulted to o32. |
1350 Currently, this option only affects sparc-linux, powerpc-linux, x86-linux | |
1351 and mips-linux. | |
1260 | 1352 |
1261 @item --enable-secureplt | 1353 @item --enable-secureplt |
1262 This option enables @option{-msecure-plt} by default for powerpc-linux. | 1354 This option enables @option{-msecure-plt} by default for powerpc-linux. |
1263 @ifnothtml | 1355 @ifnothtml |
1264 @xref{RS/6000 and PowerPC Options,, RS/6000 and PowerPC Options, gcc, | 1356 @xref{RS/6000 and PowerPC Options,, RS/6000 and PowerPC Options, gcc, |
1338 assertions will make the compiler and runtime slightly faster but | 1430 assertions will make the compiler and runtime slightly faster but |
1339 increase the risk of undetected internal errors causing wrong code to be | 1431 increase the risk of undetected internal errors causing wrong code to be |
1340 generated. | 1432 generated. |
1341 | 1433 |
1342 @item --disable-stage1-checking | 1434 @item --disable-stage1-checking |
1343 @item --enable-stage1-checking | 1435 @itemx --enable-stage1-checking |
1344 @itemx --enable-stage1-checking=@var{list} | 1436 @itemx --enable-stage1-checking=@var{list} |
1345 If no @option{--enable-checking} option is specified the stage1 | 1437 If no @option{--enable-checking} option is specified the stage1 |
1346 compiler will be built with @samp{yes} checking enabled, otherwise | 1438 compiler will be built with @samp{yes} checking enabled, otherwise |
1347 the stage1 checking flags are the same as specified by | 1439 the stage1 checking flags are the same as specified by |
1348 @option{--enable-checking}. To build the stage1 compiler with | 1440 @option{--enable-checking}. To build the stage1 compiler with |
1440 @itemx --with-gmp-include=@var{pathname} | 1532 @itemx --with-gmp-include=@var{pathname} |
1441 @itemx --with-gmp-lib=@var{pathname} | 1533 @itemx --with-gmp-lib=@var{pathname} |
1442 @itemx --with-mpfr=@var{pathname} | 1534 @itemx --with-mpfr=@var{pathname} |
1443 @itemx --with-mpfr-include=@var{pathname} | 1535 @itemx --with-mpfr-include=@var{pathname} |
1444 @itemx --with-mpfr-lib=@var{pathname} | 1536 @itemx --with-mpfr-lib=@var{pathname} |
1445 If you do not have GMP (the GNU Multiple Precision library) and the | 1537 @itemx --with-mpc=@var{pathname} |
1446 MPFR Libraries installed in a standard location and you want to build | 1538 @itemx --with-mpc-include=@var{pathname} |
1447 GCC, you can explicitly specify the directory where they are installed | 1539 @itemx --with-mpc-lib=@var{pathname} |
1448 (@samp{--with-gmp=@var{gmpinstalldir}}, | 1540 If you do not have GMP (the GNU Multiple Precision library), the MPFR |
1449 @samp{--with-mpfr=@var{mpfrinstalldir}}). The | 1541 library and/or the MPC library installed in a standard location and |
1542 you want to build GCC, you can explicitly specify the directory where | |
1543 they are installed (@samp{--with-gmp=@var{gmpinstalldir}}, | |
1544 @samp{--with-mpfr=@var{mpfrinstalldir}}, | |
1545 @samp{--with-mpc=@var{mpcinstalldir}}). The | |
1450 @option{--with-gmp=@var{gmpinstalldir}} option is shorthand for | 1546 @option{--with-gmp=@var{gmpinstalldir}} option is shorthand for |
1451 @option{--with-gmp-lib=@var{gmpinstalldir}/lib} and | 1547 @option{--with-gmp-lib=@var{gmpinstalldir}/lib} and |
1452 @option{--with-gmp-include=@var{gmpinstalldir}/include}. Likewise the | 1548 @option{--with-gmp-include=@var{gmpinstalldir}/include}. Likewise the |
1453 @option{--with-mpfr=@var{mpfrinstalldir}} option is shorthand for | 1549 @option{--with-mpfr=@var{mpfrinstalldir}} option is shorthand for |
1454 @option{--with-mpfr-lib=@var{mpfrinstalldir}/lib} and | 1550 @option{--with-mpfr-lib=@var{mpfrinstalldir}/lib} and |
1455 @option{--with-mpfr-include=@var{mpfrinstalldir}/include}. If these | 1551 @option{--with-mpfr-include=@var{mpfrinstalldir}/include}, also the |
1552 @option{--with-mpc=@var{mpcinstalldir}} option is shorthand for | |
1553 @option{--with-mpc-lib=@var{mpcinstalldir}/lib} and | |
1554 @option{--with-mpc-include=@var{mpcinstalldir}/include}. If these | |
1456 shorthand assumptions are not correct, you can use the explicit | 1555 shorthand assumptions are not correct, you can use the explicit |
1457 include and lib options directly. | 1556 include and lib options directly. |
1458 | 1557 |
1459 @item --with-ppl=@var{pathname} | 1558 @item --with-ppl=@var{pathname} |
1460 @itemx --with-ppl-include=@var{pathname} | 1559 @itemx --with-ppl-include=@var{pathname} |
1483 @samp{-lstdc++} or @samp{-Wl,-Bstatic,-lstdc++,-Bdynamic -lm}. If you are | 1582 @samp{-lstdc++} or @samp{-Wl,-Bstatic,-lstdc++,-Bdynamic -lm}. If you are |
1484 linking with a shared copy of PPL, you probably do not need this | 1583 linking with a shared copy of PPL, you probably do not need this |
1485 option; shared library dependencies will cause the linker to search | 1584 option; shared library dependencies will cause the linker to search |
1486 for the standard C++ library automatically. | 1585 for the standard C++ library automatically. |
1487 | 1586 |
1587 @item --with-stage1-ldflags=@var{flags} | |
1588 This option may be used to set linker flags to be used when linking | |
1589 stage 1 of GCC. These are also used when linking GCC if configured with | |
1590 @option{--disable-bootstrap}. By default no special flags are used. | |
1591 | |
1592 @item --with-stage1-libs=@var{libs} | |
1593 This option may be used to set libraries to be used when linking stage 1 | |
1594 of GCC. These are also used when linking GCC if configured with | |
1595 @option{--disable-bootstrap}. The default is the argument to | |
1596 @option{--with-host-libstdcxx}, if specified. | |
1597 | |
1598 @item --with-boot-ldflags=@var{flags} | |
1599 This option may be used to set linker flags to be used when linking | |
1600 stage 2 and later when bootstrapping GCC. By default no special flags | |
1601 are used. | |
1602 | |
1603 @item --with-boot-libs=@var{libs} | |
1604 This option may be used to set libraries to be used when linking stage 2 | |
1605 and later when bootstrapping GCC. The default is the argument to | |
1606 @option{--with-host-libstdcxx}, if specified. | |
1607 | |
1488 @item --with-debug-prefix-map=@var{map} | 1608 @item --with-debug-prefix-map=@var{map} |
1489 Convert source directory names using @option{-fdebug-prefix-map} when | 1609 Convert source directory names using @option{-fdebug-prefix-map} when |
1490 building runtime libraries. @samp{@var{map}} is a space-separated | 1610 building runtime libraries. @samp{@var{map}} is a space-separated |
1491 list of maps of the form @samp{@var{old}=@var{new}}. | 1611 list of maps of the form @samp{@var{old}=@var{new}}. |
1492 | 1612 |
1613 @item --enable-linker-build-id | |
1614 Tells GCC to pass @option{--build-id} option to the linker for all final | |
1615 links (links performed without the @option{-r} or @option{--relocatable} | |
1616 option), if the linker supports it. If you specify | |
1617 @option{--enable-linker-build-id}, but your linker does not | |
1618 support @option{--build-id} option, a warning is issued and the | |
1619 @option{--enable-linker-build-id} option is ignored. The default is off. | |
1620 | |
1621 @item --enable-gnu-unique-object | |
1622 @itemx --disable-gnu-unique-object | |
1623 Tells GCC to use the gnu_unique_object relocation for C++ template | |
1624 static data members and inline function local statics. Enabled by | |
1625 default for a native toolchain with an assembler that accepts it and | |
1626 GLIBC 2.11 or above, otherwise disabled. | |
1627 | |
1493 @end table | 1628 @end table |
1494 | 1629 |
1495 @subheading Cross-Compiler-Specific Options | 1630 @subheading Cross-Compiler-Specific Options |
1496 The following options only apply to building cross compilers. | 1631 The following options only apply to building cross compilers. |
1632 | |
1497 @table @code | 1633 @table @code |
1498 @item --with-sysroot | 1634 @item --with-sysroot |
1499 @itemx --with-sysroot=@var{dir} | 1635 @itemx --with-sysroot=@var{dir} |
1500 Tells GCC to consider @var{dir} as the root of a tree that contains a | 1636 Tells GCC to consider @var{dir} as the root of a tree that contains a |
1501 (subset of) the root filesystem of the target operating system. | 1637 (subset of) the root filesystem of the target operating system. |
1502 Target system headers, libraries and run-time object files will be | 1638 Target system headers, libraries and run-time object files will be |
1503 searched in there. The specified directory is not copied into the | 1639 searched in there. More specifically, this acts as if |
1640 @option{--sysroot=@var{dir}} was added to the default options of the built | |
1641 compiler. The specified directory is not copied into the | |
1504 install tree, unlike the options @option{--with-headers} and | 1642 install tree, unlike the options @option{--with-headers} and |
1505 @option{--with-libs} that this option obsoletes. The default value, | 1643 @option{--with-libs} that this option obsoletes. The default value, |
1506 in case @option{--with-sysroot} is not given an argument, is | 1644 in case @option{--with-sysroot} is not given an argument, is |
1507 @option{$@{gcc_tooldir@}/sys-root}. If the specified directory is a | 1645 @option{$@{gcc_tooldir@}/sys-root}. If the specified directory is a |
1508 subdirectory of @option{$@{exec_prefix@}}, then it will be found relative to | 1646 subdirectory of @option{$@{exec_prefix@}}, then it will be found relative to |
1509 the GCC binaries if the installation tree is moved. | 1647 the GCC binaries if the installation tree is moved. |
1648 | |
1649 This option affects the system root for the compiler used to build | |
1650 target libraries (which runs on the build system) and the compiler newly | |
1651 installed with @code{make install}; it does not affect the compiler which is | |
1652 used to build GCC itself. | |
1510 | 1653 |
1511 @item --with-build-sysroot | 1654 @item --with-build-sysroot |
1512 @itemx --with-build-sysroot=@var{dir} | 1655 @itemx --with-build-sysroot=@var{dir} |
1513 Tells GCC to consider @var{dir} as the system root (see | 1656 Tells GCC to consider @var{dir} as the system root (see |
1514 @option{--with-sysroot}) while building target libraries, instead of | 1657 @option{--with-sysroot}) while building target libraries, instead of |
1538 Tells GCC not use any target headers from a libc when building a cross | 1681 Tells GCC not use any target headers from a libc when building a cross |
1539 compiler. When crossing to GNU/Linux, you need the headers so GCC | 1682 compiler. When crossing to GNU/Linux, you need the headers so GCC |
1540 can build the exception handling for libgcc. | 1683 can build the exception handling for libgcc. |
1541 | 1684 |
1542 @item --with-libs | 1685 @item --with-libs |
1543 @itemx --with-libs=``@var{dir1} @var{dir2} @dots{} @var{dirN}'' | 1686 @itemx --with-libs="@var{dir1} @var{dir2} @dots{} @var{dirN}" |
1544 Deprecated in favor of @option{--with-sysroot}. | 1687 Deprecated in favor of @option{--with-sysroot}. |
1545 Specifies a list of directories which contain the target runtime | 1688 Specifies a list of directories which contain the target runtime |
1546 libraries. These libraries will be copied into the @file{gcc} install | 1689 libraries. These libraries will be copied into the @file{gcc} install |
1547 directory. If the directory list is omitted, this option has no | 1690 directory. If the directory list is omitted, this option has no |
1548 effect. | 1691 effect. |
1557 Specifies where to find the set of target tools (assembler, linker, etc.) | 1700 Specifies where to find the set of target tools (assembler, linker, etc.) |
1558 that will be used while building GCC itself. This option can be useful | 1701 that will be used while building GCC itself. This option can be useful |
1559 if the directory layouts are different between the system you are building | 1702 if the directory layouts are different between the system you are building |
1560 GCC on, and the system where you will deploy it. | 1703 GCC on, and the system where you will deploy it. |
1561 | 1704 |
1562 For example, on a @option{ia64-hp-hpux} system, you may have the GNU | 1705 For example, on an @samp{ia64-hp-hpux} system, you may have the GNU |
1563 assembler and linker in @file{/usr/bin}, and the native tools in a | 1706 assembler and linker in @file{/usr/bin}, and the native tools in a |
1564 different path, and build a toolchain that expects to find the | 1707 different path, and build a toolchain that expects to find the |
1565 native tools in @file{/usr/bin}. | 1708 native tools in @file{/usr/bin}. |
1566 | 1709 |
1567 When you use this option, you should ensure that @var{dir} includes | 1710 When you use this option, you should ensure that @var{dir} includes |
1738 not specified, then the Python modules are installed in $(prefix)/share/python. | 1881 not specified, then the Python modules are installed in $(prefix)/share/python. |
1739 | 1882 |
1740 @item --enable-aot-compile-rpm | 1883 @item --enable-aot-compile-rpm |
1741 Adds aot-compile-rpm to the list of installed scripts. | 1884 Adds aot-compile-rpm to the list of installed scripts. |
1742 | 1885 |
1886 @item --enable-browser-plugin | |
1887 Build the gcjwebplugin web browser plugin. | |
1888 | |
1743 @table @code | 1889 @table @code |
1744 @item ansi | 1890 @item ansi |
1745 Use the single-byte @code{char} and the Win32 A functions natively, | 1891 Use the single-byte @code{char} and the Win32 A functions natively, |
1746 translating to and from UNICODE when using these functions. If | 1892 translating to and from UNICODE when using these functions. If |
1747 unspecified, this is the default. | 1893 unspecified, this is the default. |
1758 @item unicode | 1904 @item unicode |
1759 Use the @code{WCHAR} and Win32 W functions natively. Does @emph{not} | 1905 Use the @code{WCHAR} and Win32 W functions natively. Does @emph{not} |
1760 add @code{-lunicows} to @file{libgcj.spec}. The built executables will | 1906 add @code{-lunicows} to @file{libgcj.spec}. The built executables will |
1761 only run on Microsoft Windows NT and above. | 1907 only run on Microsoft Windows NT and above. |
1762 @end table | 1908 @end table |
1909 | |
1910 @item --enable-lto | |
1911 Enable support for link-time optimization (LTO). This is enabled by | |
1912 default if a working libelf implementation is found (see | |
1913 @option{--with-libelf}). | |
1914 | |
1915 @item --with-libelf=@var{pathname} | |
1916 @itemx --with-libelf-include=@var{pathname} | |
1917 @itemx --with-libelf-lib=@var{pathname} | |
1918 If you do not have libelf installed in a standard location and you | |
1919 want to enable support for link-time optimization (LTO), you can | |
1920 explicitly specify the directory where libelf is installed | |
1921 (@samp{--with-libelf=@var{libelfinstalldir}}). The | |
1922 @option{--with-libelf=@var{libelfinstalldir}} option is shorthand for | |
1923 @option{--with-libelf-include=@var{libelfinstalldir}/include} | |
1924 @option{--with-libelf-lib=@var{libelfinstalldir}/lib}. | |
1925 | |
1926 @item --enable-gold | |
1927 Enable support for using @command{gold} as the linker. If gold support is | |
1928 enabled together with @option{--enable-lto}, an additional directory | |
1929 @file{lto-plugin} will be built. The code in this directory is a | |
1930 plugin for gold that allows the link-time optimizer to extract object | |
1931 files with LTO information out of library archives. See | |
1932 @option{-flto} and @option{-fwhopr} for details. | |
1763 @end table | 1933 @end table |
1764 | 1934 |
1765 @subsubheading AWT-Specific Options | 1935 @subsubheading AWT-Specific Options |
1766 | 1936 |
1767 @table @code | 1937 @table @code |
1926 Since these are always compiled with the compiler currently being | 2096 Since these are always compiled with the compiler currently being |
1927 bootstrapped, you can use @code{CFLAGS_FOR_TARGET} to modify their | 2097 bootstrapped, you can use @code{CFLAGS_FOR_TARGET} to modify their |
1928 compilation flags, as for non-bootstrapped target libraries. | 2098 compilation flags, as for non-bootstrapped target libraries. |
1929 Again, if the native compiler miscompiles the stage1 compiler, you may | 2099 Again, if the native compiler miscompiles the stage1 compiler, you may |
1930 need to work around this by avoiding non-working parts of the stage1 | 2100 need to work around this by avoiding non-working parts of the stage1 |
1931 compiler. Use @code{STAGE1_LIBCFLAGS} to this end. | 2101 compiler. Use @code{STAGE1_TFLAGS} to this end. |
1932 | 2102 |
1933 If you used the flag @option{--enable-languages=@dots{}} to restrict | 2103 If you used the flag @option{--enable-languages=@dots{}} to restrict |
1934 the compilers to be built, only those you've actually enabled will be | 2104 the compilers to be built, only those you've actually enabled will be |
1935 built. This will of course only build those runtime libraries, for | 2105 built. This will of course only build those runtime libraries, for |
1936 which the particular compiler has been built. Please note, | 2106 which the particular compiler has been built. Please note, |
1950 the one you are building on: for example, you could build a | 2120 the one you are building on: for example, you could build a |
1951 @code{powerpc-unknown-linux-gnu} toolchain on a | 2121 @code{powerpc-unknown-linux-gnu} toolchain on a |
1952 @code{powerpc64-unknown-linux-gnu} host. In this case, pass | 2122 @code{powerpc64-unknown-linux-gnu} host. In this case, pass |
1953 @option{--enable-bootstrap} to the configure script. | 2123 @option{--enable-bootstrap} to the configure script. |
1954 | 2124 |
2125 @code{BUILD_CONFIG} can be used to bring in additional customization | |
2126 to the build. It can be set to a whitespace-separated list of names. | |
2127 For each such @code{NAME}, top-level @file{config/@code{NAME}.mk} will | |
2128 be included by the top-level @file{Makefile}, bringing in any settings | |
2129 it contains. The default @code{BUILD_CONFIG} can be set using the | |
2130 configure option @option{--with-build-config=@code{NAME}...}. Some | |
2131 examples of supported build configurations are: | |
2132 | |
2133 @table @asis | |
2134 @item @samp{bootstrap-O1} | |
2135 Removes any @option{-O}-started option from @code{BOOT_CFLAGS}, and adds | |
2136 @option{-O1} to it. @samp{BUILD_CONFIG=bootstrap-O1} is equivalent to | |
2137 @samp{BOOT_CFLAGS='-g -O1'}. | |
2138 | |
2139 @item @samp{bootstrap-O3} | |
2140 Analogous to @code{bootstrap-O1}. | |
2141 | |
2142 @item @samp{bootstrap-debug} | |
2143 Verifies that the compiler generates the same executable code, whether | |
2144 or not it is asked to emit debug information. To this end, this | |
2145 option builds stage2 host programs without debug information, and uses | |
2146 @file{contrib/compare-debug} to compare them with the stripped stage3 | |
2147 object files. If @code{BOOT_CFLAGS} is overridden so as to not enable | |
2148 debug information, stage2 will have it, and stage3 won't. This option | |
2149 is enabled by default when GCC bootstrapping is enabled, if | |
2150 @code{strip} can turn object files compiled with and without debug | |
2151 info into identical object files. In addition to better test | |
2152 coverage, this option makes default bootstraps faster and leaner. | |
2153 | |
2154 @item @samp{bootstrap-debug-big} | |
2155 Rather than comparing stripped object files, as in | |
2156 @code{bootstrap-debug}, this option saves internal compiler dumps | |
2157 during stage2 and stage3 and compares them as well, which helps catch | |
2158 additional potential problems, but at a great cost in terms of disk | |
2159 space. It can be specified in addition to @samp{bootstrap-debug}. | |
2160 | |
2161 @item @samp{bootstrap-debug-lean} | |
2162 This option saves disk space compared with @code{bootstrap-debug-big}, | |
2163 but at the expense of some recompilation. Instead of saving the dumps | |
2164 of stage2 and stage3 until the final compare, it uses | |
2165 @option{-fcompare-debug} to generate, compare and remove the dumps | |
2166 during stage3, repeating the compilation that already took place in | |
2167 stage2, whose dumps were not saved. | |
2168 | |
2169 @item @samp{bootstrap-debug-lib} | |
2170 This option tests executable code invariance over debug information | |
2171 generation on target libraries, just like @code{bootstrap-debug-lean} | |
2172 tests it on host programs. It builds stage3 libraries with | |
2173 @option{-fcompare-debug}, and it can be used along with any of the | |
2174 @code{bootstrap-debug} options above. | |
2175 | |
2176 There aren't @code{-lean} or @code{-big} counterparts to this option | |
2177 because most libraries are only build in stage3, so bootstrap compares | |
2178 would not get significant coverage. Moreover, the few libraries built | |
2179 in stage2 are used in stage3 host programs, so we wouldn't want to | |
2180 compile stage2 libraries with different options for comparison purposes. | |
2181 | |
2182 @item @samp{bootstrap-debug-ckovw} | |
2183 Arranges for error messages to be issued if the compiler built on any | |
2184 stage is run without the option @option{-fcompare-debug}. This is | |
2185 useful to verify the full @option{-fcompare-debug} testing coverage. It | |
2186 must be used along with @code{bootstrap-debug-lean} and | |
2187 @code{bootstrap-debug-lib}. | |
2188 | |
2189 @item @samp{bootstrap-time} | |
2190 Arranges for the run time of each program started by the GCC driver, | |
2191 built in any stage, to be logged to @file{time.log}, in the top level of | |
2192 the build tree. | |
2193 | |
2194 @end table | |
1955 | 2195 |
1956 @section Building a cross compiler | 2196 @section Building a cross compiler |
1957 | 2197 |
1958 When building a cross compiler, it is not generally possible to do a | 2198 When building a cross compiler, it is not generally possible to do a |
1959 3-stage bootstrap of the compiler. This makes for an interesting problem | 2199 3-stage bootstrap of the compiler. This makes for an interesting problem |
1960 as parts of GCC can only be built with GCC@. | 2200 as parts of GCC can only be built with GCC@. |
1961 | 2201 |
1962 To build a cross compiler, we first recommend building and installing a | 2202 To build a cross compiler, we recommend first building and installing a |
1963 native compiler. You can then use the native GCC compiler to build the | 2203 native compiler. You can then use the native GCC compiler to build the |
1964 cross compiler. The installed native compiler needs to be GCC version | 2204 cross compiler. The installed native compiler needs to be GCC version |
1965 2.95 or later. | 2205 2.95 or later. |
1966 | 2206 |
1967 If the cross compiler is to be built with support for the Java | 2207 If the cross compiler is to be built with support for the Java |
2037 compilation options. Check your target's definition of | 2277 compilation options. Check your target's definition of |
2038 @code{STARTFILE_SPEC} to find out what start files it uses. | 2278 @code{STARTFILE_SPEC} to find out what start files it uses. |
2039 | 2279 |
2040 @section Building in parallel | 2280 @section Building in parallel |
2041 | 2281 |
2042 GNU Make 3.79 and above, which is necessary to build GCC, support | 2282 GNU Make 3.80 and above, which is necessary to build GCC, support |
2043 building in parallel. To activate this, you can use @samp{make -j 2} | 2283 building in parallel. To activate this, you can use @samp{make -j 2} |
2044 instead of @samp{make}. You can also specify a bigger number, and | 2284 instead of @samp{make}. You can also specify a bigger number, and |
2045 in most cases using a value greater than the number of processors in | 2285 in most cases using a value greater than the number of processors in |
2046 your machine will result in fewer and shorter I/O latency hits, thus | 2286 your machine will result in fewer and shorter I/O latency hits, thus |
2047 improving overall throughput; this is especially true for slow drives | 2287 improving overall throughput; this is especially true for slow drives |
2451 didn't include your host/target information or if that information is | 2691 didn't include your host/target information or if that information is |
2452 incomplete or out of date. Send a note to | 2692 incomplete or out of date. Send a note to |
2453 @email{gcc@@gcc.gnu.org} detailing how the information should be changed. | 2693 @email{gcc@@gcc.gnu.org} detailing how the information should be changed. |
2454 | 2694 |
2455 If you find a bug, please report it following the | 2695 If you find a bug, please report it following the |
2456 @uref{../bugs.html,,bug reporting guidelines}. | 2696 @uref{../bugs/,,bug reporting guidelines}. |
2457 | 2697 |
2458 If you want to print the GCC manuals, do @samp{cd @var{objdir}; make | 2698 If you want to print the GCC manuals, do @samp{cd @var{objdir}; make |
2459 dvi}. You will need to have @command{texi2dvi} (version at least 4.7) | 2699 dvi}. You will need to have @command{texi2dvi} (version at least 4.7) |
2460 and @TeX{} installed. This creates a number of @file{.dvi} files in | 2700 and @TeX{} installed. This creates a number of @file{.dvi} files in |
2461 subdirectories of @file{@var{objdir}}; these may be converted for | 2701 subdirectories of @file{@var{objdir}}; these may be converted for |
2571 | 2811 |
2572 @item | 2812 @item |
2573 The @uref{http://gcc.gnu.org/wiki/GFortranBinaries,,GFortran Wiki} has | 2813 The @uref{http://gcc.gnu.org/wiki/GFortranBinaries,,GFortran Wiki} has |
2574 links to GNU Fortran binaries for several platforms. | 2814 links to GNU Fortran binaries for several platforms. |
2575 @end itemize | 2815 @end itemize |
2576 | |
2577 In addition to those specific offerings, you can get a binary | |
2578 distribution CD-ROM from the | |
2579 @uref{http://www.gnu.org/order/order.html,,Free Software Foundation}. | |
2580 It contains binaries for a number of platforms, and | |
2581 includes not only GCC, but other stuff as well. The current CD does | |
2582 not contain the latest version of GCC, but it should allow | |
2583 bootstrapping the compiler. An updated version of that disk is in the | |
2584 works. | |
2585 | 2816 |
2586 @html | 2817 @html |
2587 <hr /> | 2818 <hr /> |
2588 <p> | 2819 <p> |
2589 @end html | 2820 @end html |
2623 @uref{#alpha-dec-osf,,alpha*-dec-osf*} | 2854 @uref{#alpha-dec-osf,,alpha*-dec-osf*} |
2624 @item | 2855 @item |
2625 @uref{#arc-x-elf,,arc-*-elf} | 2856 @uref{#arc-x-elf,,arc-*-elf} |
2626 @item | 2857 @item |
2627 @uref{#arm-x-elf,,arm-*-elf} | 2858 @uref{#arm-x-elf,,arm-*-elf} |
2628 @uref{#arm-x-coff,,arm-*-coff} | |
2629 @uref{#arm-x-aout,,arm-*-aout} | |
2630 @item | 2859 @item |
2631 @uref{#avr,,avr} | 2860 @uref{#avr,,avr} |
2632 @item | 2861 @item |
2633 @uref{#bfin,,Blackfin} | 2862 @uref{#bfin,,Blackfin} |
2634 @item | 2863 @item |
2656 @item | 2885 @item |
2657 @uref{#x-ibm-aix,,*-ibm-aix*} | 2886 @uref{#x-ibm-aix,,*-ibm-aix*} |
2658 @item | 2887 @item |
2659 @uref{#iq2000-x-elf,,iq2000-*-elf} | 2888 @uref{#iq2000-x-elf,,iq2000-*-elf} |
2660 @item | 2889 @item |
2890 @uref{#lm32-x-elf,,lm32-*-elf} | |
2891 @item | |
2892 @uref{#lm32-x-uclinux,,lm32-*-uclinux} | |
2893 @item | |
2661 @uref{#m32c-x-elf,,m32c-*-elf} | 2894 @uref{#m32c-x-elf,,m32c-*-elf} |
2662 @item | 2895 @item |
2663 @uref{#m32r-x-elf,,m32r-*-elf} | 2896 @uref{#m32r-x-elf,,m32r-*-elf} |
2664 @item | 2897 @item |
2665 @uref{#m6811-elf,,m6811-elf} | 2898 @uref{#m6811-elf,,m6811-elf} |
2668 @item | 2901 @item |
2669 @uref{#m68k-x-x,,m68k-*-*} | 2902 @uref{#m68k-x-x,,m68k-*-*} |
2670 @item | 2903 @item |
2671 @uref{#m68k-uclinux,,m68k-uclinux} | 2904 @uref{#m68k-uclinux,,m68k-uclinux} |
2672 @item | 2905 @item |
2906 @uref{#mep-x-elf,,mep-*-elf} | |
2907 @item | |
2673 @uref{#mips-x-x,,mips-*-*} | 2908 @uref{#mips-x-x,,mips-*-*} |
2674 @item | 2909 @item |
2675 @uref{#mips-sgi-irix5,,mips-sgi-irix5} | 2910 @uref{#mips-sgi-irix5,,mips-sgi-irix5} |
2676 @item | 2911 @item |
2677 @uref{#mips-sgi-irix6,,mips-sgi-irix6} | 2912 @uref{#mips-sgi-irix6,,mips-sgi-irix6} |
2726 @item | 2961 @item |
2727 @uref{#x-x-cygwin,,*-*-cygwin} | 2962 @uref{#x-x-cygwin,,*-*-cygwin} |
2728 @item | 2963 @item |
2729 @uref{#x-x-interix,,*-*-interix} | 2964 @uref{#x-x-interix,,*-*-interix} |
2730 @item | 2965 @item |
2731 @uref{#x-x-mingw,,*-*-mingw} | 2966 @uref{#x-x-mingw32,,*-*-mingw32} |
2732 @item | 2967 @item |
2733 @uref{#os2,,OS/2} | 2968 @uref{#os2,,OS/2} |
2734 @item | 2969 @item |
2735 @uref{#older,,Older systems} | 2970 @uref{#older,,Older systems} |
2736 @end itemize | 2971 @end itemize |
2848 and @code{arm-*-rtems}. | 3083 and @code{arm-*-rtems}. |
2849 | 3084 |
2850 @html | 3085 @html |
2851 <hr /> | 3086 <hr /> |
2852 @end html | 3087 @end html |
2853 @heading @anchor{arm-x-coff}arm-*-coff | |
2854 ARM-family processors. Note that there are two different varieties | |
2855 of PE format subtarget supported: @code{arm-wince-pe} and | |
2856 @code{arm-pe} as well as a standard COFF target @code{arm-*-coff}. | |
2857 | |
2858 @html | |
2859 <hr /> | |
2860 @end html | |
2861 @heading @anchor{arm-x-aout}arm-*-aout | |
2862 ARM-family processors. These targets support the AOUT file format: | |
2863 @code{arm-*-aout}, @code{arm-*-netbsd}. | |
2864 | |
2865 @html | |
2866 <hr /> | |
2867 @end html | |
2868 @heading @anchor{avr}avr | 3088 @heading @anchor{avr}avr |
2869 | 3089 |
2870 ATMEL AVR-family micro controllers. These are used in embedded | 3090 ATMEL AVR-family micro controllers. These are used in embedded |
2871 applications. There are no standard Unix configurations. | 3091 applications. There are no standard Unix configurations. |
2872 @ifnothtml | 3092 @ifnothtml |
2992 @html | 3212 @html |
2993 <hr /> | 3213 <hr /> |
2994 @end html | 3214 @end html |
2995 @heading @anchor{x-x-freebsd}*-*-freebsd* | 3215 @heading @anchor{x-x-freebsd}*-*-freebsd* |
2996 | 3216 |
2997 The version of binutils installed in @file{/usr/bin} probably works with | 3217 Support for FreeBSD 1 was discontinued in GCC 3.2. Support for |
2998 this release of GCC@. However, on FreeBSD 4, bootstrapping against the | 3218 FreeBSD 2 (and any mutant a.out variants of FreeBSD 3) was |
2999 latest FSF binutils is known to improve overall testsuite results; and, | 3219 discontinued in GCC 4.0. |
3000 on FreeBSD/alpha, using binutils 2.14 or later is required to build libjava. | 3220 |
3001 | 3221 In GCC 4.5, we enabled the use of @code{dl_iterate_phdr} inside boehm-gc on |
3002 Support for FreeBSD 1 was discontinued in GCC 3.2. | 3222 FreeBSD 7 or later. In order to better match the configuration of the |
3003 | 3223 FreeBSD system compiler: We also enabled the check to see if libc |
3004 Support for FreeBSD 2 will be discontinued after GCC 3.4. The | 3224 provides SSP support (which it does on FreeBSD 7), the use of |
3005 following was true for GCC 3.1 but the current status is unknown. | 3225 @code{dl_iterate_phdr} inside @file{libgcc_s.so.1} (on FreeBSD 7 or later) |
3006 For FreeBSD 2 or any mutant a.out versions of FreeBSD 3: All | 3226 and the use of @code{__cxa_atexit} by default (on FreeBSD 6 or later). |
3007 configuration support and files as shipped with GCC 2.95 are still in | 3227 |
3008 place. FreeBSD 2.2.7 has been known to bootstrap completely; however, | 3228 We support FreeBSD using the ELF file format with DWARF 2 debugging |
3009 it is unknown which version of binutils was used (it is assumed that it | 3229 for all CPU architectures. You may use @option{-gstabs} instead of |
3010 was the system copy in @file{/usr/bin}) and C++ EH failures were noted. | 3230 @option{-g}, if you really want the old debugging format. There are |
3011 | |
3012 For FreeBSD using the ELF file format: DWARF 2 debugging is now the | |
3013 default for all CPU architectures. It had been the default on | |
3014 FreeBSD/alpha since its inception. You may use @option{-gstabs} instead | |
3015 of @option{-g}, if you really want the old debugging format. There are | |
3016 no known issues with mixing object files and libraries with different | 3231 no known issues with mixing object files and libraries with different |
3017 debugging formats. Otherwise, this release of GCC should now match more | 3232 debugging formats. Otherwise, this release of GCC should now match |
3018 of the configuration used in the stock FreeBSD configuration of GCC@. In | 3233 more of the configuration used in the stock FreeBSD configuration of |
3019 particular, @option{--enable-threads} is now configured by default. | 3234 GCC@. In particular, @option{--enable-threads} is now configured by |
3020 However, as a general user, do not attempt to replace the system | 3235 default. However, as a general user, do not attempt to replace the |
3021 compiler with this release. Known to bootstrap and check with good | 3236 system compiler with this release. Known to bootstrap and check with |
3022 results on FreeBSD 4.9-STABLE and 5-CURRENT@. In the past, known to | 3237 good results on FreeBSD 7.2-STABLE@. In the past, known to bootstrap |
3023 bootstrap and check with good results on FreeBSD 3.0, 3.4, 4.0, 4.2, | 3238 and check with good results on FreeBSD 3.0, 3.4, 4.0, 4.2, 4.3, 4.4, |
3024 4.3, 4.4, 4.5, 4.8-STABLE@. | 3239 4.5, 4.8, 4.9 and 5-CURRENT@. |
3025 | 3240 |
3026 In principle, @option{--enable-threads} is now compatible with | 3241 The version of binutils installed in @file{/usr/bin} probably works |
3027 @option{--enable-libgcj} on FreeBSD@. However, it has only been built | 3242 with this release of GCC@. Bootstrapping against the latest GNU |
3028 and tested on @samp{i386-*-freebsd[45]} and @samp{alpha-*-freebsd[45]}. | 3243 binutils and/or the version found in @file{/usr/ports/devel/binutils} has |
3029 The static | 3244 been known to enable additional features and improve overall testsuite |
3030 library may be incorrectly built (symbols are missing at link time). | 3245 results. However, it is currently known that boehm-gc (which itself |
3031 There is a rare timing-based startup hang (probably involves an | 3246 is required for java) may not configure properly on FreeBSD prior to |
3032 assumption about the thread library). Multi-threaded boehm-gc (required for | 3247 the FreeBSD 7.0 release with GNU binutils after 2.16.1. |
3033 libjava) exposes severe threaded signal-handling bugs on FreeBSD before | |
3034 4.5-RELEASE@. Other CPU architectures | |
3035 supported by FreeBSD will require additional configuration tuning in, at | |
3036 the very least, both boehm-gc and libffi. | |
3037 | |
3038 Shared @file{libgcc_s.so} is now built and installed by default. | |
3039 | 3248 |
3040 @html | 3249 @html |
3041 <hr /> | 3250 <hr /> |
3042 @end html | 3251 @end html |
3043 @heading @anchor{h8300-hms}h8300-hms | 3252 @heading @anchor{h8300-hms}h8300-hms |
3312 <hr /> | 3521 <hr /> |
3313 <!-- rs6000-ibm-aix*, powerpc-ibm-aix* --> | 3522 <!-- rs6000-ibm-aix*, powerpc-ibm-aix* --> |
3314 @end html | 3523 @end html |
3315 @heading @anchor{x-ibm-aix}*-ibm-aix* | 3524 @heading @anchor{x-ibm-aix}*-ibm-aix* |
3316 Support for AIX version 3 and older was discontinued in GCC 3.4. | 3525 Support for AIX version 3 and older was discontinued in GCC 3.4. |
3526 Support for AIX version 4.2 and older was discontinued in GCC 4.5. | |
3317 | 3527 |
3318 ``out of memory'' bootstrap failures may indicate a problem with | 3528 ``out of memory'' bootstrap failures may indicate a problem with |
3319 process resource limits (ulimit). Hard limits are configured in the | 3529 process resource limits (ulimit). Hard limits are configured in the |
3320 @file{/etc/security/limits} system configuration file. | 3530 @file{/etc/security/limits} system configuration file. |
3531 | |
3532 GCC can bootstrap with recent versions of IBM XLC, but bootstrapping | |
3533 with an earlier release of GCC is recommended. Bootstrapping with XLC | |
3534 requires a larger data segment, which can be enabled through the | |
3535 @var{LDR_CNTRL} environment variable, e.g., | |
3536 | |
3537 @smallexample | |
3538 % LDR_CNTRL=MAXDATA=0x50000000 | |
3539 % export LDR_CNTRL | |
3540 @end smallexample | |
3541 | |
3542 One can start with a pre-compiled version of GCC to build from | |
3543 sources. One may delete GCC's ``fixed'' header files when starting | |
3544 with a version of GCC built for an earlier release of AIX. | |
3321 | 3545 |
3322 To speed up the configuration phases of bootstrapping and installing GCC, | 3546 To speed up the configuration phases of bootstrapping and installing GCC, |
3323 one may use GNU Bash instead of AIX @command{/bin/sh}, e.g., | 3547 one may use GNU Bash instead of AIX @command{/bin/sh}, e.g., |
3324 | 3548 |
3325 @smallexample | 3549 @smallexample |
3346 does not provide a definition that will confuse @command{configure}. | 3570 does not provide a definition that will confuse @command{configure}. |
3347 If this error occurs during stage2 or later, then the problem most likely | 3571 If this error occurs during stage2 or later, then the problem most likely |
3348 is the version of Make (see above). | 3572 is the version of Make (see above). |
3349 | 3573 |
3350 The native @command{as} and @command{ld} are recommended for bootstrapping | 3574 The native @command{as} and @command{ld} are recommended for bootstrapping |
3351 on AIX 4 and required for bootstrapping on AIX 5L@. The GNU Assembler | 3575 on AIX@. The GNU Assembler, GNU Linker, and GNU Binutils version 2.20 |
3352 reports that it supports WEAK symbols on AIX 4, which causes GCC to try to | 3576 is required to bootstrap on AIX 5@. The native AIX tools do |
3353 utilize weak symbol functionality although it is not supported. The GNU | 3577 interoperate with GCC@. |
3354 Assembler and Linker do not support AIX 5L sufficiently to bootstrap GCC@. | |
3355 The native AIX tools do interoperate with GCC@. | |
3356 | 3578 |
3357 Building @file{libstdc++.a} requires a fix for an AIX Assembler bug | 3579 Building @file{libstdc++.a} requires a fix for an AIX Assembler bug |
3358 APAR IY26685 (AIX 4.3) or APAR IY25528 (AIX 5.1). It also requires a | 3580 APAR IY26685 (AIX 4.3) or APAR IY25528 (AIX 5.1). It also requires a |
3359 fix for another AIX Assembler bug and a co-dependent AIX Archiver fix | 3581 fix for another AIX Assembler bug and a co-dependent AIX Archiver fix |
3360 referenced as APAR IY53606 (AIX 5.2) or a APAR IY54774 (AIX 5.1) | 3582 referenced as APAR IY53606 (AIX 5.2) or as APAR IY54774 (AIX 5.1) |
3361 | 3583 |
3362 @samp{libstdc++} in GCC 3.4 increments the major version number of the | 3584 @samp{libstdc++} in GCC 3.4 increments the major version number of the |
3363 shared object and GCC installation places the @file{libstdc++.a} | 3585 shared object and GCC installation places the @file{libstdc++.a} |
3364 shared library in a common location which will overwrite the and GCC | 3586 shared library in a common location which will overwrite the and GCC |
3365 3.3 version of the shared library. Applications either need to be | 3587 3.3 version of the shared library. Applications either need to be |
3432 separating decimal fractions). There have been problems reported where | 3654 separating decimal fractions). There have been problems reported where |
3433 GCC does not produce the same floating-point formats that the assembler | 3655 GCC does not produce the same floating-point formats that the assembler |
3434 expects. If one encounters this problem, set the @env{LANG} | 3656 expects. If one encounters this problem, set the @env{LANG} |
3435 environment variable to @samp{C} or @samp{En_US}. | 3657 environment variable to @samp{C} or @samp{En_US}. |
3436 | 3658 |
3437 By default, GCC for AIX 4.1 and above produces code that can be used on | |
3438 both Power or PowerPC processors. | |
3439 | |
3440 A default can be specified with the @option{-mcpu=@var{cpu_type}} | 3659 A default can be specified with the @option{-mcpu=@var{cpu_type}} |
3441 switch and using the configure option @option{--with-cpu-@var{cpu_type}}. | 3660 switch and using the configure option @option{--with-cpu-@var{cpu_type}}. |
3442 | 3661 |
3443 @html | 3662 @html |
3444 <hr /> | 3663 <hr /> |
3448 applications. There are no standard Unix configurations. | 3667 applications. There are no standard Unix configurations. |
3449 | 3668 |
3450 @html | 3669 @html |
3451 <hr /> | 3670 <hr /> |
3452 @end html | 3671 @end html |
3672 @heading @anchor{lm32-x-elf}lm32-*-elf | |
3673 Lattice Mico32 processor. | |
3674 This configuration is intended for embedded systems. | |
3675 | |
3676 @html | |
3677 <hr /> | |
3678 @end html | |
3679 @heading @anchor{lm32-x-uclinux}lm32-*-uclinux | |
3680 Lattice Mico32 processor. | |
3681 This configuration is intended for embedded systems running uClinux. | |
3682 | |
3683 @html | |
3684 <hr /> | |
3685 @end html | |
3453 @heading @anchor{m32c-x-elf}m32c-*-elf | 3686 @heading @anchor{m32c-x-elf}m32c-*-elf |
3454 Renesas M32C processor. | 3687 Renesas M32C processor. |
3455 This configuration is intended for embedded systems. | 3688 This configuration is intended for embedded systems. |
3456 | 3689 |
3457 @html | 3690 @html |
3477 | 3710 |
3478 @html | 3711 @html |
3479 <hr /> | 3712 <hr /> |
3480 @end html | 3713 @end html |
3481 @heading @anchor{m68k-x-x}m68k-*-* | 3714 @heading @anchor{m68k-x-x}m68k-*-* |
3482 By default, @samp{m68k-*-aout}, @samp{m68k-*-coff*}, | 3715 By default, |
3483 @samp{m68k-*-elf*}, @samp{m68k-*-rtems}, @samp{m68k-*-uclinux} and | 3716 @samp{m68k-*-elf*}, @samp{m68k-*-rtems}, @samp{m68k-*-uclinux} and |
3484 @samp{m68k-*-linux} | 3717 @samp{m68k-*-linux} |
3485 build libraries for both M680x0 and ColdFire processors. If you only | 3718 build libraries for both M680x0 and ColdFire processors. If you only |
3486 need the M680x0 libraries, you can omit the ColdFire ones by passing | 3719 need the M680x0 libraries, you can omit the ColdFire ones by passing |
3487 @option{--with-arch=m68k} to @command{configure}. Alternatively, you | 3720 @option{--with-arch=m68k} to @command{configure}. Alternatively, you |
3509 @samp{m68k-linux-gnu} ABI rather than the @samp{m68k-elf} ABI. | 3742 @samp{m68k-linux-gnu} ABI rather than the @samp{m68k-elf} ABI. |
3510 It also added improved support for C++ and flat shared libraries, | 3743 It also added improved support for C++ and flat shared libraries, |
3511 both of which were ABI changes. However, you can still use the | 3744 both of which were ABI changes. However, you can still use the |
3512 original ABI by configuring for @samp{m68k-uclinuxoldabi} or | 3745 original ABI by configuring for @samp{m68k-uclinuxoldabi} or |
3513 @samp{m68k-@var{vendor}-uclinuxoldabi}. | 3746 @samp{m68k-@var{vendor}-uclinuxoldabi}. |
3747 | |
3748 | |
3749 @html | |
3750 <hr /> | |
3751 @end html | |
3752 @heading @anchor{mep-x-elf}mep-*-elf | |
3753 Toshiba Media embedded Processor. | |
3754 This configuration is intended for embedded systems. | |
3514 | 3755 |
3515 @html | 3756 @html |
3516 <hr /> | 3757 <hr /> |
3517 @end html | 3758 @end html |
3518 @heading @anchor{mips-x-x}mips-*-* | 3759 @heading @anchor{mips-x-x}mips-*-* |
3596 @smallexample | 3837 @smallexample |
3597 % CONFIG_SHELL=/bin/ksh | 3838 % CONFIG_SHELL=/bin/ksh |
3598 % export CONFIG_SHELL | 3839 % export CONFIG_SHELL |
3599 @end smallexample | 3840 @end smallexample |
3600 | 3841 |
3842 @noindent | |
3601 before starting the build. | 3843 before starting the build. |
3602 | 3844 |
3603 @html | 3845 @html |
3604 <hr /> | 3846 <hr /> |
3605 @end html | 3847 @end html |
3612 | 3854 |
3613 @smallexample | 3855 @smallexample |
3614 test.o: ELF N32 MSB @dots{} | 3856 test.o: ELF N32 MSB @dots{} |
3615 @end smallexample | 3857 @end smallexample |
3616 | 3858 |
3859 @noindent | |
3617 If you see: | 3860 If you see: |
3618 | 3861 |
3619 @smallexample | 3862 @smallexample |
3620 test.o: ELF 32-bit MSB @dots{} | 3863 test.o: ELF 32-bit MSB @dots{} |
3621 @end smallexample | 3864 @end smallexample |
3622 | 3865 |
3866 @noindent | |
3623 or | 3867 or |
3624 | 3868 |
3625 @smallexample | 3869 @smallexample |
3626 test.o: ELF 64-bit MSB @dots{} | 3870 test.o: ELF 64-bit MSB @dots{} |
3627 @end smallexample | 3871 @end smallexample |
3628 | 3872 |
3873 @noindent | |
3629 then your version of @command{cc} uses the O32 or N64 ABI by default. You | 3874 then your version of @command{cc} uses the O32 or N64 ABI by default. You |
3630 should set the environment variable @env{CC} to @samp{cc -n32} | 3875 should set the environment variable @env{CC} to @samp{cc -n32} |
3631 before configuring GCC@. | 3876 before configuring GCC@. |
3632 | 3877 |
3633 If you want the resulting @command{gcc} to run on old 32-bit systems | 3878 If you want the resulting @command{gcc} to run on old 32-bit systems |
3640 | 3885 |
3641 @smallexample | 3886 @smallexample |
3642 test.o: ELF N32 MSB mips-3 @dots{} | 3887 test.o: ELF N32 MSB mips-3 @dots{} |
3643 @end smallexample | 3888 @end smallexample |
3644 | 3889 |
3890 @noindent | |
3645 If you get: | 3891 If you get: |
3646 | 3892 |
3647 @smallexample | 3893 @smallexample |
3648 test.o: ELF N32 MSB mips-4 @dots{} | 3894 test.o: ELF N32 MSB mips-4 @dots{} |
3649 @end smallexample | 3895 @end smallexample |
3650 | 3896 |
3897 @noindent | |
3651 instead, you should set the environment variable @env{CC} to @samp{cc | 3898 instead, you should set the environment variable @env{CC} to @samp{cc |
3652 -n32 -mips3} or @samp{gcc -mips3} respectively before configuring GCC@. | 3899 -n32 -mips3} or @samp{gcc -mips3} respectively before configuring GCC@. |
3653 | 3900 |
3654 MIPSpro C 7.4 may cause bootstrap failures, due to a bug when inlining | 3901 MIPSpro C 7.4 may cause bootstrap failures, due to a bug when inlining |
3655 @code{memcmp}. Either add @code{-U__INLINE_INTRINSICS} to the @env{CC} | 3902 @code{memcmp}. Either add @code{-U__INLINE_INTRINSICS} to the @env{CC} |
3685 information about using GCC on IRIX platforms. | 3932 information about using GCC on IRIX platforms. |
3686 | 3933 |
3687 @html | 3934 @html |
3688 <hr /> | 3935 <hr /> |
3689 @end html | 3936 @end html |
3937 @heading @anchor{moxie-x-elf}moxie-*-elf | |
3938 The moxie processor. See @uref{http://moxielogic.org/} for more | |
3939 information about this processor. | |
3940 | |
3941 @html | |
3942 <hr /> | |
3943 @end html | |
3690 @heading @anchor{powerpc-x-x}powerpc-*-* | 3944 @heading @anchor{powerpc-x-x}powerpc-*-* |
3691 | 3945 |
3692 You can specify a default version for the @option{-mcpu=@var{cpu_type}} | 3946 You can specify a default version for the @option{-mcpu=@var{cpu_type}} |
3693 switch by using the configure option @option{--with-cpu-@var{cpu_type}}. | 3947 switch by using the configure option @option{--with-cpu-@var{cpu_type}}. |
3694 | 3948 |
3761 @html | 4015 @html |
3762 <hr /> | 4016 <hr /> |
3763 @end html | 4017 @end html |
3764 @heading @anchor{powerpcle-x-eabi}powerpcle-*-eabi | 4018 @heading @anchor{powerpcle-x-eabi}powerpcle-*-eabi |
3765 Embedded PowerPC system in little endian mode. | 4019 Embedded PowerPC system in little endian mode. |
4020 | |
4021 @html | |
4022 <hr /> | |
4023 @end html | |
4024 @heading @anchor{rx-x-elf}rx-*-elf | |
4025 The Renesas RX processor. See | |
4026 @uref{http://eu.renesas.com/fmwk.jsp?cnt=rx600_series_landing.jsp&fp=/products/mpumcu/rx_family/rx600_series} | |
4027 for more information about this processor. | |
3766 | 4028 |
3767 @html | 4029 @html |
3768 <hr /> | 4030 <hr /> |
3769 @end html | 4031 @end html |
3770 @heading @anchor{s390-x-linux}s390-*-linux* | 4032 @heading @anchor{s390-x-linux}s390-*-linux* |
3913 compiler. This is Sun bug 4974440. This is fixed with patch 112760-07. | 4175 compiler. This is Sun bug 4974440. This is fixed with patch 112760-07. |
3914 | 4176 |
3915 GCC 3.4 changed the default debugging format from STABS to DWARF-2 for | 4177 GCC 3.4 changed the default debugging format from STABS to DWARF-2 for |
3916 32-bit code on Solaris 7 and later. If you use the Sun assembler, this | 4178 32-bit code on Solaris 7 and later. If you use the Sun assembler, this |
3917 change apparently runs afoul of Sun bug 4910101 (which is referenced as | 4179 change apparently runs afoul of Sun bug 4910101 (which is referenced as |
3918 a x86-only problem by Sun, probably because they do not use DWARF-2). | 4180 an x86-only problem by Sun, probably because they do not use DWARF-2). |
3919 A symptom of the problem is that you cannot compile C++ programs like | 4181 A symptom of the problem is that you cannot compile C++ programs like |
3920 @command{groff} 1.19.1 without getting messages similar to the following: | 4182 @command{groff} 1.19.1 without getting messages similar to the following: |
3921 | 4183 |
3922 @smallexample | 4184 @smallexample |
3923 ld: warning: relocation error: R_SPARC_UA32: @dots{} | 4185 ld: warning: relocation error: R_SPARC_UA32: @dots{} |
4139 @itemize | 4401 @itemize |
4140 @item Cygwin @uref{#x-x-cygwin,,*-*-cygwin}: Cygwin provides a user-space | 4402 @item Cygwin @uref{#x-x-cygwin,,*-*-cygwin}: Cygwin provides a user-space |
4141 Linux API emulation layer in the Win32 subsystem. | 4403 Linux API emulation layer in the Win32 subsystem. |
4142 @item Interix @uref{#x-x-interix,,*-*-interix}: The Interix subsystem | 4404 @item Interix @uref{#x-x-interix,,*-*-interix}: The Interix subsystem |
4143 provides native support for POSIX. | 4405 provides native support for POSIX. |
4144 @item MinGW @uref{#x-x-mingw,,*-*-mingw}: MinGW is a native GCC port for | 4406 @item MinGW @uref{#x-x-mingw32,,*-*-mingw32}: MinGW is a native GCC port for |
4145 the Win32 subsystem that provides a subset of POSIX. | 4407 the Win32 subsystem that provides a subset of POSIX. |
4146 @item MKS i386-pc-mks: NuTCracker from MKS. See | 4408 @item MKS i386-pc-mks: NuTCracker from MKS. See |
4147 @uref{http://www.mkssoftware.com/} for more information. | 4409 @uref{http://www.mkssoftware.com/} for more information. |
4148 @end itemize | 4410 @end itemize |
4149 | 4411 |
4205 @heading @anchor{x-x-mingw32}*-*-mingw32 | 4467 @heading @anchor{x-x-mingw32}*-*-mingw32 |
4206 | 4468 |
4207 GCC will build with and support only MinGW runtime 3.12 and later. | 4469 GCC will build with and support only MinGW runtime 3.12 and later. |
4208 Earlier versions of headers are incompatible with the new default semantics | 4470 Earlier versions of headers are incompatible with the new default semantics |
4209 of @code{extern inline} in @code{-std=c99} and @code{-std=gnu99} modes. | 4471 of @code{extern inline} in @code{-std=c99} and @code{-std=gnu99} modes. |
4210 | |
4211 @html | |
4212 <hr /> | |
4213 @end html | |
4214 @heading @anchor{os2}OS/2 | |
4215 | |
4216 GCC does not currently support OS/2. However, Andrew Zabolotny has been | |
4217 working on a generic OS/2 port with pgcc. The current code can be found | |
4218 at @uref{http://www.goof.com/pcg/os2/,,http://www.goof.com/pcg/os2/}. | |
4219 | 4472 |
4220 @html | 4473 @html |
4221 <hr /> | 4474 <hr /> |
4222 @end html | 4475 @end html |
4223 @heading @anchor{older}Older systems | 4476 @heading @anchor{older}Older systems |