Mercurial > hg > CbC > CbC_gcc
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}. |