comparison gcc/doc/install.texi @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children 1830386684a0
comparison
equal deleted inserted replaced
111:04ced10e8804 131:84e7813d76e9
42 @end ifset 42 @end ifset
43 @ifset gfdlhtml 43 @ifset gfdlhtml
44 @settitle Installing GCC: GNU Free Documentation License 44 @settitle Installing GCC: GNU Free Documentation License
45 @end ifset 45 @end ifset
46 46
47 @c Copyright (C) 1988-2017 Free Software Foundation, Inc. 47 @c Copyright (C) 1988-2018 Free Software Foundation, Inc.
48 @c *** Converted to texinfo by Dean Wakerley, dean@wakerley.com 48 @c *** Converted to texinfo by Dean Wakerley, dean@wakerley.com
49 49
50 @c IMPORTANT: whenever you modify this file, run `install.texi2html' to 50 @c IMPORTANT: whenever you modify this file, run `install.texi2html' to
51 @c test the generation of HTML documents for the gcc.gnu.org web pages. 51 @c test the generation of HTML documents for the gcc.gnu.org web pages.
52 @c 52 @c
67 @set gfdlhtml 67 @set gfdlhtml
68 @end ifnothtml 68 @end ifnothtml
69 69
70 @c Part 2 Summary Description and Copyright 70 @c Part 2 Summary Description and Copyright
71 @copying 71 @copying
72 Copyright @copyright{} 1988-2017 Free Software Foundation, Inc. 72 Copyright @copyright{} 1988-2018 Free Software Foundation, Inc.
73 @sp 1 73 @sp 1
74 Permission is granted to copy, distribute and/or modify this document 74 Permission is granted to copy, distribute and/or modify this document
75 under the terms of the GNU Free Documentation License, Version 1.3 or 75 under the terms of the GNU Free Documentation License, Version 1.3 or
76 any later version published by the Free Software Foundation; with no 76 any later version published by the Free Software Foundation; with no
77 Invariant Sections, the Front-Cover texts being (a) (see below), and 77 Invariant Sections, the Front-Cover texts being (a) (see below), and
322 322
323 Necessary (only on some platforms) to untar the source code. Many 323 Necessary (only on some platforms) to untar the source code. Many
324 systems' @command{tar} programs will also work, only try GNU 324 systems' @command{tar} programs will also work, only try GNU
325 @command{tar} if you have problems. 325 @command{tar} if you have problems.
326 326
327 @item Perl version 5.6.1 (or later) 327 @item Perl version between 5.6.1 and 5.6.24
328 328
329 Necessary when targeting Darwin, building @samp{libstdc++}, 329 Necessary when targeting Darwin, building @samp{libstdc++},
330 and not using @option{--disable-symvers}. 330 and not using @option{--disable-symvers}.
331 Necessary when targeting Solaris 2 with Sun @command{ld} and not using 331 Necessary when targeting Solaris 2 with Sun @command{ld} and not using
332 @option{--disable-symvers}. The bundled @command{perl} in Solaris@tie{}8 332 @option{--disable-symvers}. The bundled @command{perl} in Solaris@tie{}8
335 Necessary when regenerating @file{Makefile} dependencies in libiberty. 335 Necessary when regenerating @file{Makefile} dependencies in libiberty.
336 Necessary when regenerating @file{libiberty/functions.texi}. 336 Necessary when regenerating @file{libiberty/functions.texi}.
337 Necessary when generating manpages from Texinfo manuals. 337 Necessary when generating manpages from Texinfo manuals.
338 Used by various scripts to generate some files included in SVN (mainly 338 Used by various scripts to generate some files included in SVN (mainly
339 Unicode-related and rarely changing) from source tables. 339 Unicode-related and rarely changing) from source tables.
340
341 Used by @command{automake}.
340 342
341 @end table 343 @end table
342 344
343 Several support libraries are necessary to build GCC, some are required, 345 Several support libraries are necessary to build GCC, some are required,
344 others optional. While any sufficiently new version of required tools 346 others optional. While any sufficiently new version of required tools
362 download_prerequisites installs. 364 download_prerequisites installs.
363 365
364 @item MPFR Library version 2.4.2 (or later) 366 @item MPFR Library version 2.4.2 (or later)
365 367
366 Necessary to build GCC@. It can be downloaded from 368 Necessary to build GCC@. It can be downloaded from
367 @uref{http://www.mpfr.org/}. If an MPFR source distribution is found 369 @uref{https://www.mpfr.org}. If an MPFR source distribution is found
368 in a subdirectory of your GCC sources named @file{mpfr}, it will be 370 in a subdirectory of your GCC sources named @file{mpfr}, it will be
369 built together with GCC. Alternatively, if MPFR is already installed 371 built together with GCC. Alternatively, if MPFR is already installed
370 but it is not in your default library search path, the 372 but it is not in your default library search path, the
371 @option{--with-mpfr} configure option should be used. See also 373 @option{--with-mpfr} configure option should be used. See also
372 @option{--with-mpfr-lib} and @option{--with-mpfr-include}. 374 @option{--with-mpfr-lib} and @option{--with-mpfr-include}.
374 download_prerequisites installs. 376 download_prerequisites installs.
375 377
376 @item MPC Library version 0.8.1 (or later) 378 @item MPC Library version 0.8.1 (or later)
377 379
378 Necessary to build GCC@. It can be downloaded from 380 Necessary to build GCC@. It can be downloaded from
379 @uref{http://www.multiprecision.org/}. If an MPC source distribution 381 @uref{http://www.multiprecision.org/mpc/}. If an MPC source distribution
380 is found in a subdirectory of your GCC sources named @file{mpc}, it 382 is found in a subdirectory of your GCC sources named @file{mpc}, it
381 will be built together with GCC. Alternatively, if MPC is already 383 will be built together with GCC. Alternatively, if MPC is already
382 installed but it is not in your default library search path, the 384 installed but it is not in your default library search path, the
383 @option{--with-mpc} configure option should be used. See also 385 @option{--with-mpc} configure option should be used. See also
384 @option{--with-mpc-lib} and @option{--with-mpc-include}. 386 @option{--with-mpc-lib} and @option{--with-mpc-include}.
417 419
418 For directories that use automake, GCC requires the latest release in 420 For directories that use automake, GCC requires the latest release in
419 the 1.11 series, which is currently 1.11.6. When regenerating a directory 421 the 1.11 series, which is currently 1.11.6. When regenerating a directory
420 to a newer version, please update all the directories using an older 1.11 422 to a newer version, please update all the directories using an older 1.11
421 to the latest released version. 423 to the latest released version.
424
425 Note that @command{automake} 1.11.6 is incompatible with
426 @command{perl} version 5.6.26.
422 427
423 @item gettext version 0.14.5 (or later) 428 @item gettext version 0.14.5 (or later)
424 429
425 Needed to regenerate @file{gcc.pot}. 430 Needed to regenerate @file{gcc.pot}.
426 431
1005 @item --with-stabs 1010 @item --with-stabs
1006 Specify that stabs debugging 1011 Specify that stabs debugging
1007 information should be used instead of whatever format the host normally 1012 information should be used instead of whatever format the host normally
1008 uses. Normally GCC uses the same debug format as the host system. 1013 uses. Normally GCC uses the same debug format as the host system.
1009 1014
1010 On MIPS based systems and on Alphas, you must specify whether you want
1011 GCC to create the normal ECOFF debugging format, or to use BSD-style
1012 stabs passed through the ECOFF symbol table. The normal ECOFF debug
1013 format cannot fully handle languages other than C@. BSD stabs format can
1014 handle other languages, but it only works with the GNU debugger GDB@.
1015
1016 Normally, GCC uses the ECOFF debugging format by default; if you
1017 prefer BSD stabs, specify @option{--with-stabs} when you configure GCC@.
1018
1019 No matter which default you choose when you configure GCC, the user
1020 can use the @option{-gcoff} and @option{-gstabs+} options to specify explicitly
1021 the debug format for a particular compilation.
1022
1023 @option{--with-stabs} is meaningful on the ISC system on the 386, also, if
1024 @option{--with-gas} is used. It selects use of stabs debugging
1025 information embedded in COFF output. This kind of debugging information
1026 supports C++ well; ordinary COFF debugging information does not.
1027
1028 @option{--with-stabs} is also meaningful on 386 systems running SVR4. It
1029 selects use of stabs debugging information embedded in ELF output. The
1030 C++ compiler currently (2.6.0) does not support the DWARF debugging
1031 information normally used on 386 SVR4 platforms; stabs provide a
1032 workable alternative. This requires gas and gdb, as the normal SVR4
1033 tools can not generate or interpret stabs.
1034
1035 @item --with-tls=@var{dialect} 1015 @item --with-tls=@var{dialect}
1036 Specify the default TLS dialect, for systems were there is a choice. 1016 Specify the default TLS dialect, for systems were there is a choice.
1037 For ARM targets, possible values for @var{dialect} are @code{gnu} or 1017 For ARM targets, possible values for @var{dialect} are @code{gnu} or
1038 @code{gnu2}, which select between the original GNU dialect and the GNU TLS 1018 @code{gnu2}, which select between the original GNU dialect and the GNU TLS
1039 descriptor-based dialect. 1019 descriptor-based dialect.
1062 If vtable verification is disabled, then libstdc++ is not built with its 1042 If vtable verification is disabled, then libstdc++ is not built with its
1063 virtual calls in verifiable mode at all. However the libvtv library will 1043 virtual calls in verifiable mode at all. However the libvtv library will
1064 still be built (see @option{--disable-libvtv} to turn off building libvtv). 1044 still be built (see @option{--disable-libvtv} to turn off building libvtv).
1065 @option{--disable-vtable-verify} is the default. 1045 @option{--disable-vtable-verify} is the default.
1066 1046
1047 @item --disable-gcov
1048 Specify that the run-time library used for coverage analysis
1049 and associated host tools should not be built.
1050
1067 @item --disable-multilib 1051 @item --disable-multilib
1068 Specify that multiple target 1052 Specify that multiple target
1069 libraries to support different target variants, calling 1053 libraries to support different target variants, calling
1070 conventions, etc.@: should not be built. The default is to build a 1054 conventions, etc.@: should not be built. The default is to build a
1071 predefined set of them. 1055 predefined set of them.
1090 1074
1091 @item --with-multilib-list=@var{list} 1075 @item --with-multilib-list=@var{list}
1092 @itemx --without-multilib-list 1076 @itemx --without-multilib-list
1093 Specify what multilibs to build. @var{list} is a comma separated list of 1077 Specify what multilibs to build. @var{list} is a comma separated list of
1094 values, possibly consisting of a single value. Currently only implemented 1078 values, possibly consisting of a single value. Currently only implemented
1095 for arm*-*-*, sh*-*-* and x86-64-*-linux*. The accepted values and meaning 1079 for arm*-*-*, riscv*-*-*, sh*-*-* and x86-64-*-linux*. The accepted
1096 for each target is given below. 1080 values and meaning for each target is given below.
1097 1081
1098 @table @code 1082 @table @code
1099 @item arm*-*-* 1083 @item arm*-*-*
1100 @var{list} is a comma separated list of @code{aprofile} and @code{rmprofile} 1084 @var{list} is a comma separated list of @code{aprofile} and @code{rmprofile}
1101 to build multilibs for A or R and M architecture profiles respectively. Note 1085 to build multilibs for A or R and M architecture profiles respectively. Note
1146 @tab @code{-mfloat-abi=soft}@* 1130 @tab @code{-mfloat-abi=soft}@*
1147 @code{-mfloat-abi=softfp}@* 1131 @code{-mfloat-abi=softfp}@*
1148 @code{-mfloat-abi=hard} 1132 @code{-mfloat-abi=hard}
1149 @end multitable 1133 @end multitable
1150 1134
1135 @item riscv*-*-*
1136 @var{list} is a single ABI name. The target architecture must be either
1137 @code{rv32gc} or @code{rv64gc}. This will build a single multilib for the
1138 specified architecture and ABI pair. If @code{--with-multilib-list} is not
1139 given, then a default set of multilibs is selected based on the value of
1140 @option{--target}. This is usually a large set of multilibs.
1141
1151 @item sh*-*-* 1142 @item sh*-*-*
1152 @var{list} is a comma separated list of CPU names. These must be of the 1143 @var{list} is a comma separated list of CPU names. These must be of the
1153 form @code{sh*} or @code{m*} (in which case they match the compiler option 1144 form @code{sh*} or @code{m*} (in which case they match the compiler option
1154 for that processor). The list should not contain any endian options - 1145 for that processor). The list should not contain any endian options -
1155 these are handled by @option{--with-endian}. 1146 these are handled by @option{--with-endian}.
1420 @item --with-mips-plt 1411 @item --with-mips-plt
1421 On MIPS targets, make use of copy relocations and PLTs. 1412 On MIPS targets, make use of copy relocations and PLTs.
1422 These features are extensions to the traditional 1413 These features are extensions to the traditional
1423 SVR4-based MIPS ABIs and require support from GNU binutils 1414 SVR4-based MIPS ABIs and require support from GNU binutils
1424 and the runtime C library. 1415 and the runtime C library.
1416
1417 @item --with-stack-clash-protection-guard-size=@var{size}
1418 On certain targets this option sets the default stack clash protection guard
1419 size as a power of two in bytes. On AArch64 @var{size} is required to be either
1420 12 (4KB) or 16 (64KB).
1425 1421
1426 @item --enable-__cxa_atexit 1422 @item --enable-__cxa_atexit
1427 Define if you want to use __cxa_atexit, rather than atexit, to 1423 Define if you want to use __cxa_atexit, rather than atexit, to
1428 register C++ destructors for local statics and global objects. 1424 register C++ destructors for local statics and global objects.
1429 This is essential for fully standards-compliant handling of 1425 This is essential for fully standards-compliant handling of
1663 Specify that the run-time libraries for the various sanitizers should 1659 Specify that the run-time libraries for the various sanitizers should
1664 not be built. 1660 not be built.
1665 1661
1666 @item --disable-libssp 1662 @item --disable-libssp
1667 Specify that the run-time libraries for stack smashing protection 1663 Specify that the run-time libraries for stack smashing protection
1668 should not be built. 1664 should not be built or linked against. On many targets library support
1665 is provided by the C library instead.
1669 1666
1670 @item --disable-libquadmath 1667 @item --disable-libquadmath
1671 Specify that the GCC quad-precision math library should not be built. 1668 Specify that the GCC quad-precision math library should not be built.
1672 On some systems, the library is required to be linkable when building 1669 On some systems, the library is required to be linkable when building
1673 the Fortran front end, unless @option{--disable-libquadmath-support} 1670 the Fortran front end, unless @option{--disable-libquadmath-support}
1734 Using the GNU Compiler Collection (GCC)}, 1731 Using the GNU Compiler Collection (GCC)},
1735 @end ifnothtml 1732 @end ifnothtml
1736 @ifhtml 1733 @ifhtml
1737 See ``i386 and x86-64 Options'' in the main manual 1734 See ``i386 and x86-64 Options'' in the main manual
1738 @end ifhtml 1735 @end ifhtml
1736
1737 @item --enable-large-address-aware
1738 The @option{--enable-large-address-aware} option arranges for MinGW
1739 executables to be linked using the @option{--large-address-aware}
1740 option, that enables the use of more than 2GB of memory. If GCC is
1741 configured with this option, its effects can be reversed by passing the
1742 @option{-Wl,--disable-large-address-aware} option to the so-configured
1743 compiler driver.
1739 1744
1740 @item --enable-win32-registry 1745 @item --enable-win32-registry
1741 @itemx --enable-win32-registry=@var{key} 1746 @itemx --enable-win32-registry=@var{key}
1742 @itemx --disable-win32-registry 1747 @itemx --disable-win32-registry
1743 The @option{--enable-win32-registry} option enables Microsoft Windows-hosted GCC 1748 The @option{--enable-win32-registry} option enables Microsoft Windows-hosted GCC
1893 GNU/Linux architectures. If using @code{--without-long-double-128}, 1898 GNU/Linux architectures. If using @code{--without-long-double-128},
1894 @code{long double} will be by default 64-bit, the same as @code{double} type. 1899 @code{long double} will be by default 64-bit, the same as @code{double} type.
1895 When neither of these configure options are used, the default will be 1900 When neither of these configure options are used, the default will be
1896 128-bit @code{long double} when built against GNU C Library 2.4 and later, 1901 128-bit @code{long double} when built against GNU C Library 2.4 and later,
1897 64-bit @code{long double} otherwise. 1902 64-bit @code{long double} otherwise.
1903
1904 @item --with-long-double-format=ibm
1905 @itemx --with-long-double-format=ieee
1906 Specify whether @code{long double} uses the IBM extended double format
1907 or the IEEE 128-bit floating point format on PowerPC Linux systems.
1908 This configuration switch will only work on little endian PowerPC
1909 Linux systems and on big endian 64-bit systems where the default cpu
1910 is at least power7 (i.e. @option{--with-cpu=power7},
1911 @option{--with-cpu=power8}, or @option{--with-cpu=power9} is used).
1912
1913 If you use the @option{--with-long-double-64} configuration option,
1914 the @option{--with-long-double-format=ibm} and
1915 @option{--with-long-double-format=ieee} options are ignored.
1916
1917 The default @code{long double} format is to use IBM extended double.
1918 Until all of the libraries are converted to use IEEE 128-bit floating
1919 point, it is not recommended to use
1920 @option{--with-long-double-format=ieee}.
1921
1922 On little endian PowerPC Linux systems, if you explicitly set the
1923 @code{long double} type, it will build multilibs to allow you to
1924 select either @code{long double} format, unless you disable multilibs
1925 with the @code{--disable-multilib} option. At present,
1926 @code{long double} multilibs are not built on big endian PowerPC Linux
1927 systems. If you are building multilibs, you will need to configure
1928 the compiler using the @option{--with-system-zlib} option.
1929
1930 If you do not set the @code{long double} type explicitly, no multilibs
1931 will be generated.
1898 1932
1899 @item --enable-fdpic 1933 @item --enable-fdpic
1900 On SH Linux systems, generate ELF FDPIC code. 1934 On SH Linux systems, generate ELF FDPIC code.
1901 1935
1902 @item --with-gmp=@var{pathname} 1936 @item --with-gmp=@var{pathname}
2082 explicitly specify the directory where they are installed. The 2116 explicitly specify the directory where they are installed. The
2083 @option{--with-hsa-runtime=@/@var{hsainstalldir}} option is a 2117 @option{--with-hsa-runtime=@/@var{hsainstalldir}} option is a
2084 shorthand for 2118 shorthand for
2085 @option{--with-hsa-runtime-lib=@/@var{hsainstalldir}/lib} and 2119 @option{--with-hsa-runtime-lib=@/@var{hsainstalldir}/lib} and
2086 @option{--with-hsa-runtime-include=@/@var{hsainstalldir}/include}. 2120 @option{--with-hsa-runtime-include=@/@var{hsainstalldir}/include}.
2121
2122 @item --enable-cet
2123 @itemx --disable-cet
2124 Enable building target run-time libraries with control-flow
2125 instrumentation, see @option{-fcf-protection} option. When
2126 @code{--enable-cet} is specified target libraries are configured
2127 to add @option{-fcf-protection} and, if needed, other target
2128 specific options to a set of building options.
2129
2130 The option is disabled by default. When @code{--enable-cet=auto}
2131 is used, it is enabled on Linux/x86 if target binutils
2132 supports @code{Intel CET} instructions and disabled otherwise.
2133 In this case the target libraries are configured to get additional
2134 @option{-fcf-protection} option.
2087 @end table 2135 @end table
2088 2136
2089 @subheading Cross-Compiler-Specific Options 2137 @subheading Cross-Compiler-Specific Options
2090 The following options only apply to building cross compilers. 2138 The following options only apply to building cross compilers.
2091 2139
2493 @code{bootstrap-debug-lib}. 2541 @code{bootstrap-debug-lib}.
2494 2542
2495 @item @samp{bootstrap-cet} 2543 @item @samp{bootstrap-cet}
2496 This option enables Intel CET for host tools during bootstrapping. 2544 This option enables Intel CET for host tools during bootstrapping.
2497 @samp{BUILD_CONFIG=bootstrap-cet} is equivalent to adding 2545 @samp{BUILD_CONFIG=bootstrap-cet} is equivalent to adding
2498 @option{-fcf-protection -mcet} to @samp{BOOT_CFLAGS}. This option 2546 @option{-fcf-protection} to @samp{BOOT_CFLAGS}. This option
2499 assumes that the host supports Intel CET (e.g. GNU assembler version 2547 assumes that the host supports Intel CET (e.g. GNU assembler version
2500 2.30 or later). 2548 2.30 or later).
2501 2549
2502 @item @samp{bootstrap-time} 2550 @item @samp{bootstrap-time}
2503 Arranges for the run time of each program started by the GCC driver, 2551 Arranges for the run time of each program started by the GCC driver,
3166 @item 3214 @item
3167 @uref{#aarch64-x-x,,aarch64*-*-*} 3215 @uref{#aarch64-x-x,,aarch64*-*-*}
3168 @item 3216 @item
3169 @uref{#alpha-x-x,,alpha*-*-*} 3217 @uref{#alpha-x-x,,alpha*-*-*}
3170 @item 3218 @item
3171 @uref{#alpha-dec-osf51,,alpha*-dec-osf5.1}
3172 @item
3173 @uref{#amd64-x-solaris210,,amd64-*-solaris2.10} 3219 @uref{#amd64-x-solaris210,,amd64-*-solaris2.10}
3174 @item 3220 @item
3175 @uref{#arm-x-eabi,,arm-*-eabi} 3221 @uref{#arm-x-eabi,,arm-*-eabi}
3176 @item 3222 @item
3177 @uref{#avr,,avr} 3223 @uref{#avr,,avr}
3217 @uref{#m68k-uclinux,,m68k-uclinux} 3263 @uref{#m68k-uclinux,,m68k-uclinux}
3218 @item 3264 @item
3219 @uref{#microblaze-x-elf,,microblaze-*-elf} 3265 @uref{#microblaze-x-elf,,microblaze-*-elf}
3220 @item 3266 @item
3221 @uref{#mips-x-x,,mips-*-*} 3267 @uref{#mips-x-x,,mips-*-*}
3222 @item
3223 @uref{#mips-sgi-irix5,,mips-sgi-irix5}
3224 @item
3225 @uref{#mips-sgi-irix6,,mips-sgi-irix6}
3226 @item 3268 @item
3227 @uref{#nds32le-x-elf,,nds32le-*-elf} 3269 @uref{#nds32le-x-elf,,nds32le-*-elf}
3228 @item 3270 @item
3229 @uref{#nds32be-x-elf,,nds32be-*-elf} 3271 @uref{#nds32be-x-elf,,nds32be-*-elf}
3230 @item 3272 @item
3351 <hr /> 3393 <hr />
3352 @end html 3394 @end html
3353 @anchor{alpha-x-x} 3395 @anchor{alpha-x-x}
3354 @heading alpha*-*-* 3396 @heading alpha*-*-*
3355 This section contains general configuration information for all 3397 This section contains general configuration information for all
3356 alpha-based platforms using ELF (in particular, ignore this section for 3398 Alpha-based platforms using ELF@. In addition to reading this
3357 DEC OSF/1, Digital UNIX and Tru64 UNIX)@. In addition to reading this
3358 section, please read all other sections that match your target. 3399 section, please read all other sections that match your target.
3359 3400
3360 We require binutils 2.11.2 or newer. 3401 We require binutils 2.11.2 or newer.
3361 Previous binutils releases had a number of problems with DWARF 2 3402 Previous binutils releases had a number of problems with DWARF 2
3362 debugging information, not the least of which is incorrect linking of 3403 debugging information, not the least of which is incorrect linking of
3363 shared libraries. 3404 shared libraries.
3364
3365 @html
3366 <hr />
3367 @end html
3368 @anchor{alpha-dec-osf51}
3369 @heading alpha*-dec-osf5.1
3370 Systems using processors that implement the DEC Alpha architecture and
3371 are running the DEC/Compaq/HP Unix (DEC OSF/1, Digital UNIX, or Compaq/HP
3372 Tru64 UNIX) operating system, for example the DEC Alpha AXP systems.
3373
3374 Support for Tru64 UNIX V5.1 has been removed in GCC 4.8. As of GCC 4.6,
3375 support for Tru64 UNIX V4.0 and V5.0 has been removed. As of GCC 3.2,
3376 versions before @code{alpha*-dec-osf4} are no longer supported. (These
3377 are the versions which identify themselves as DEC OSF/1.)
3378 3405
3379 @html 3406 @html
3380 <hr /> 3407 <hr />
3381 @end html 3408 @end html
3382 @anchor{amd64-x-solaris210} 3409 @anchor{amd64-x-solaris210}
3804 3831
3805 It is recommended that you configure GCC to use the GNU assembler. The 3832 It is recommended that you configure GCC to use the GNU assembler. The
3806 versions included in Solaris 10, from GNU binutils 2.15 (in 3833 versions included in Solaris 10, from GNU binutils 2.15 (in
3807 @file{/usr/sfw/bin/gas}), and Solaris 11, from GNU binutils 2.19 or 3834 @file{/usr/sfw/bin/gas}), and Solaris 11, from GNU binutils 2.19 or
3808 newer (also available as @file{/usr/bin/gas} and 3835 newer (also available as @file{/usr/bin/gas} and
3809 @file{/usr/gnu/bin/as}), work fine. Please note that the current 3836 @file{/usr/gnu/bin/as}), work fine. The current version, from GNU
3810 version, from GNU binutils 2.26, only works on Solaris 12 when using the 3837 binutils 2.29, is known to work, but the version from GNU binutils 2.26
3811 Solaris linker. On Solaris 10 and 11, you either have to wait for GNU 3838 must be avoided. Recent versions of the Solaris assembler in
3812 binutils 2.26.1 or newer, or stay with GNU binutils 2.25.1. Recent 3839 @file{/usr/ccs/bin/as} work almost as well, though.
3813 versions of the Solaris assembler in @file{/usr/ccs/bin/as} work almost
3814 as well, though.
3815 @c FIXME: as patch requirements? 3840 @c FIXME: as patch requirements?
3816 3841
3817 For linking, the Solaris linker, is preferred. If you want to use the GNU 3842 For linking, the Solaris linker, is preferred. If you want to use the GNU
3818 linker instead, note that due to a packaging bug the version in Solaris 3843 linker instead, note that due to a packaging bug the version in Solaris
3819 10, from GNU binutils 2.15 (in @file{/usr/sfw/bin/gld}), cannot be used, 3844 10, from GNU binutils 2.15 (in @file{/usr/sfw/bin/gld}), cannot be used,
3820 while the version in Solaris 11, from GNU binutils 2.19 or newer (also 3845 while the version in Solaris 11, from GNU binutils 2.19 or newer (also
3821 in @file{/usr/gnu/bin/ld} and @file{/usr/bin/gld}), works, as does the 3846 in @file{/usr/gnu/bin/ld} and @file{/usr/bin/gld}), works, as does the
3822 latest version, from GNU binutils 2.26. 3847 latest version, from GNU binutils 2.29.
3823 3848
3824 To use GNU @command{as}, configure with the options 3849 To use GNU @command{as}, configure with the options
3825 @option{--with-gnu-as --with-as=@//usr/@/sfw/@/bin/@/gas}. It may be necessary 3850 @option{--with-gnu-as --with-as=@//usr/@/sfw/@/bin/@/gas}. It may be necessary
3826 to configure with @option{--without-gnu-ld --with-ld=@//usr/@/ccs/@/bin/@/ld} to 3851 to configure with @option{--without-gnu-ld --with-ld=@//usr/@/ccs/@/bin/@/ld} to
3827 guarantee use of Sun @command{ld}. 3852 guarantee use of Sun @command{ld}.
4165 use traps on systems that support them. 4190 use traps on systems that support them.
4166 4191
4167 @html 4192 @html
4168 <hr /> 4193 <hr />
4169 @end html 4194 @end html
4170 @anchor{mips-sgi-irix5}
4171 @heading mips-sgi-irix5
4172 Support for IRIX 5 has been removed in GCC 4.6.
4173
4174 @html
4175 <hr />
4176 @end html
4177 @anchor{mips-sgi-irix6}
4178 @heading mips-sgi-irix6
4179 Support for IRIX 6.5 has been removed in GCC 4.8. Support for IRIX 6
4180 releases before 6.5 has been removed in GCC 4.6, as well as support for
4181 the O32 ABI.
4182
4183 @html
4184 <hr />
4185 @end html
4186 @anchor{moxie-x-elf} 4195 @anchor{moxie-x-elf}
4187 @heading moxie-*-elf 4196 @heading moxie-*-elf
4188 The moxie processor. 4197 The moxie processor.
4189 4198
4190 @html 4199 @html
4219 Instead of GNU binutils, you will need to install 4228 Instead of GNU binutils, you will need to install
4220 @uref{https://github.com/MentorEmbedded/nvptx-tools/,,nvptx-tools}. 4229 @uref{https://github.com/MentorEmbedded/nvptx-tools/,,nvptx-tools}.
4221 Tell GCC where to find it: 4230 Tell GCC where to find it:
4222 @option{--with-build-time-tools=[install-nvptx-tools]/nvptx-none/bin}. 4231 @option{--with-build-time-tools=[install-nvptx-tools]/nvptx-none/bin}.
4223 4232
4224 A nvptx port of newlib is available at 4233 You will need newlib 3.0 git revision
4225 @uref{https://github.com/MentorEmbedded/nvptx-newlib/,,nvptx-newlib}. 4234 cd31fbb2aea25f94d7ecedc9db16dfc87ab0c316 or later. It can be
4226 It can be automatically built together with GCC@. For this, add a 4235 automatically built together with GCC@. For this, add a symbolic link
4227 symbolic link to nvptx-newlib's @file{newlib} directory to the 4236 to nvptx-newlib's @file{newlib} directory to the directory containing
4228 directory containing the GCC sources. 4237 the GCC sources.
4229 4238
4230 Use the @option{--disable-sjlj-exceptions} and 4239 Use the @option{--disable-sjlj-exceptions} and
4231 @option{--enable-newlib-io-long-long} options when configuring. 4240 @option{--enable-newlib-io-long-long} options when configuring.
4232 4241
4233 @html 4242 @html
4397 @c with 2.0 until 2.6, 7, 8, etc. Solaris 1 was a marketing name for 4406 @c with 2.0 until 2.6, 7, 8, etc. Solaris 1 was a marketing name for
4398 @c SunOS 4 releases which we don't use to avoid confusion. Solaris 4407 @c SunOS 4 releases which we don't use to avoid confusion. Solaris
4399 @c alone is too unspecific and must be avoided. 4408 @c alone is too unspecific and must be avoided.
4400 @anchor{x-x-solaris2} 4409 @anchor{x-x-solaris2}
4401 @heading *-*-solaris2* 4410 @heading *-*-solaris2*
4402 Support for Solaris 9 has been removed in GCC 5. Support for Solaris 4411 Support for Solaris 10 has been obsoleted in GCC 9, but can still be
4403 8 has been removed in GCC 4.8. Support for Solaris 7 has been removed 4412 enabled by configuring with @option{--enable-obsolete}. Support will be
4404 in GCC 4.6. 4413 removed in GCC 10. Support for Solaris 9 has been removed in GCC 5.
4414 Support for Solaris 8 has been removed in GCC 4.8. Support for Solaris
4415 7 has been removed in GCC 4.6.
4405 4416
4406 Sun does not ship a C compiler with Solaris 2 before Solaris 10, though 4417 Sun does not ship a C compiler with Solaris 2 before Solaris 10, though
4407 you can download the Sun Studio compilers for free. In Solaris 10 and 4418 you can download the Sun Studio compilers for free. In Solaris 10 and
4408 11, GCC 3.4.3 is available as @command{/usr/sfw/bin/gcc}. Solaris 11 4419 11, GCC 3.4.3 is available as @command{/usr/sfw/bin/gcc}. Solaris 11
4409 also provides GCC 4.5.2, 4.7.3, and 4.8.2 as 4420 also provides GCC 4.5.2, 4.7.3, and 4.8.2 as
4454 conjunction with the Solaris linker. The GNU @command{as} 4465 conjunction with the Solaris linker. The GNU @command{as}
4455 versions included in Solaris 10, from GNU binutils 2.15 (in 4466 versions included in Solaris 10, from GNU binutils 2.15 (in
4456 @file{/usr/sfw/bin/gas}), and Solaris 11, 4467 @file{/usr/sfw/bin/gas}), and Solaris 11,
4457 from GNU binutils 2.19 or newer (also in @file{/usr/bin/gas} and 4468 from GNU binutils 2.19 or newer (also in @file{/usr/bin/gas} and
4458 @file{/usr/gnu/bin/as}), are known to work. 4469 @file{/usr/gnu/bin/as}), are known to work.
4459 Current versions of GNU binutils (2.26) 4470 The current version, from GNU binutils 2.29,
4460 are known to work as well, with the caveat mentioned in 4471 is known to work as well. Note that your mileage may vary
4461 @uref{#ix86-x-solaris210,,i?86-*-solaris2.10} . Note that your mileage may vary
4462 if you use a combination of the GNU tools and the Solaris tools: while the 4472 if you use a combination of the GNU tools and the Solaris tools: while the
4463 combination GNU @command{as} + Sun @command{ld} should reasonably work, 4473 combination GNU @command{as} + Sun @command{ld} should reasonably work,
4464 the reverse combination Sun @command{as} + GNU @command{ld} may fail to 4474 the reverse combination Sun @command{as} + GNU @command{ld} may fail to
4465 build or cause memory corruption at runtime in some cases for C++ programs. 4475 build or cause memory corruption at runtime in some cases for C++ programs.
4466 @c FIXME: still? 4476 @c FIXME: still?
4467 GNU @command{ld} usually works as well, although the version included in 4477 GNU @command{ld} usually works as well, although the version included in
4468 Solaris 10 cannot be used due to several bugs. Again, the current 4478 Solaris 10 cannot be used due to several bugs. Again, the current
4469 version (2.26) is known to work, but generally lacks platform specific 4479 version (2.29) is known to work, but generally lacks platform specific
4470 features, so better stay with Solaris @command{ld}. To use the LTO linker 4480 features, so better stay with Solaris @command{ld}. To use the LTO linker
4471 plugin (@option{-fuse-linker-plugin}) with GNU @command{ld}, GNU 4481 plugin (@option{-fuse-linker-plugin}) with GNU @command{ld}, GNU
4472 binutils @emph{must} be configured with @option{--enable-largefile}. 4482 binutils @emph{must} be configured with @option{--enable-largefile}.
4473 4483
4474 To enable symbol versioning in @samp{libstdc++} with the Solaris linker, 4484 To enable symbol versioning in @samp{libstdc++} with the Solaris linker,
4724 @item Cygwin @uref{#x-x-cygwin,,*-*-cygwin}: Cygwin provides a user-space 4734 @item Cygwin @uref{#x-x-cygwin,,*-*-cygwin}: Cygwin provides a user-space
4725 Linux API emulation layer in the Win32 subsystem. 4735 Linux API emulation layer in the Win32 subsystem.
4726 @item MinGW @uref{#x-x-mingw32,,*-*-mingw32}: MinGW is a native GCC port for 4736 @item MinGW @uref{#x-x-mingw32,,*-*-mingw32}: MinGW is a native GCC port for
4727 the Win32 subsystem that provides a subset of POSIX. 4737 the Win32 subsystem that provides a subset of POSIX.
4728 @item MKS i386-pc-mks: NuTCracker from MKS. See 4738 @item MKS i386-pc-mks: NuTCracker from MKS. See
4729 @uref{http://www.mkssoftware.com/} for more information. 4739 @uref{https://www.mkssoftware.com} for more information.
4730 @end itemize 4740 @end itemize
4731 4741
4732 @subheading Intel 64-bit versions 4742 @subheading Intel 64-bit versions
4733 GCC contains support for x86-64 using the mingw-w64 4743 GCC contains support for x86-64 using the mingw-w64
4734 runtime library, available from @uref{http://mingw-w64.org/doku.php}. 4744 runtime library, available from @uref{http://mingw-w64.org/doku.php}.