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