head 1.19; access; symbols gcc-14-4-0:1.1.1.21 netbsd-10-2-RELEASE:1.13.2.1 netbsd-9-5-RELEASE:1.9 netbsd-11-0-RELEASE:1.17 netbsd-11-0-RC7:1.17 netbsd-11-0-RC6:1.17 netbsd-11-0-RC5:1.17 netbsd-11-0-RC4:1.17 netbsd-11-0-RC3:1.17 netbsd-11-0-RC2:1.17 netbsd-11-0-RC1:1.17 gcc-14-3-0:1.1.1.20 perseant-exfatfs-base-20250801:1.17 netbsd-11:1.17.0.2 netbsd-11-base:1.17 gcc-12-5-0:1.1.1.19 netbsd-10-1-RELEASE:1.13.2.1 perseant-exfatfs-base-20240630:1.16 gcc-12-4-0:1.1.1.18 perseant-exfatfs:1.15.0.2 perseant-exfatfs-base:1.15 netbsd-8-3-RELEASE:1.5.8.1 netbsd-9-4-RELEASE:1.9 netbsd-10-0-RELEASE:1.13.2.1 netbsd-10-0-RC6:1.13.2.1 netbsd-10-0-RC5:1.13.2.1 netbsd-10-0-RC4:1.13.2.1 netbsd-10-0-RC3:1.13.2.1 netbsd-10-0-RC2:1.13.2.1 netbsd-10-0-RC1:1.13.2.1 gcc-12-3-0:1.1.1.17 gcc-10-5-0:1.1.1.16 netbsd-10:1.13.0.2 netbsd-10-base:1.13 netbsd-9-3-RELEASE:1.9 gcc-10-4-0:1.1.1.15 cjep_sun2x-base1:1.12 cjep_sun2x:1.12.0.4 cjep_sun2x-base:1.12 cjep_staticlib_x-base1:1.12 netbsd-9-2-RELEASE:1.9 cjep_staticlib_x:1.12.0.2 cjep_staticlib_x-base:1.12 gcc-10-3-0:1.1.1.14 netbsd-9-1-RELEASE:1.9 gcc-9-3-0:1.1.1.13 gcc-7-5-0:1.1.1.11 phil-wifi-20200421:1.10 phil-wifi-20200411:1.10 is-mlppp:1.10.0.2 is-mlppp-base:1.10 phil-wifi-20200406:1.10 netbsd-8-2-RELEASE:1.5.8.1 gcc-8-4-0:1.1.1.12 netbsd-9-0-RELEASE:1.9 netbsd-9-0-RC2:1.9 netbsd-9-0-RC1:1.9 phil-wifi-20191119:1.10 gcc-8-3-0:1.1.1.10 netbsd-9:1.9.0.2 netbsd-9-base:1.9 phil-wifi-20190609:1.9 netbsd-8-1-RELEASE:1.5.8.1 netbsd-8-1-RC1:1.5.8.1 pgoyette-compat-merge-20190127:1.7.2.2 pgoyette-compat-20190127:1.9 gcc-7-4-0:1.1.1.9 pgoyette-compat-20190118:1.8 pgoyette-compat-1226:1.8 pgoyette-compat-1126:1.8 gcc-6-5-0:1.1.1.8 pgoyette-compat-1020:1.7 pgoyette-compat-0930:1.7 pgoyette-compat-0906:1.7 netbsd-7-2-RELEASE:1.3.2.1 pgoyette-compat-0728:1.7 netbsd-8-0-RELEASE:1.5.8.1 phil-wifi:1.7.0.4 phil-wifi-base:1.7 pgoyette-compat-0625:1.7 netbsd-8-0-RC2:1.5.8.1 pgoyette-compat-0521:1.7 pgoyette-compat-0502:1.7 pgoyette-compat-0422:1.7 netbsd-8-0-RC1:1.5.8.1 pgoyette-compat-0415:1.7 pgoyette-compat-0407:1.7 pgoyette-compat-0330:1.7 pgoyette-compat-0322:1.7 pgoyette-compat-0315:1.7 netbsd-7-1-2-RELEASE:1.3.2.1 pgoyette-compat:1.7.0.2 pgoyette-compat-base:1.7 gcc-6-4-0:1.1.1.7 netbsd-7-1-1-RELEASE:1.3.2.1 gcc-5-5-0:1.1.1.6 matt-nb8-mediatek:1.5.0.12 matt-nb8-mediatek-base:1.5 perseant-stdc-iso10646:1.5.0.10 perseant-stdc-iso10646-base:1.5 netbsd-8:1.5.0.8 netbsd-8-base:1.5 prg-localcount2-base3:1.5 prg-localcount2-base2:1.5 prg-localcount2-base1:1.5 prg-localcount2:1.5.0.6 prg-localcount2-base:1.5 pgoyette-localcount-20170426:1.5 bouyer-socketcan-base1:1.5 pgoyette-localcount-20170320:1.5 netbsd-7-1:1.3.2.1.0.4 netbsd-7-1-RELEASE:1.3.2.1 netbsd-7-1-RC2:1.3.2.1 netbsd-7-nhusb-base-20170116:1.3.2.1 bouyer-socketcan:1.5.0.4 bouyer-socketcan-base:1.5 pgoyette-localcount-20170107:1.5 netbsd-7-1-RC1:1.3.2.1 pgoyette-localcount-20161104:1.5 netbsd-7-0-2-RELEASE:1.3 localcount-20160914:1.5 netbsd-7-nhusb:1.3.2.1.0.2 netbsd-7-nhusb-base:1.3.2.1 pgoyette-localcount-20160806:1.5 pgoyette-localcount-20160726:1.5 pgoyette-localcount:1.5.0.2 pgoyette-localcount-base:1.5 gcc-5-4-0:1.1.1.5 netbsd-7-0-1-RELEASE:1.3 gcc-5-3-0:1.1.1.5 netbsd-7-0:1.3.0.4 netbsd-7-0-RELEASE:1.3 gcc-4-8-5-pre-gcc-old-import:1.4 netbsd-7-0-RC3:1.3 netbsd-7-0-RC2:1.3 post-gcc-4-8-5-merge:1.4 gcc-4-8-5:1.1.1.4 netbsd-7-0-RC1:1.3 gcc-4-8-4:1.1.1.3 netbsd-6-0-6-RELEASE:1.1.1.1 netbsd-6-1-5-RELEASE:1.1.1.1 netbsd-7:1.3.0.2 netbsd-7-base:1.3 gcc-4-8-3:1.1.1.2 yamt-pagecache-base9:1.2 yamt-pagecache-tag8:1.1.1.1 netbsd-6-1-4-RELEASE:1.1.1.1 netbsd-6-0-5-RELEASE:1.1.1.1 tls-earlyentropy:1.2.0.2 tls-earlyentropy-base:1.3 riastradh-xf86-video-intel-2-7-1-pre-2-21-15:1.2 riastradh-drm2-base3:1.2 imported-to-gcc-old-20140227-0107:1.1.1.1 netbsd-6-1-3-RELEASE:1.1.1.1 netbsd-6-0-4-RELEASE:1.1.1.1 netbsd-6-1-2-RELEASE:1.1.1.1 netbsd-6-0-3-RELEASE:1.1.1.1 netbsd-6-1-1-RELEASE:1.1.1.1 riastradh-drm2-base2:1.1.1.1 riastradh-drm2-base1:1.1.1.1 riastradh-drm2:1.1.1.1.0.12 riastradh-drm2-base:1.1.1.1 netbsd-6-1:1.1.1.1.0.16 netbsd-6-0-2-RELEASE:1.1.1.1 netbsd-6-1-RELEASE:1.1.1.1 netbsd-6-1-RC4:1.1.1.1 netbsd-6-1-RC3:1.1.1.1 agc-symver:1.1.1.1.0.14 agc-symver-base:1.1.1.1 netbsd-6-1-RC2:1.1.1.1 netbsd-6-1-RC1:1.1.1.1 yamt-pagecache-base8:1.1.1.1 netbsd-6-0-1-RELEASE:1.1.1.1 yamt-pagecache-base7:1.1.1.1 matt-nb6-plus-nbase:1.1.1.1 yamt-pagecache-base6:1.1.1.1 netbsd-6-0:1.1.1.1.0.10 netbsd-6-0-RELEASE:1.1.1.1 gcc-4-5-4:1.1.1.1 netbsd-6-0-RC2:1.1.1.1 tls-maxphys:1.1.1.1.0.8 tls-maxphys-base:1.3 matt-nb6-plus:1.1.1.1.0.6 matt-nb6-plus-base:1.1.1.1 netbsd-6-0-RC1:1.1.1.1 yamt-pagecache-base5:1.1.1.1 yamt-pagecache-base4:1.1.1.1 netbsd-6:1.1.1.1.0.4 netbsd-6-base:1.1.1.1 yamt-pagecache-base3:1.1.1.1 yamt-pagecache-base2:1.1.1.1 yamt-pagecache:1.1.1.1.0.2 yamt-pagecache-base:1.1.1.1 gcc-4-5-3:1.1.1.1 FSF:1.1.1; locks; strict; comment @# @; 1.19 date 2026.09.26.20.42.32; author mrg; state Exp; branches; next 1.18; commitid zkJzcIOvQooiNaXG; 1.18 date 2025.09.14.00.07.14; author mrg; state Exp; branches; next 1.17; commitid x9D5QEnvbeMI4CaG; 1.17 date 2025.07.21.03.01.10; author mrg; state Exp; branches; next 1.16; commitid 0iwx35CAgfJ1Oy3G; 1.16 date 2024.06.30.08.38.39; author mrg; state Exp; branches; next 1.15; commitid kExYYE9GeDZb5ZfF; 1.15 date 2023.07.30.05.51.10; author mrg; state Exp; branches 1.15.2.1; next 1.14; commitid Iugici1GtQ2mWMyE; 1.14 date 2023.07.11.00.40.40; author mrg; state Exp; branches; next 1.13; commitid UboG1aHS8nDGQjwE; 1.13 date 2022.07.22.20.22.33; author mrg; state Exp; branches 1.13.2.1; next 1.12; commitid 26I33JZwnjoCLVMD; 1.12 date 2021.04.11.00.02.10; author mrg; state Exp; branches; next 1.11; commitid rXajJcXg3xWG0OOC; 1.11 date 2020.09.05.09.12.22; author mrg; state Exp; branches; next 1.10; commitid dS3LXwk3lAvP4QmC; 1.10 date 2019.10.01.10.38.16; author mrg; state Exp; branches; next 1.9; commitid r1DeKUVOMBnJt9FB; 1.9 date 2019.01.19.12.10.03; author mrg; state Exp; branches; next 1.8; commitid k8UsQyKpGt5Abo8B; 1.8 date 2018.11.04.00.38.13; author mrg; state Exp; branches; next 1.7; commitid sRYjqyoImfCCNyYA; 1.7 date 2018.02.02.03.41.03; author mrg; state Exp; branches 1.7.2.1 1.7.4.1; next 1.6; commitid YbHkrPGCnw2dEepA; 1.6 date 2017.11.12.00.36.45; author mrg; state Exp; branches; next 1.5; commitid qvf6fubay3FAgGeA; 1.5 date 2016.01.24.09.43.31; author mrg; state Exp; branches 1.5.8.1; next 1.4; commitid dxhNntGC3MSSqaSy; 1.4 date 2015.06.24.14.51.17; author mrg; state Exp; branches; next 1.3; commitid 1WAL6q85IgrA1Hqy; 1.3 date 2014.05.27.09.18.54; author skrll; state Exp; branches 1.3.2.1; next 1.2; commitid Z8i3oVrmy8KgN9Cx; 1.2 date 2014.03.01.08.58.29; author mrg; state dead; branches 1.2.2.1; next 1.1; commitid PSOLhRBVEIqVuYqx; 1.1 date 2011.06.21.01.23.10; author mrg; state Exp; branches 1.1.1.1; next ; 1.15.2.1 date 2024.07.01.01.00.44; author perseant; state Exp; branches; next 1.15.2.2; commitid NkoYLLCQWWw9v4gF; 1.15.2.2 date 2025.08.02.05.25.25; author perseant; state Exp; branches; next ; commitid 23j6GFaDws3O875G; 1.13.2.1 date 2023.07.13.09.18.16; author martin; state Exp; branches; next ; commitid nTDZbluVjX9bCCwE; 1.7.2.1 date 2018.11.26.01.50.38; author pgoyette; state Exp; branches; next 1.7.2.2; commitid Zj4q5SspGdKXto1B; 1.7.2.2 date 2019.01.26.21.58.19; author pgoyette; state Exp; branches; next ; commitid JKpcmvSjdT25dl9B; 1.7.4.1 date 2019.06.10.21.53.16; author christos; state Exp; branches; next 1.7.4.2; commitid jtc8rnCzWiEEHGqB; 1.7.4.2 date 2020.04.13.07.57.04; author martin; state Exp; branches; next ; commitid X01YhRUPVUDaec4C; 1.5.8.1 date 2017.11.23.11.01.43; author martin; state Exp; branches; next ; commitid lA6hq5q2Y1dXl9gA; 1.3.2.1 date 2015.10.31.21.35.14; author snj; state Exp; branches; next ; commitid ynIajmFMECdR6jHy; 1.2.2.1 date 2014.08.10.07.10.40; author tls; state Exp; branches; next ; commitid 3hJZAsnr6L0lHMLx; 1.1.1.1 date 2011.06.21.01.23.10; author mrg; state Exp; branches 1.1.1.1.2.1 1.1.1.1.8.1; next 1.1.1.2; 1.1.1.2 date 2014.05.27.08.39.33; author skrll; state Exp; branches; next 1.1.1.3; commitid Esid9j2Tay8qt9Cx; 1.1.1.3 date 2015.01.10.00.49.42; author mrg; state Exp; branches; next 1.1.1.4; commitid E07JC7FpnM8mAp5y; 1.1.1.4 date 2015.06.24.14.02.53; author mrg; state Exp; branches; next 1.1.1.5; commitid 64Yqx91eMSn0JGqy; 1.1.1.5 date 2016.01.24.06.05.54; author mrg; state Exp; branches; next 1.1.1.6; commitid uWWfbLp08zOK79Sy; 1.1.1.6 date 2017.11.11.23.50.05; author mrg; state Exp; branches; next 1.1.1.7; commitid KefS4gJN8ajyYFeA; 1.1.1.7 date 2018.02.02.01.59.58; author mrg; state Exp; branches; next 1.1.1.8; commitid XNKaycqpfhzd5epA; 1.1.1.8 date 2018.11.04.00.13.04; author mrg; state Exp; branches; next 1.1.1.9; commitid bulspy67pMB6EyYA; 1.1.1.9 date 2019.01.19.10.14.40; author mrg; state Exp; branches; next 1.1.1.10; commitid VQ8OwWIg5RS9kn8B; 1.1.1.10 date 2019.10.01.09.36.38; author mrg; state Exp; branches; next 1.1.1.11; commitid smvgr2IPAQDr89FB; 1.1.1.11 date 2020.08.11.05.11.08; author mrg; state Exp; branches; next 1.1.1.12; commitid 5dBRDT7i6e65xBjC; 1.1.1.12 date 2020.08.11.05.30.44; author mrg; state Exp; branches; next 1.1.1.13; commitid 7AI4OfpLi4eqEBjC; 1.1.1.13 date 2020.09.05.07.52.58; author mrg; state Exp; branches; next 1.1.1.14; commitid ZRYA7IOuwfMjAPmC; 1.1.1.14 date 2021.04.10.22.09.22; author mrg; state Exp; branches; next 1.1.1.15; commitid eC4g0MRpqTvEkNOC; 1.1.1.15 date 2022.07.22.19.53.18; author mrg; state Exp; branches; next 1.1.1.16; commitid fUYPgdKzIHqhwVMD; 1.1.1.16 date 2023.07.11.00.32.10; author mrg; state Exp; branches; next 1.1.1.17; commitid 3yo4S98RsOFBNjwE; 1.1.1.17 date 2023.07.30.05.20.41; author mrg; state Exp; branches; next 1.1.1.18; commitid tk6nV4mbc9nVEMyE; 1.1.1.18 date 2024.06.30.07.36.33; author mrg; state Exp; branches; next 1.1.1.19; commitid m7BwZsPdfJvuHYfF; 1.1.1.19 date 2025.07.21.02.43.01; author mrg; state Exp; branches; next 1.1.1.20; commitid 9k1gPU4fqf8VHy3G; 1.1.1.20 date 2025.09.13.23.45.04; author mrg; state Exp; branches; next 1.1.1.21; commitid KwhwN4krNWa6XBaG; 1.1.1.21 date 2026.09.26.20.27.25; author mrg; state Exp; branches; next ; commitid Us2gtpl1zAY1IaXG; 1.1.1.1.2.1 date 2014.05.22.16.34.59; author yamt; state dead; branches; next ; commitid ae3mEUOn0ZasoyBx; 1.1.1.1.8.1 date 2014.08.19.23.53.11; author tls; state Exp; branches; next ; commitid jTnpym9Qu0o4R1Nx; desc @@ 1.19 log @merge GCC 14.4. @ text @
Please read this document carefully before installing the GNU Compiler Collection on your machine.
Note that this list of install notes is not a list of supported hosts or targets. Not all supported hosts and targets are listed here, only the ones that require host-specific or target-specific information have to.
Binutils pre 2.24 does not have support for selecting -mabi and does not support ILP32. If it is used to build GCC 4.9 or later, GCC will not support option -mabi=ilp32.
To enable a workaround for the Cortex-A53 erratum number 835769 by default (for all CPUs regardless of -mcpu option given) at configure time use the --enable-fix-cortex-a53-835769 option. This will enable the fix by default and can be explicitly disabled during compilation by passing the -mno-fix-cortex-a53-835769 option. Conversely, --disable-fix-cortex-a53-835769 will disable the workaround by default. The workaround is disabled by default if neither of --enable-fix-cortex-a53-835769 or --disable-fix-cortex-a53-835769 is given at configure time.
To enable a workaround for the Cortex-A53 erratum number 843419 by default (for all CPUs regardless of -mcpu option given) at configure time use the --enable-fix-cortex-a53-843419 option. This workaround is applied at link time. Enabling the workaround will cause GCC to pass the relevant option to the linker. It can be explicitly disabled during compilation by passing the -mno-fix-cortex-a53-843419 option. Conversely, --disable-fix-cortex-a53-843419 will disable the workaround by default. The workaround is disabled by default if neither of --enable-fix-cortex-a53-843419 or --disable-fix-cortex-a53-843419 is given at configure time.
To enable Branch Target Identification Mechanism and Return Address Signing by default at configure time use the --enable-standard-branch-protection option. This is equivalent to having -mbranch-protection=standard during compilation. This can be explicitly disabled during compilation by passing the -mbranch-protection=none option which turns off all types of branch protections. Conversely, --disable-standard-branch-protection will disable both the protections by default. This mechanism is turned off by default if neither of the options are given at configure time.
This is a synonym for ‘x86_64-*-solaris2*’.
AMD GCN GPU target.
Instead of GNU Binutils, you will need to install LLVM 15, or later, and copy
bin/llvm-mc to amdgcn-amdhsa/bin/as,
bin/lld to amdgcn-amdhsa/bin/ld,
bin/llvm-nm to amdgcn-amdhsa/bin/nm, and
bin/llvm-ar to both bin/amdgcn-amdhsa-ar and
bin/amdgcn-amdhsa-ranlib. Note that LLVM 13.0.1 or LLVM 14 can be used
by specifying a --with-multilib-list= that does not list gfx1100
and gfx1103.
Use Newlib (4.3.0 or newer; 4.4.0 contains some improvements and git commit 7dd4eb1db (2025-03-25, post-4.4.0) fixes device console output for GFX10 and GFX11 devices).
To run the binaries, install the HSA Runtime from the ROCm Platform, and use libexec/gcc/amdhsa-amdhsa/version/gcn-run to launch them on the GPU.
To enable support for GCN3 Fiji devices (gfx803), GCC has to be configured with
--with-arch=fiji or
--with-multilib-list=fiji,.... Note that support for Fiji
devices has been removed in ROCm 4.0 and support in LLVM was deprecated and has
been removed in LLVM 18.
Use ‘configure --target=arc-elf32 --with-cpu=cpu --enable-languages="c,c++"’ to configure GCC, with cpu being one of ‘arc600’, ‘arc601’, or ‘arc700’.
Use ‘configure --target=arc-linux-uclibc --with-cpu=arc700 --enable-languages="c,c++"’ to configure GCC.
ARM-family processors.
Building the Ada frontend commonly fails (an infinite loop executing
xsinfo) if the host compiler is GNAT 4.8. Host compilers built from the
GNAT 4.6, 4.9 or 5 release branches are known to succeed.
ATMEL AVR-family micro controllers. These are used in embedded applications. There are no standard Unix configurations. See “AVR Options” in the main manual for the list of supported MCU types.
Use ‘configure --target=avr --enable-languages="c"’ to configure GCC.
Further installation notes and other useful information about AVR tools can also be obtained from:
The following error:
Error: register required
indicates that you should upgrade to a newer version of the binutils.
The Blackfin processor, an Analog Devices DSP. See “Blackfin Options” in the main manual
More information, and a version of binutils with support for this processor, are available at https://sourceforge.net/projects/adi-toolchain/.
CRIS is a CPU architecture in Axis Communications systems-on-a-chip, for example the ETRAX series. These are used in embedded applications.
See “CRIS Options” in the main manual for a list of CRIS-specific options.
Use ‘configure --target=cris-elf’ to configure GCC for building a cross-compiler for CRIS.
Please have a look at the binaries page.
You cannot install GCC by itself on MSDOS; it will not compile under any MSDOS compiler except itself. You need to get the complete compilation package DJGPP, which includes binaries as well as sources, and includes all the necessary compilation tools and libraries.
Adapteva Epiphany. This configuration is intended for embedded systems.
We support FreeBSD using the ELF file format with DWARF 2 debugging for all CPU architectures. There are no known issues with mixing object files and libraries with different debugging formats.
We recommend bootstrapping against the latest GNU binutils or the version found in the devel/binutils port. This also has been known to enable additional features and improve overall testsuite results.
Ada and D (or rather their respective libraries) are broken on FreeBSD/i386. This also affects building 32-bit libraries on FreeBSD/amd64, so configure with --disable-multilib there in case you are building one of these front ends.
Go (or rather libgo) is generally broken on FreeBSD.
The FT32 processor. This configuration is intended for embedded systems.
Renesas H8/300 series of processors.
Please have a look at the binaries page.
The calling convention and structure layout has changed in release 2.6. All code must be recompiled. The calling convention now passes the first three arguments in function calls in registers. Structures are no longer a multiple of 2 bytes.
We require using gas on all hppa platforms. Version 2.19 or later is recommended.
It may be helpful to configure GCC with the --with-gnu-as and --with-as=… options to ensure that GCC can find GAS.
There are two default scheduling models for instructions. These are PROCESSOR_7100LC and PROCESSOR_8000. They are selected from the pa-risc architecture specified for the target machine when configuring. PROCESSOR_8000 is the default. PROCESSOR_7100LC is selected when the target is a ‘hppa1*’ machine.
The PROCESSOR_8000 model is not well suited to older processors. Thus, it is important to completely specify the machine architecture when configuring if you want a model other than PROCESSOR_8000. The macro TARGET_SCHED_DEFAULT can be defined in BOOT_CFLAGS if a different default scheduling model is desired.
As of GCC 4.0, GCC uses the UNIX 95 namespace for HP-UX 10.10
through 11.00, and the UNIX 98 namespace for HP-UX 11.11 and later.
This namespace change might cause problems when bootstrapping with
an earlier version of GCC or the HP compiler as essentially the same
namespace is required for an entire build. This problem can be avoided
in a number of ways. With HP cc, UNIX_STD can be set to ‘95’
or ‘98’. Another way is to add an appropriate set of predefines
to CC. The description for the munix= option contains
a list of the predefines used with each standard.
More specific information to ‘hppa*-hp-hpux*’ targets follows.
Refer to binaries for information about obtaining precompiled GCC binaries for HP-UX. Precompiled binaries must be obtained to build the Ada language as it cannot be bootstrapped using C. Ada is only available for the 32-bit PA-RISC runtime.
Starting with GCC 3.4 an ISO C compiler is required to bootstrap. The bundled compiler supports only traditional C; you will need either HP’s unbundled compiler, or a binary distribution of GCC.
It is possible to build GCC 3.3 starting with the bundled HP compiler, but the process requires several steps. GCC 3.3 can then be used to build later versions.
There are several possible approaches to building the distribution. Binutils can be built first using the HP tools. Then, the GCC distribution can be built. The second approach is to build GCC first using the HP tools, then build binutils, then rebuild GCC. There have been problems with various binary distributions, so it is best not to start from a binary distribution.
On 64-bit capable systems, there are two distinct targets. Different installation prefixes must be used if both are to be installed on the same system. The ‘hppa[1-2]*-hp-hpux11*’ target generates code for the 32-bit PA-RISC runtime architecture and uses the HP linker. The ‘hppa64-hp-hpux11*’ target generates 64-bit code for the PA-RISC 2.0 architecture.
The script config.guess now selects the target type based on the compiler
detected during configuration. You must define PATH or CC so
that configure finds an appropriate compiler for the initial bootstrap.
When CC is used, the definition should contain the options that are
needed whenever CC is used.
Specifically, options that determine the runtime architecture must be
in CC to correctly select the target for the build. It is also
convenient to place many other compiler options in CC. For example,
CC="cc -Ac +DA2.0W -Wp,-H16376 -D_CLASSIC_TYPES -D_HPUX_SOURCE"
can be used to bootstrap the GCC 3.3 branch with the HP compiler in
64-bit K&R/bundled mode. The +DA2.0W option will result in
the automatic selection of the ‘hppa64-hp-hpux11*’ target. The
macro definition table of cpp needs to be increased for a successful
build with the HP compiler. _CLASSIC_TYPES and _HPUX_SOURCE need to
be defined when building with the bundled compiler, or when using the
-Ac option. These defines aren’t necessary with -Ae.
It is best to explicitly configure the ‘hppa64-hp-hpux11*’ target with the --with-ld=… option. This overrides the standard search for ld. The two linkers supported on this target require different commands. The default linker is determined during configuration. As a result, it’s not possible to switch linkers in the middle of a GCC build. This has been reported to sometimes occur in unified builds of binutils and GCC.
A recent linker patch must be installed for the correct operation of
GCC 3.3 and later. PHSS_26559 and PHSS_24304 are the
oldest linker patches that are known to work. They are for HP-UX
11.00 and 11.11, respectively. PHSS_24303, the companion to
PHSS_24304, might be usable but it hasn’t been tested. These
patches have been superseded. Consult the HP patch database to obtain
the currently recommended linker patch for your system.
The patches are necessary for the support of weak symbols on the 32-bit port, and for the running of initializers and finalizers. Weak symbols are implemented using SOM secondary definition symbols. Prior to HP-UX 11, there are bugs in the linker support for secondary symbols. The patches correct a problem of linker core dumps creating shared libraries containing secondary symbols, as well as various other linking issues involving secondary symbols.
GCC 3.3 uses the ELF DT_INIT_ARRAY and DT_FINI_ARRAY capabilities to run initializers and finalizers on the 64-bit port. The 32-bit port uses the linker +init and +fini options for the same purpose. The patches correct various problems with the +init/+fini options, including program core dumps. Binutils 2.14 corrects a problem on the 64-bit port resulting from HP’s non-standard use of the .init and .fini sections for array initializers and finalizers.
Only the HP linker is supported for the ‘hppa64-hp-hpux11*’ target.
At this time, the GNU linker does not support the creation of long branch stubs. As a result, it cannot successfully link binaries containing branch offsets larger than 8 megabytes. In addition, there are problems linking shared libraries, linking executables with -static, and with dwarf2 unwind and exception support. It also doesn’t provide stubs for internal calls to global functions in shared libraries, so these calls cannot be overloaded.
The HP dynamic loader does not support GNU symbol versioning, so symbol versioning is not supported. It may be necessary to disable symbol versioning with --disable-symvers when using GNU ld.
POSIX threads are the default. The optional DCE thread library is not supported, so --enable-threads=dce does not work.
The .init_array and .fini_array sections are enabled
unconditionally which requires at least glibc 2.1 and binutils 2.12.
Versions of libstdc++-v3 starting with 3.2.1 require bug fixes present in glibc 2.2.5 and later. More information is available in the libstdc++-v3 documentation.
As of GCC 3.3, binutils 2.13.1 or later is required for this platform. See bug 10877 for more information.
If you receive Signal 11 errors when building on GNU/Linux, then it is possible you have a hardware problem. Further information on this can be found on www.bitwizard.nl.
Use this for Solaris 11.3 or later on x86 and x86-64 systems. Starting with GCC 4.7, there is also a 64-bit ‘amd64-*-solaris2*’ or ‘x86_64-*-solaris2*’ configuration that corresponds to ‘sparcv9-sun-solaris2*’.
IA-64 processor (also known as IPF, or Itanium Processor Family) running GNU/Linux.
If you are using the installed system libunwind library with --with-system-libunwind, then you must use libunwind 0.98 or later.
Building GCC on this target requires the GNU Assembler. The bundled HP assembler will not work. To prevent GCC from using the wrong assembler, the option --with-gnu-as may be necessary.
Support for AIX version 3 and older was discontinued in GCC 3.4. Support for AIX version 4.2 and older was discontinued in GCC 4.5.
“out of memory” bootstrap failures may indicate a problem with process resource limits (ulimit). Hard limits are configured in the /etc/security/limits system configuration file.
GCC 4.9 and above require a C++ compiler for bootstrap. IBM VAC++ / xlC cannot bootstrap GCC. xlc can bootstrap an older version of GCC and G++ can bootstrap recent releases of GCC.
GCC can bootstrap with recent versions of IBM XLC, but bootstrapping with an earlier release of GCC is recommended. Bootstrapping with XLC requires a larger data segment, which can be enabled through the LDR_CNTRL environment variable, e.g.,
% LDR_CNTRL=MAXDATA=0x50000000 % export LDR_CNTRL
One can start with a pre-compiled version of GCC to build from sources. One may delete GCC’s “fixed” header files when starting with a version of GCC built for an earlier release of AIX.
To speed up the configuration phases of bootstrapping and installing GCC,
one may use GNU Bash instead of AIX /bin/sh, e.g.,
% CONFIG_SHELL=/opt/freeware/bin/bash % export CONFIG_SHELL
and then proceed as described in the build instructions, where we strongly recommend specifying an absolute path to invoke srcdir/configure.
Because GCC on AIX is built as a 32-bit executable by default, (although it can generate 64-bit programs) the GMP and MPFR libraries required by gfortran must be 32-bit libraries. Building GMP and MPFR as static archive libraries works better than shared libraries.
Errors involving alloca when building GCC generally are due
to an incorrect definition of CC in the Makefile or mixing files
compiled with the native C compiler and GCC. During the stage1 phase of
the build, the native AIX compiler must be invoked as cc
(not xlc). Once configure has been informed of
xlc, one needs to use ‘make distclean’ to remove the
configure cache files and ensure that CC environment variable
does not provide a definition that will confuse configure.
If this error occurs during stage2 or later, then the problem most likely
is the version of Make (see above).
The native as and ld are recommended for
bootstrapping on AIX. The GNU Assembler, GNU Linker, and GNU
Binutils version 2.20 is the minimum level that supports bootstrap on
AIX 5. The GNU Assembler has not been updated to support AIX 6 or
AIX 7. The native AIX tools do interoperate with GCC.
AIX 7.1 added partial support for DWARF debugging, but full support requires AIX 7.1 TL03 SP7 that supports additional DWARF sections and fixes a bug in the assembler. AIX 7.1 TL03 SP5 distributed a version of libm.a missing important symbols; a fix for IV77796 will be included in SP6.
AIX 5.3 TL10, AIX 6.1 TL05 and AIX 7.1 TL00 introduced an AIX assembler change that sometimes produces corrupt assembly files causing AIX linker errors. The bug breaks GCC bootstrap on AIX and can cause compilation failures with existing GCC installations. An AIX iFix for AIX 5.3 is available (APAR IZ98385 for AIX 5.3 TL10, APAR IZ98477 for AIX 5.3 TL11 and IZ98134 for AIX 5.3 TL12). AIX 5.3 TL11 SP8, AIX 5.3 TL12 SP5, AIX 6.1 TL04 SP11, AIX 6.1 TL05 SP7, AIX 6.1 TL06 SP6, AIX 6.1 TL07 and AIX 7.1 TL01 should include the fix.
Building libstdc++.a requires a fix for an AIX Assembler bug APAR IY26685 (AIX 4.3) or APAR IY25528 (AIX 5.1). It also requires a fix for another AIX Assembler bug and a co-dependent AIX Archiver fix referenced as APAR IY53606 (AIX 5.2) or as APAR IY54774 (AIX 5.1)
‘libstdc++’ in GCC 3.4 increments the major version number of the shared object and GCC installation places the libstdc++.a shared library in a common location which will overwrite the and GCC 3.3 version of the shared library. Applications either need to be re-linked against the new shared library or the GCC 3.1 and GCC 3.3 versions of the ‘libstdc++’ shared object needs to be available to the AIX runtime loader. The GCC 3.1 ‘libstdc++.so.4’, if present, and GCC 3.3 ‘libstdc++.so.5’ shared objects can be installed for runtime dynamic loading using the following steps to set the ‘F_LOADONLY’ flag in the shared object for each multilib libstdc++.a installed:
Extract the shared objects from the currently installed libstdc++.a archive:
% ar -x libstdc++.a libstdc++.so.4 libstdc++.so.5
Enable the ‘F_LOADONLY’ flag so that the shared object will be available for runtime dynamic loading, but not linking:
% strip -e libstdc++.so.4 libstdc++.so.5
Archive the runtime-only shared object in the GCC 3.4 libstdc++.a archive:
% ar -q libstdc++.a libstdc++.so.4 libstdc++.so.5
Eventually, the --with-aix-soname=svr4 configure option may drop the need for this procedure for libraries that support it.
Linking executables and shared libraries may produce warnings of duplicate symbols. The assembly files generated by GCC for AIX always have included multiple symbol definitions for certain global variable and function declarations in the original program. The warnings should not prevent the linker from producing a correct library or runnable executable.
AIX 4.3 utilizes a “large format” archive to support both 32-bit and 64-bit object modules. The routines provided in AIX 4.3.0 and AIX 4.3.1 to parse archive libraries did not handle the new format correctly. These routines are used by GCC and result in error messages during linking such as “not a COFF file”. The version of the routines shipped with AIX 4.3.1 should work for a 32-bit environment. The -g option of the archive command may be used to create archives of 32-bit objects using the original “small format”. A correct version of the routines is shipped with AIX 4.3.2 and above.
Some versions of the AIX binder (linker) can fail with a relocation overflow severe error when the -bbigtoc option is used to link GCC-produced object files into an executable that overflows the TOC. A fix for APAR IX75823 (OVERFLOW DURING LINK WHEN USING GCC AND -BBIGTOC) is available from IBM Customer Support and from its techsupport.services.ibm.com website as PTF U455193.
The AIX 4.3.2.1 linker (bos.rte.bind_cmds Level 4.3.2.1) will dump core with a segmentation fault when invoked by any version of GCC. A fix for APAR IX87327 is available from IBM Customer Support and from its techsupport.services.ibm.com website as PTF U461879. This fix is incorporated in AIX 4.3.3 and above.
The initial assembler shipped with AIX 4.3.0 generates incorrect object files. A fix for APAR IX74254 (64BIT DISASSEMBLED OUTPUT FROM COMPILER FAILS TO ASSEMBLE/BIND) is available from IBM Customer Support and from its techsupport.services.ibm.com website as PTF U453956. This fix is incorporated in AIX 4.3.1 and above.
AIX provides National Language Support (NLS). Compilers and assemblers
use NLS to support locale-specific representations of various data
formats including floating-point numbers (e.g., ‘.’ vs ‘,’ for
separating decimal fractions). There have been problems reported where
GCC does not produce the same floating-point formats that the assembler
expects. If one encounters this problem, set the LANG
environment variable to ‘C’ or ‘En_US’.
A default can be specified with the -mcpu=cpu_type switch and using the configure option --with-cpu-cpu_type.
Vitesse IQ2000 processors. These are used in embedded applications. There are no standard Unix configurations.
Lattice Mico32 processor. This configuration is intended for embedded systems.
Lattice Mico32 processor. This configuration is intended for embedded systems running uClinux.
LoongArch processor. The following LoongArch targets are available:
loongarch64-linux-gnu*LoongArch processor running GNU/Linux. This target triplet may be coupled with a small set of possible suffixes to identify their default ABI type:
f64Uses lp64d/base ABI by default.
f32Uses lp64f/base ABI by default.
sfUses lp64s/base ABI by default.
loongarch64-linux-gnuSame as loongarch64-linux-gnuf64 for legacy support.
More information about LoongArch can be found at https://github.com/loongson/LoongArch-Documentation.
Renesas M32C processor. This configuration is intended for embedded systems.
Renesas M32R processor. This configuration is intended for embedded systems.
By default,
‘m68k-*-elf*’, ‘m68k-*-rtems’, ‘m68k-*-uclinux’ and
‘m68k-*-linux’
build libraries for both M680x0 and ColdFire processors. If you only
need the M680x0 libraries, you can omit the ColdFire ones by passing
--with-arch=m68k to configure. Alternatively, you
can omit the M680x0 libraries by passing --with-arch=cf to
configure. These targets default to 5206 or 5475 code as
appropriate for the target system when
configured with --with-arch=cf and 68020 code otherwise.
The ‘m68k-*-netbsd’ and ‘m68k-*-openbsd’ targets also support the --with-arch option. They will generate ColdFire CFV4e code when configured with --with-arch=cf and 68020 code otherwise.
You can override the default processors listed above by configuring with --with-cpu=target. This target can either be a -mcpu argument or one of the following values: ‘m68000’, ‘m68010’, ‘m68020’, ‘m68030’, ‘m68040’, ‘m68060’, ‘m68020-40’ and ‘m68020-60’.
GCC requires at least binutils version 2.17 on these targets.
GCC 4.3 changed the uClinux configuration so that it uses the ‘m68k-linux-gnu’ ABI rather than the ‘m68k-elf’ ABI. It also added improved support for C++ and flat shared libraries, both of which were ABI changes.
Xilinx MicroBlaze processor. This configuration is intended for embedded systems.
If on a MIPS system you get an error message saying “does not have gp sections for all it’s [sic] sectons [sic]”, don’t worry about it. This happens whenever you use GAS with the MIPS linker, but there is not really anything wrong, and it is okay to use the output file. You can stop such warnings by installing the GNU linker.
It would be nice to extend GAS to produce the gp tables, but they are optional, and there should not be a warning about their absence.
The libstdc++ atomic locking routines for MIPS targets requires MIPS II and later. A patch went in just after the GCC 3.3 release to make ‘mips*-*-*’ use the generic implementation instead. You can also configure for ‘mipsel-elf’ as a workaround. The ‘mips*-*-linux*’ target continues to use the MIPS II routines. More work on this is expected in future releases.
The built-in __sync_* functions are available on MIPS II and
later systems and others that support the ‘ll’, ‘sc’ and
‘sync’ instructions. This can be overridden by passing
--with-llsc or --without-llsc when configuring GCC.
Since the Linux kernel emulates these instructions if they are
missing, the default for ‘mips*-*-linux*’ targets is
--with-llsc. The --with-llsc and
--without-llsc configure options may be overridden at compile
time by passing the -mllsc or -mno-llsc options to
the compiler.
MIPS systems check for division by zero (unless
-mno-check-zero-division is passed to the compiler) by
generating either a conditional trap or a break instruction. Using
trap results in smaller code, but is only supported on MIPS II and
later. Also, some versions of the Linux kernel have a bug that
prevents trap from generating the proper signal (SIGFPE). To enable
the use of break, use the --with-divide=breaks
configure option when configuring GCC. The default is to
use traps on systems that support them.
The moxie processor.
TI MSP430 processor. This configuration is intended for embedded systems.
‘msp430-*-elf’ is the standard configuration with most GCC features enabled by default.
‘msp430-*-elfbare’ is tuned for a bare-metal environment, and disables features related to shared libraries and other functionality not used for this device. This reduces code and data usage of the GCC libraries, resulting in a minimal run-time environment by default.
Features disabled by default include:
Andes NDS32 target in little endian mode.
Andes NDS32 target in big endian mode.
Nvidia PTX target.
Instead of GNU binutils, you will need to install nvptx-tools. Tell GCC where to find it: --with-build-time-tools=[install-nvptx-tools]/nvptx-none/bin.
You will need newlib 4.3.0 or later. It can be automatically built together with GCC. For this, add a symbolic link to nvptx-newlib’s newlib directory to the directory containing the GCC sources.
Use the --disable-sjlj-exceptions and --enable-newlib-io-long-long options when configuring.
The --with-arch option may be specified to override the default value for the -march option, and to also build corresponding target libraries. The default is --with-arch=sm_30.
For example, if --with-arch=sm_70 is specified, -march=sm_30 and -march=sm_70 target libraries are built, and code generation defaults to -march=sm_70.
The OpenRISC 1000 32-bit processor with delay slots. This configuration is intended for embedded systems.
The OpenRISC 1000 32-bit processor with delay slots.
You can specify a default version for the -mcpu=cpu_type switch by using the configure option --with-cpu-cpu_type.
You will need GNU binutils 2.20 or newer.
PowerPC running Darwin (Mac OS X kernel).
Pre-installed versions of Mac OS X may not include any developer tools, meaning that you will not be able to build GCC from source. Tool binaries are available at https://opensource.apple.com.
This version of GCC requires at least cctools-590.36. The cctools-590.36 package referenced from https://gcc.gnu.org/ml/gcc/2006-03/msg00507.html will not work on systems older than 10.3.9 (aka darwin7.9.0).
PowerPC system in big endian mode, running System V.4.
PowerPC system in big endian mode running Linux.
PowerPC system in big endian mode running NetBSD.
Embedded PowerPC system in big endian mode for use in running under the PSIM simulator.
Embedded PowerPC system in big endian mode.
PowerPC system in little endian mode, running System V.4.
Embedded PowerPC system in little endian mode for use in running under the PSIM simulator.
Embedded PowerPC system in little endian mode.
The Renesas RL78 processor. This configuration is intended for embedded systems.
The RISC-V RV32 instruction set. This configuration is intended for embedded systems. This (and all other RISC-V) targets require the binutils 2.30 release.
The RISC-V RV32 instruction set running GNU/Linux. This (and all other RISC-V) targets require the binutils 2.30 release.
The RISC-V RV64 instruction set. This configuration is intended for embedded systems. This (and all other RISC-V) targets require the binutils 2.30 release.
The RISC-V RV64 instruction set running GNU/Linux. This (and all other RISC-V) targets require the binutils 2.30 release.
The Renesas RX processor.
S/390 system running GNU/Linux for S/390.
zSeries system (64-bit) running GNU/Linux for zSeries.
zSeries system (64-bit) running TPF. This platform is supported as cross-compilation target only.
Support for Solaris 11.3 and earlier has been obsoleted in GCC 13, but can still be enabled by configuring with --enable-obsolete. Support for Solaris 10 has been removed in GCC 10. Support for Solaris 9 has been removed in GCC 5. Support for Solaris 8 has been removed in GCC 4.8. Support for Solaris 7 has been removed in GCC 4.6.
Solaris 11.3 provides GCC 4.5.2, 4.7.3, and 4.8.2 as
/usr/gcc/4.5/bin/gcc or similar. Solaris 11.4
provides one or more of GCC 5, 7, 9, 10, 11, and 12.
You need to install the system/header, system/linker, and
developer/assembler packages.
Trying to use the compatibility tools in /usr/ucb, from the
compatibility/ucb package, to install GCC has been observed to
cause trouble. The fix is to remove /usr/ucb from your
PATH.
The build process works more smoothly with the legacy Solaris tools so,
if you have /usr/xpg4/bin in your PATH, we recommend that
you place /usr/bin before /usr/xpg4/bin for the duration
of the build.
We recommend the use of the Solaris assembler or the GNU assembler, in conjunction with the Solaris linker.
The GNU as versions included in Solaris 11.3, from GNU
binutils 2.23.1 or newer (in /usr/bin/gas and
/usr/gnu/bin/as), are known to work. The version from GNU
binutils 2.40 is known to work as well. Recent versions of the Solaris
assembler in /usr/bin/as work almost as well, though. To use GNU
as, configure with the options --with-gnu-as
--with-as=/usr/gnu/bin/as.
For linking, the Solaris linker is preferred. If you want to use the
GNU linker instead, the version in Solaris 11.3, from GNU binutils
2.23.1 or newer (in /usr/gnu/bin/ld and /usr/bin/gld),
works, as does the version from GNU binutils 2.40. However, it
generally lacks platform specific features, so better stay with Solaris
ld. To use the LTO linker plugin
(-fuse-linker-plugin) with GNU ld, GNU binutils
must be configured with --enable-largefile. To use
Solaris ld, we recommend to configure with
--without-gnu-ld --with-ld=/usr/bin/ld to guarantee the
right linker is found irrespective of the user’s PATH.
Note that your mileage may vary if you use a combination of the GNU
tools and the Solaris tools: while the combination GNU as and
Solaris ld works well, the reverse combination Solaris
as with GNU ld may fail to build or cause memory
corruption at runtime in some cases for C++ programs.
To enable symbol versioning in ‘libstdc++’ and other runtime
libraries with the Solaris linker, you need to have any version of GNU
c++filt, which is part of GNU binutils. Symbol versioning
will be disabled if no appropriate version is found. Solaris
c++filt from the Solaris Studio compilers does not
work.
In order to build the GNU Ada compiler, GNAT, a working GNAT is needed.
Since Solaris 11.4 SRU 39, GNAT 11 or 12 is bundled in the
developer/gcc/gcc-gnat package.
In order to build the GNU D compiler, GDC, a working ‘libphobos’ is needed. That library wasn’t built by default in GCC 9–11 on SPARC, or on x86 when the Solaris assembler is used, but can be enabled by configuring with --enable-libphobos. Also, GDC 9.4.0 is required on x86, while GDC 9.3.0 is known to work on SPARC.
The versions of the GNU Multiple Precision Library (GMP), the MPFR library and the MPC library bundled with Solaris 11.3 and later are usually recent enough to match GCC’s requirements. There are two caveats:
This section contains general configuration information for all SPARC-based platforms. In addition to reading this section, please read all other sections that match your target.
Newer versions of the GNU Multiple Precision Library (GMP), the MPFR library and the MPC library are known to be miscompiled by earlier versions of GCC on these platforms. We therefore recommend the use of the exact versions of these libraries listed as minimal versions in the prerequisites.
When GCC is configured to use GNU binutils 2.14 or later, the binaries produced are smaller than the ones produced using Solaris native tools; this difference is quite significant for binaries containing debugging information.
Starting with Solaris 7, the operating system is capable of executing 64-bit SPARC V9 binaries. GCC 3.1 and later properly supports this; the -m64 option enables 64-bit code generation.
When configuring the GNU Multiple Precision Library (GMP), the MPFR
library or the MPC library on Solaris, the canonical target triplet must
be specified as the build parameter on the configure
line. This target triplet can be obtained by invoking
./config.guess in the toplevel source directory of GCC (and
not that of GMP or MPFR or MPC). For example:
% srcdir/configure --build=sparc-sun-solaris2.11 --prefix=dirname
This is a synonym for ‘sparcv9-*-solaris2*’.
When configuring a 64-bit-default GCC on Solaris/SPARC, you must use a
build compiler that generates 64-bit code, either by default or by
specifying ‘CC='gcc -m64' CXX='g++ -m64' GDC='gdc -m64'’ to configure.
Additionally, you must pass --build=sparcv9-sun-solaris2.11
or --build=sparc64-sun-solaris2.11 because config.guess
misdetects this situation, which can cause build failures.
When configuring the GNU Multiple Precision Library (GMP), the MPFR
library or the MPC library, the canonical target triplet must be specified
as the build parameter on the configure line. For example:
% srcdir/configure --build=sparcv9-sun-solaris2.11 --prefix=dirname
The C6X family of processors. This port requires binutils-2.22 or newer.
CDS VISIUMcore processor. This configuration is intended for embedded systems.
Support for VxWorks is in flux. At present GCC supports only the very recent VxWorks 5.5 (aka Tornado 2.2) release, and only on PowerPC. We welcome patches for other architectures supported by VxWorks 5.5. Support for VxWorks AE would also be welcome; we believe this is merely a matter of writing an appropriate “configlette” (see below). We are not interested in supporting older, a.out or COFF-based, versions of VxWorks in GCC 3.
VxWorks comes with an older version of GCC installed in
$WIND_BASE/host; we recommend you do not overwrite it.
Choose an installation prefix entirely outside $WIND_BASE.
Before running configure, create the directories prefix
and prefix/bin. Link or copy the appropriate assembler,
linker, etc. into prefix/bin, and set your PATH to
include that directory while running both configure and
make.
You must give configure the
--with-headers=$WIND_BASE/target/h switch so that it can
find the VxWorks system headers. Since VxWorks is a cross compilation
target only, you must also specify --target=target.
configure will attempt to create the directory
prefix/target/sys-include and copy files into it;
make sure the user running configure has sufficient privilege
to do so.
GCC’s exception handling runtime requires a special “configlette” module, contrib/gthr_supp_vxw_5x.c. Follow the instructions in that file to add the module to your kernel build. (Future versions of VxWorks will incorporate this module.)
GCC supports the x86-64 architecture implemented by the AMD64 processor (amd64-*-* is an alias for x86_64-*-*) on GNU/Linux, FreeBSD and NetBSD. On GNU/Linux the default is a bi-arch compiler which is able to generate both 64-bit x86-64 and 32-bit x86 code (via the -m32 switch).
GCC also supports the x86-64 architecture implemented by the AMD64 processor (‘amd64-*-*’ is an alias for ‘x86_64-*-*’). Unlike other systems, without special options a bi-arch compiler is built which generates 32-bit code by default, but can generate 64-bit x86-64 code with the -m64 switch. Since GCC 4.7, there is also a configuration that defaults to 64-bit code, but can generate 32-bit code with -m32. To configure and build this way, you have to provide all support libraries like libgmp as 64-bit code, configure with --target=x86_64-pc-solaris2.11 and ‘CC=gcc -m64’.
This target is intended for embedded Xtensa systems using the ‘newlib’ C library. It uses ELF but does not support shared objects. Designed-defined instructions specified via the Tensilica Instruction Extension (TIE) language are only supported through inline assembly.
The Xtensa configuration information must be specified prior to building GCC. The include/xtensa-config.h header file contains the configuration information. If you created your own Xtensa configuration with the Xtensa Processor Generator, the downloaded files include a customized copy of this header file, which you can use to replace the default header file.
This target is for Xtensa systems running GNU/Linux. It supports ELF shared objects and the GNU C library (glibc). It also generates position-independent code (PIC) regardless of whether the -fpic or -fPIC options are used. In other respects, this target is the same as the ‘xtensa*-*-elf’ target.
The 16-bit versions of Microsoft Windows, such as Windows 3.1, are not supported.
However, the 32-bit port has limited support for Microsoft Windows 3.11 in the Win32s environment, as a target only. See below.
The 32-bit versions of Windows, including Windows 95, Windows NT, Windows XP, and Windows Vista, are supported by several different target platforms. These targets differ in which Windows subsystem they target and which C libraries are used.
GCC contains support for x86-64 using the mingw-w64 runtime library, available from https://www.mingw-w64.org/downloads/. This library should be used with the target triple x86_64-pc-mingw32.
Windows CE is supported as a target only on Hitachi SuperH (sh-wince-pe), and MIPS (mips-wince-pe).
GCC no longer supports Windows NT on the Alpha or PowerPC.
GCC no longer supports the Windows POSIX subsystem. However, it does support the Interix subsystem. See above.
Old target names including *-*-winnt and *-*-windowsnt are no longer used.
UWIN support has been removed due to a lack of maintenance.
Ports of GCC are included with the Cygwin environment.
GCC will build under Cygwin without modification; it does not build with Microsoft’s C++ compiler and there are no plans to make it do so.
The Cygwin native compiler can be configured to target any 32-bit x86 cpu architecture desired; the default is i686-pc-cygwin. It should be used with as up-to-date a version of binutils as possible; use either the latest official GNU binutils release in the Cygwin distribution, or version 2.20 or above if building your own.
GCC will build with and support only MinGW runtime 3.12 and later.
Earlier versions of headers are incompatible with the new default semantics
of extern inline in -std=c99 and -std=gnu99 modes.
To support emitting DWARF debugging info you need to use GNU binutils
version 2.16 or above containing support for the .secrel32
assembler pseudo-op.
GCC contains support files for many older (1980s and early 1990s) Unix variants. For the most part, support for these systems has not been deliberately removed, but it has not been maintained for several years and may suffer from bitrot.
Starting with GCC 3.1, each release has a list of “obsoleted” systems.
Support for these systems is still present in that release, but
configure will fail unless the --enable-obsolete
option is given. Unless a maintainer steps forward, support for these
systems will be removed from the next release of GCC.
Support for old systems as hosts for GCC can cause problems if the
workarounds for compiler, library and operating system bugs affect the
cleanliness or maintainability of the rest of GCC. In some cases, to
bring GCC up on such a system, if still possible with current GCC, may
require first installing an old version of GCC which did work on that
system, and using it to compile a more recent GCC, to avoid bugs in the
vendor compiler. Old releases of GCC 1 and GCC 2 are available in the
old-releases directory on the GCC mirror
sites. Header bugs may generally be avoided using
fixincludes, but bugs or deficiencies in libraries and the
operating system may still cause problems.
Support for older systems as targets for cross-compilation is less problematic than support for them as hosts for GCC; if an enthusiast wishes to make such a target work again (including resurrecting any of the targets that never worked with GCC 2, starting from the last version before they were removed), patches following the usual requirements would be likely to be accepted, since they should not affect the support for more modern targets.
For some systems, old versions of GNU binutils may also be useful, and are available from pub/binutils/old-releases on sourceware.org mirror sites.
Some of the information on specific systems above relates to such older systems, but much of the information about GCC on such systems (which may no longer be applicable to current GCC) is to be found in the GCC texinfo manual.
C++ support is significantly better on ELF targets if you use the GNU linker; duplicate copies of inlines, vtables and template instantiations will be discarded automatically.
Return to the GCC Installation page
@ 1.18 log @merge GCC 14.3.0. @ text @d1 1 a1 1 d3 4 a6 1 d32 2 d36 1 a36 5 a.summary-letter {text-decoration: none} blockquote.indentedblock {margin-right: 0em} blockquote.smallindentedblock {margin-right: 0em; font-size: smaller} blockquote.smallquotation {font-size: smaller} div.display {margin-left: 3.2em} d38 2 a39 17 div.lisp {margin-left: 3.2em} div.smalldisplay {margin-left: 3.2em} div.smallexample {margin-left: 3.2em} div.smalllisp {margin-left: 3.2em} kbd {font-style: oblique} pre.display {font-family: inherit} pre.format {font-family: inherit} pre.menu-comment {font-family: serif} pre.menu-preformatted {font-family: serif} pre.smalldisplay {font-family: inherit; font-size: smaller} pre.smallexample {font-size: smaller} pre.smallformat {font-family: inherit; font-size: smaller} pre.smalllisp {font-size: smaller} span.nolinebreak {white-space: nowrap} span.roman {font-family: initial; font-weight: normal} span.sansserif {font-family: sans-serif; font-weight: normal} ul.no-bullet {list-style: none} a46 1Please read this document carefully before installing the d83 1 a83 1
Note that this list of install notes is not a list of supported d88 77 a164 77
Binutils pre 2.24 does not have support for selecting -mabi and d177 1 a177 1 not support option -mabi=ilp32. d181 1 a181 1 --enable-fix-cortex-a53-835769 option. This will enable the fix by d183 2 a184 2 -mno-fix-cortex-a53-835769 option. Conversely, --disable-fix-cortex-a53-835769 will disable the workaround by d186 2 a187 2 --enable-fix-cortex-a53-835769 or --disable-fix-cortex-a53-835769 is given at configure time. d191 1 a191 1 --enable-fix-cortex-a53-843419 option. This workaround is applied at d194 2 a195 2 -mno-fix-cortex-a53-843419 option. Conversely, --disable-fix-cortex-a53-843419 will disable the workaround by default. d197 2 a198 2 --enable-fix-cortex-a53-843419 or --disable-fix-cortex-a53-843419 is given at configure time. d201 2 a202 2 default at configure time use the --enable-standard-branch-protection option. This is equivalent to having -mbranch-protection=standard d204 1 a204 1 passing the -mbranch-protection=none option which turns off all d206 1 a206 1 --disable-standard-branch-protection will disable both the d211 2 a212 3
This is a synonym for ‘x86_64-*-solaris2*’. d215 1 a215 2
--with-multilib-list= that does not list gfx1100
and gfx1103.
d232 2
a233 2
ROCm Platform, and use
libexec/gcc/amdhsa-amdhsa/version/gcn-run to launch them
d237 2
a238 2
--with-arch=fiji or
--with-multilib-list=fiji,.... Note that support for Fiji
d243 1
a243 2
Use ‘configure --target=arc-elf32 --with-cpu=cpu --enable-languages="c,c++"’ to configure GCC, with cpu being one of ‘arc600’, ‘arc601’, or ‘arc700’. d250 1 a250 2
Use ‘configure --target=arc-linux-uclibc --with-cpu=arc700 --enable-languages="c,c++"’ to configure GCC. d255 1 a255 2
xsinfo) if the host compiler is GNAT 4.8. Host compilers built from the
d263 1
a263 2
Use ‘configure --target=avr --enable-languages="c"’ to configure GCC. d274 3 a276 3
Error: register required d287 1 a287 2Blackfin
d292 1 a292 1 are available at https://sourceforge.net/projects/adi-toolchain/. d295 1 a295 2CRIS
d302 1 a302 1Use ‘configure --target=cris-elf’ to configure GCC for building d305 2 a306 3
DOS
Please have a look at the binaries page. d314 1 a314 2
epiphany-*-elf
d319 1 a319 2*-*-freebsd*
d326 1 a326 1 version found in the devel/binutils port. This also has been d332 1 a332 1 FreeBSD/amd64, so configure with --disable-multilib d338 1 a338 2ft32-*-elf
d343 1 a343 2h8300-hms
d346 1 a346 1Please have a look at the binaries page. d354 1 a354 2
hppa*-hp-hpux*
d359 2 a360 2 --with-gnu-as and --with-as=… options to ensure that GCC can find GAS. d366 1 a366 1 the target is a ‘hppa1*’ machine. d379 3 a381 3 in a number of ways. With HP cc,UNIX_STDcan be set to ‘95’ or ‘98’. Another way is to add an appropriate set of predefines toCC. The description for the munix= option contains d384 1 a384 1More specific information to ‘hppa*-hp-hpux*’ targets follows. d387 2 a388 3
hppa*-hp-hpux11
Refer to binaries for information about obtaining d410 1 a410 1 the same system. The ‘hppa[1-2]*-hp-hpux11*’ target generates code d412 1 a412 1 The ‘hppa64-hp-hpux11*’ target generates 64-bit code for the d416 1 a416 1 detected during configuration. You must define
PATHorCCso d418 2 a419 2 WhenCCis used, the definition should contain the options that are needed wheneverCCis used. d422 3 a424 3 inCCto correctly select the target for the build. It is also convenient to place many other compiler options inCC. For example,CC="cc -Ac +DA2.0W -Wp,-H16376 -D_CLASSIC_TYPES -D_HPUX_SOURCE"d426 2 a427 2 64-bit K&R/bundled mode. The +DA2.0W option will result in the automatic selection of the ‘hppa64-hp-hpux11*’ target. The d431 1 a431 1 -Ac option. These defines aren’t necessary with -Ae. d433 2 a434 2It is best to explicitly configure the ‘hppa64-hp-hpux11*’ target with the --with-ld=… option. This overrides the standard d442 1 a442 1 GCC 3.3 and later.
PHSS_26559andPHSS_24304are the d444 2 a445 2 11.00 and 11.11, respectively.PHSS_24303, the companion toPHSS_24304, might be usable but it hasn’t been tested. These d459 1 a459 1 uses the linker +init and +fini options for the same d465 1 a465 1Only the HP linker is supported for the ‘hppa64-hp-hpux11*’ target. d471 1 a471 1 with -static, and with dwarf2 unwind and exception support. d477 1 a477 1 versioning with --disable-symvers when using GNU ld. d480 1 a480 1 supported, so --enable-threads=dce does not work. d483 2 a484 3
*-*-linux-gnu
The
.init_arrayand.fini_arraysections are enabled d492 1 a492 2i?86-*-linux*
d494 1 a494 1 See bug 10877 for more information. d498 1 a498 1 found on www.bitwizard.nl. d501 1 a501 2i?86-*-solaris2*
d503 3 a505 3 with GCC 4.7, there is also a 64-bit ‘amd64-*-solaris2*’ or ‘x86_64-*-solaris2*’ configuration that corresponds to ‘sparcv9-sun-solaris2*’. d508 1 a508 2ia64-*-linux
d513 1 a513 1 --with-system-libunwind, then you must use libunwind 0.98 or d517 1 a517 2ia64-*-hpux*
d520 1 a520 1 the option --with-gnu-as may be necessary. d524 1 a524 2*-ibm-aix*
d530 1 a530 1 /etc/security/limits system configuration file. d539 1 a539 1 LDR_CNTRL environment variable, e.g., d541 2 a542 2% LDR_CNTRL=MAXDATA=0x50000000 d551 1 a551 1 one may use GNU Bash instead of AIX/bin/sh, e.g., d553 2 a554 2% CONFIG_SHELL=/opt/freeware/bin/bash d558 1 a558 1and then proceed as described in the build d560 1 a560 1 to invoke srcdir/configure. d567 2 a568 2
Errors involving
allocawhen building GCC generally are due to an incorrect definition ofCCin the Makefile or mixing files d570 5 a574 5 the build, the native AIX compiler must be invoked ascc(notxlc). Onceconfigurehas been informed ofxlc, one needs to use ‘make distclean’ to remove the configure cache files and ensure thatCCenvironment variable does not provide a definition that will confuseconfigure. d578 1 a578 1The native
asandldare recommended for d599 1 a599 1Building libstdc++.a requires a fix for an AIX Assembler bug d604 2 a605 2
‘libstdc++’ in GCC 3.4 increments the major version number of the shared object and GCC installation places the libstdc++.a d609 3 a611 3 versions of the ‘libstdc++’ shared object needs to be available to the AIX runtime loader. The GCC 3.1 ‘libstdc++.so.4’, if present, and GCC 3.3 ‘libstdc++.so.5’ shared objects can be d613 2 a614 2 the ‘F_LOADONLY’ flag in the shared object for each multilib libstdc++.a installed: d617 3 a619 3 libstdc++.a archive:
% ar -x libstdc++.a libstdc++.so.4 libstdc++.so.5 d622 1 a622 1Enable the ‘F_LOADONLY’ flag so that the shared object will be d624 2 a625 2
% strip -e libstdc++.so.4 libstdc++.so.5 d629 3 a631 3 libstdc++.a archive:% ar -q libstdc++.a libstdc++.so.4 libstdc++.so.5 d635 1 a635 1 --with-aix-soname=svr4 d651 1 a651 1 with AIX 4.3.1 should work for a 32-bit environment. The -g d657 1 a657 1 overflow severe error when the -bbigtoc option is used to link d661 1 a661 1 techsupport.services.ibm.com d667 1 a667 1 techsupport.services.ibm.com d673 1 a673 1 techsupport.services.ibm.com d678 1 a678 1 formats including floating-point numbers (e.g., ‘.’ vs ‘,’ for d681 2 a682 2 expects. If one encounters this problem, set theLANGenvironment variable to ‘C’ or ‘En_US’. d684 2 a685 2A default can be specified with the -mcpu=cpu_type switch and using the configure option --with-cpu-cpu_type. d688 1 a688 2
iq2000-*-elf
d693 1 a693 2lm32-*-elf
d698 1 a698 2lm32-*-uclinux
d703 1 a703 2LoongArch
d706 2 a707 2
- d710 3 a712 3
loongarch64-linux-gnu*
f64Uses
lp64d/baseABI by default. d714 2 a715 2f32Uses
lp64f/baseABI by default. d717 2 a718 2sfUses
lp64s/baseABI by default. d723 2 a724 2loongarch64-linux-gnuSame as
loongarch64-linux-gnuf64for legacy support. d729 1 a729 1 https://github.com/loongson/LoongArch-Documentation. d732 1 a732 2m32c-*-elf
d737 1 a737 2m32r-*-elf
d742 1 a742 2m68k-*-*
d744 2 a745 2 ‘m68k-*-elf*’, ‘m68k-*-rtems’, ‘m68k-*-uclinux’ and ‘m68k-*-linux’ d748 3 a750 3 --with-arch=m68k toconfigure. Alternatively, you can omit the M680x0 libraries by passing --with-arch=cf toconfigure. These targets default to 5206 or 5475 code as d752 1 a752 1 configured with --with-arch=cf and 68020 code otherwise. d754 2 a755 2The ‘m68k-*-netbsd’ and ‘m68k-*-openbsd’ targets also support the --with-arch d757 1 a757 1 --with-arch=cf and 68020 code otherwise. d760 4 a763 4 with --with-cpu=target. This target can either be a -mcpu argument or one of the following values: ‘m68000’, ‘m68010’, ‘m68020’, ‘m68030’, ‘m68040’, ‘m68060’, ‘m68020-40’ and ‘m68020-60’. d768 1 a768 2
m68k-*-uclinux
d770 1 a770 1 ‘m68k-linux-gnu’ ABI rather than the ‘m68k-elf’ ABI. d775 1 a775 2microblaze-*-elf
d780 1 a780 2mips-*-*
d792 3 a794 3 make ‘mips*-*-*’ use the generic implementation instead. You can also configure for ‘mipsel-elf’ as a workaround. The ‘mips*-*-linux*’ target continues to use the MIPS II routines. More d798 4 a801 4The built-in
__sync_*functions are available on MIPS II and later systems and others that support the ‘ll’, ‘sc’ and ‘sync’ instructions. This can be overridden by passing --with-llsc or --without-llsc when configuring GCC. d803 4 a806 4 missing, the default for ‘mips*-*-linux*’ targets is --with-llsc. The --with-llsc and --without-llsc configure options may be overridden at compile time by passing the -mllsc or -mno-llsc options to d810 1 a810 1 -mno-check-zero-division is passed to the compiler) by d814 3 a816 3 prevents trap from generating the proper signal (SIGFPE). To enable the use of break, use the --with-divide=breaksconfigureoption when configuring GCC. The default is to d820 1 a820 2moxie-*-elf
d824 1 a824 2msp430-*-elf*
d828 1 a828 1‘msp430-*-elf’ is the standard configuration with most GCC d831 1 a831 1
‘msp430-*-elfbare’ is tuned for a bare-metal environment, and disables d837 3 a839 3
- transactional memory
- __cxa_atexit d843 1 a843 2
nds32le-*-elf
d847 1 a847 2nds32be-*-elf
d851 1 a851 2nvptx-*-none
d855 1 a855 1 nvptx-tools. d857 1 a857 1 --with-build-time-tools=[install-nvptx-tools]/nvptx-none/bin. d861 1 a861 1 to nvptx-newlib’s newlib directory to the directory containing d864 2 a865 2Use the --disable-sjlj-exceptions and --enable-newlib-io-long-long options when configuring. d867 2 a868 2
The --with-arch option may be specified to override the default value for the -march option, and to also build d870 1 a870 1 The default is --with-arch=sm_30. d872 3 a874 3
For example, if --with-arch=sm_70 is specified, -march=sm_30 and -march=sm_70 target libraries are built, and code generation defaults to -march=sm_70. d877 1 a877 2
or1k-*-elf
d882 1 a882 2or1k-*-linux
d886 3 a888 4powerpc-*-*
You can specify a default version for the -mcpu=cpu_type switch by using the configure option --with-cpu-cpu_type. d893 1 a893 2
powerpc-*-darwin*
d899 1 a899 1 https://opensource.apple.com. d903 1 a903 1 https://gcc.gnu.org/ml/gcc/2006-03/msg00507.html will not work d907 1 a907 2powerpc-*-elf
d911 1 a911 2powerpc*-*-linux-gnu*
d915 1 a915 2powerpc-*-netbsd*
d919 1 a919 2powerpc-*-eabisim
d924 1 a924 2powerpc-*-eabi
d928 1 a928 2powerpcle-*-elf
d932 1 a932 2powerpcle-*-eabisim
d937 1 a937 2powerpcle-*-eabi
d941 1 a941 2rl78-*-elf
d946 1 a946 2riscv32-*-elf
d952 1 a952 2riscv32-*-linux
d957 1 a957 2riscv64-*-elf
d963 1 a963 2riscv64-*-linux
d968 1 a968 2rx-*-elf
d972 1 a972 2s390-*-linux*
d976 1 a976 2s390x-*-linux*
d980 1 a980 2s390x-ibm-tpf*
d985 1 a985 2*-*-solaris2*
d987 1 a987 1 can still be enabled by configuring with --enable-obsolete. d993 1 a993 1/usr/gcc/4.5/bin/gccor similar. Solaris 11.4 d996 2 a997 2You need to install the
system/header,system/linker, anddeveloper/assemblerpackages. d999 4 a1002 4Trying to use the compatibility tools in /usr/ucb, from the
compatibility/ucbpackage, to install GCC has been observed to cause trouble. The fix is to remove /usr/ucb from yourPATH. d1005 2 a1006 2 if you have /usr/xpg4/bin in yourPATH, we recommend that you place /usr/bin before /usr/xpg4/bin for the duration d1012 3 a1014 3The GNU
asversions included in Solaris 11.3, from GNU binutils 2.23.1 or newer (in /usr/bin/gas and /usr/gnu/bin/as), are known to work. The version from GNU d1016 2 a1017 2 assembler in /usr/bin/as work almost as well, though. To use GNUas, configure with the options --with-gnu-as d1022 1 a1022 1 2.23.1 or newer (in /usr/gnu/bin/ld and /usr/bin/gld), d1025 6 a1030 6ld. To use the LTO linker plugin (-fuse-linker-plugin) with GNUld, GNU binutils must be configured with --enable-largefile. To use Solarisld, we recommend to configure with --without-gnu-ld --with-ld=/usr/bin/ld to guarantee the right linker is found irrespective of the user’sPATH. d1033 3 a1035 3 tools and the Solaris tools: while the combination GNUasand Solarisldworks well, the reverse combination Solarisaswith GNUldmay fail to build or cause memory d1038 1 a1038 1To enable symbol versioning in ‘libstdc++’ and other runtime d1040 1 a1040 1
c++filt, which is part of GNU binutils. Symbol versioning d1042 1 a1042 1c++filtfrom the Solaris Studio compilers does not d1047 1 a1047 1developer/gcc/gcc-gnatpackage. d1049 1 a1049 1In order to build the GNU D compiler, GDC, a working ‘libphobos’ is d1052 1 a1052 1 configuring with --enable-libphobos. Also, GDC 9.4.0 is d1060 3 a1062 3
- While the version of the GMP library in Solaris 11.3 works with GCC, you need to configure with --with-gmp-include=/usr/include/gmp. d1064 1 a1064 1
- The version of the MPFR libary included in Solaris 11.3 is too old; you d1070 1 a1070 2
sparc*-*-*
d1079 1 a1079 1 in the prerequisites. d1082 1 a1082 2sparc-sun-solaris2*
d1090 1 a1090 1 this; the -m64 option enables 64-bit code generation. d1094 1 a1094 1 be specified as thebuildparameter on theconfigured1096 1 a1096 1./config.guessin the toplevel source directory of GCC (and d1099 2 a1100 2% srcdir/configure --build=sparc-sun-solaris2.11 --prefix=dirname d1104 1 a1104 2sparc-*-linux*
d1107 2 a1108 3sparc64-*-solaris2*
This is a synonym for ‘sparcv9-*-solaris2*’. d1111 1 a1111 2
sparcv9-*-solaris2*
d1115 3 a1117 3 specifying ‘CC='gcc -m64' CXX='g++ -m64' GDC='gdc -m64'’ toconfigure. Additionally, you must pass --build=sparcv9-sun-solaris2.11 or --build=sparc64-sun-solaris2.11 because config.guess d1122 1 a1122 1 as thebuildparameter on theconfigureline. For example: d1124 2 a1125 2% srcdir/configure --build=sparcv9-sun-solaris2.11 --prefix=dirname d1129 1 a1129 2c6x-*-*
d1133 1 a1133 2visium-*-elf
d1138 2 a1139 3*-*-vxworks*
Support for VxWorks is in flux. At present GCC supports only the d1148 7 a1154 7 $WIND_BASE/host; we recommend you do not overwrite it. Choose an installation prefix entirely outside $WIND_BASE. Before running
configure, create the directories prefix and prefix/bin. Link or copy the appropriate assembler, linker, etc. into prefix/bin, and set your PATH to include that directory while running bothconfigureandmake. d1156 2 a1157 2You must give
configurethe --with-headers=$WIND_BASE/target/h switch so that it can d1159 4 a1162 4 target only, you must also specify --target=target.configurewill attempt to create the directory prefix/target/sys-include and copy files into it; make sure the user runningconfigurehas sufficient privilege d1166 1 a1166 1 module, contrib/gthr_supp_vxw_5x.c. Follow the instructions in d1171 1 a1171 2x86_64-*-*, amd64-*-*
d1175 1 a1175 1 both 64-bit x86-64 and 32-bit x86 code (via the -m32 switch). d1178 1 a1178 2x86_64-*-solaris2*
d1180 1 a1180 1 processor (‘amd64-*-*’ is an alias for ‘x86_64-*-*’). d1183 1 a1183 1 can generate 64-bit x86-64 code with the -m64 switch. Since d1185 4 a1188 4 can generate 32-bit code with -m32. To configure and build this way, you have to provide all support libraries like libgmp as 64-bit code, configure with --target=x86_64-pc-solaris2.11 and ‘CC=gcc -m64’. d1191 1 a1191 2xtensa*-*-elf
d1193 1 a1193 1 ‘newlib’ C library. It uses ELF but does not support shared d1199 1 a1199 1 building GCC. The include/xtensa-config.h header d1206 1 a1206 2xtensa*-*-linux*
d1210 1 a1210 1 -fpic or -fPIC options are used. In other d1212 1 a1212 1 ‘xtensa*-*-elf’ target. d1215 1 a1215 2Microsoft Windows
d1217 1 a1217 2Intel 16-bit versions
d1224 1 a1224 2Intel 32-bit versions
d1230 2 a1231 2
- Cygwin *-*-cygwin: Cygwin provides a user-space d1233 1 a1233 1
- MinGW *-*-mingw32: MinGW is a native GCC port for d1235 2 a1236 2
- MKS i386-pc-mks: NuTCracker from MKS. See https://www.mkssoftware.com for more information. d1239 1 a1239 2
Intel 64-bit versions
d1241 1 a1241 1 runtime library, available from https://www.mingw-w64.org/downloads/. d1244 1 a1244 2Windows CE
d1248 1 a1248 2Other Windows Platforms
d1259 1 a1259 2*-*-cygwin
d1261 1 a1261 1 Cygwin environment. d1273 1 a1273 2*-*-mingw32
d1276 1 a1276 1 ofextern inlinein-std=c99and-std=gnu99modes. d1279 1 a1279 1 version 2.16 or above containing support for the.secrel32d1283 1 a1283 2Older systems
d1291 1 a1291 1configurewill fail unless the --enable-obsolete d1302 1 a1302 1 old-releases directory on the GCC mirror d1304 1 a1304 1fixincludes, but bugs or deficiencies in libraries and the d1312 1 a1312 1 following the usual requirements would be d1317 2 a1318 2 and are available from pub/binutils/old-releases on sourceware.org mirror sites. d1326 1 a1326 2all ELF targets (SVR4, Solaris, etc.)
d1328 1 a1328 1 GNU linker; duplicate copies of d1335 1 a1335 1Return to the GCC Installation page @ 1.17 log @merge GCC 12.5.0. XXX istream.cc may need more work. @ text @d3 1 a3 1
d22 3 a31 2 a33 1 a.copiable-anchor {visibility: hidden; text-decoration: none; line-height: 0em} d36 2 d40 4 d49 4 a55 1 span:hover a.copiable-anchor {visibility: visible} d89 5 a93 5 d194 2 a195 1aarch64*-*-*
d232 2 a233 1alpha*-*-*
d239 2 a240 1amd64-*-solaris2*
d244 2 a245 1amdgcn-*-amdhsa
d263 2 a264 1arc-*-elf32
d271 2 a272 1arc-linux-uclibc
d277 2 a278 1arm-*-eabi
d286 2 a287 1avr
d304 2 a305 2Error: register required d311 2 a312 1Blackfin
d320 2 a321 1CR16
d335 2 a336 1CRIS
d346 2 a347 1DOS
d356 2 a357 1epiphany-*-elf
d362 2 a363 1*-*-freebsd*
d394 2 a395 1ft32-*-elf
d400 2 a401 1h8300-hms
d412 2 a413 1hppa*-hp-hpux*
d463 2 a464 1hppa*-hp-hpux10
d474 2 a475 1hppa*-hp-hpux11
d578 2 a579 1*-*-linux-gnu
d588 2 a589 1i?86-*-linux*
d598 2 a599 1i?86-*-solaris2*
d623 2 a624 1ia64-*-linux
d633 2 a634 1ia64-*-hpux*
d647 2 a648 1*-ibm-aix*
d665 2 a666 2% LDR_CNTRL=MAXDATA=0x50000000 d677 2 a678 2% CONFIG_SHELL=/opt/freeware/bin/bash d728 1 a728 1‘libstdc++’ in GCC 3.4 increments the major version number of the d742 2 a743 2
% ar -x libstdc++.a libstdc++.so.4 libstdc++.so.5 d748 2 a749 2% strip -e libstdc++.so.4 libstdc++.so.5 d754 2 a755 2% ar -q libstdc++.a libstdc++.so.4 libstdc++.so.5 d812 2 a813 1iq2000-*-elf
d818 2 a819 1lm32-*-elf
d824 2 a825 1lm32-*-uclinux
d830 2 a831 1LoongArch
d835 1 a835 1- d839 1 a839 1
loongarch64-linux-gnu*- d842 1 a842 1
f64- d845 1 a845 1
f32- d851 1 a851 1
sf- d861 2 a862 1
loongarch64-linux-gnum32c-*-elf
d867 2 a868 1m32r-*-elf
d873 2 a874 1m68k-*-*
d900 2 a901 1m68k-*-uclinux
d908 2 a909 1microblaze-*-elf
d914 2 a915 1mips-*-*
d955 2 a956 1moxie-*-elf
d960 2 a961 1msp430-*-elf*
d980 2 a981 1nds32le-*-elf
d985 2 a986 1nds32be-*-elf
d990 2 a991 1nvptx-*-none
d1008 2 a1009 1or1k-*-elf
d1014 2 a1015 1or1k-*-linux
d1019 2 a1020 1powerpc-*-*
d1027 2 a1028 1powerpc-*-darwin*
d1042 2 a1043 1powerpc-*-elf
d1047 2 a1048 1powerpc*-*-linux-gnu*
d1052 2 a1053 1powerpc-*-netbsd*
d1057 2 a1058 1powerpc-*-eabisim
d1063 2 a1064 1powerpc-*-eabi
d1068 2 a1069 1powerpcle-*-elf
d1073 2 a1074 1powerpcle-*-eabisim
d1079 2 a1080 1powerpcle-*-eabi
d1084 2 a1085 1rl78-*-elf
d1090 2 a1091 1riscv32-*-elf
d1097 2 a1098 1riscv32-*-linux
d1103 2 a1104 1riscv64-*-elf
d1110 2 a1111 1riscv64-*-linux
d1116 2 a1117 1rx-*-elf
d1121 2 a1122 1s390-*-linux*
d1126 2 a1127 1s390x-*-linux*
d1131 2 a1132 1s390x-ibm-tpf*
d1137 2 a1138 1*-*-solaris2*
d1153 2 a1154 2% CONFIG_SHELL=/bin/ksh d1218 2 a1219 1sparc*-*-*
d1231 2 a1232 1sparc-sun-solaris2*
d1252 2 a1253 2% ./configure --build=sparc-sun-solaris2.11 --prefix=xxx d1257 2 a1258 1sparc-*-linux*
d1261 2 a1262 1sparc64-*-solaris2*
d1275 2 a1276 2% ./configure --build=sparc64-sun-solaris2.11 --prefix=xxx d1280 2 a1281 1sparcv9-*-solaris2*
d1285 2 a1286 1c6x-*-*
d1290 2 a1291 1tilegx-*-linux*
d1296 2 a1297 1tilegxbe-*-linux*
d1302 2 a1303 1tilepro-*-linux*
d1308 2 a1309 1visium-*-elf
d1314 2 a1315 1*-*-vxworks*
d1348 2 a1349 1x86_64-*-*, amd64-*-*
d1356 2 a1357 1x86_64-*-solaris2*
d1370 2 a1371 1xtensa*-*-elf
d1386 2 a1387 1xtensa*-*-linux*
d1396 2 a1397 1Microsoft Windows
d1399 2 a1400 1Intel 16-bit versions
d1407 2 a1408 1Intel 32-bit versions
d1423 2 a1424 1Intel 64-bit versions
d1429 2 a1430 1Windows CE
d1434 2 a1435 1Other Windows Platforms
d1449 2 a1450 1*-*-cygwin
d1464 2 a1465 1*-*-mingw32
d1475 2 a1476 1Older systems
d1519 2 a1520 1all ELF targets (SVR4, Solaris 2, etc.)
@ 1.15 log @initial merge of GCC 12.3.0. this doesn't include any of the changes to the .c -> .cc files renamed, and reverts our local changes to the vax port and libsanitizer subdir. vax GCC was rewritten and our local fixes no longer are relevant, and the new libsanitizer is more updated than our old one, and merging via gcc10->gcc12 is not really possible. unfortunately, our local changes to libsanitizer that aren't related to the general update of those sources (ie, the netbsd code) will need to be re-checked and perhaps re-ported. @ text @d3 3 a24 3 d32 2 d36 1 a38 2 blockquote.smallindentedblock {margin-right: 0em; font-size: smaller} blockquote.smallquotation {font-size: smaller} a40 4 div.lisp {margin-left: 3.2em} div.smalldisplay {margin-left: 3.2em} div.smallexample {margin-left: 3.2em} div.smalllisp {margin-left: 3.2em} a45 4 pre.smalldisplay {font-family: inherit; font-size: smaller} pre.smallexample {font-size: smaller} pre.smallformat {font-family: inherit; font-size: smaller} pre.smalllisp {font-size: smaller} d49 1 d83 5 a87 5 d188 1 a188 2aarch64*-*-*
d225 1 a225 2alpha*-*-*
d231 1 a231 2amd64-*-solaris2*
d235 1 a235 2amdgcn-*-amdhsa
d253 1 a253 2arc-*-elf32
d260 1 a260 2arc-linux-uclibc
d265 1 a265 2arm-*-eabi
d273 1 a273 2avr
d290 2 a291 2Error: register required d297 1 a297 2Blackfin
d305 1 a305 2CR16
d319 1 a319 2CRIS
d329 1 a329 2DOS
d338 1 a338 2epiphany-*-elf
d343 1 a343 2*-*-freebsd*
d374 1 a374 2ft32-*-elf
d379 1 a379 2h8300-hms
d390 1 a390 2hppa*-hp-hpux*
d440 1 a440 2hppa*-hp-hpux10
d450 1 a450 2hppa*-hp-hpux11
d553 1 a553 2*-*-linux-gnu
d562 1 a562 2i?86-*-linux*
d571 1 a571 2i?86-*-solaris2*
d595 1 a595 2ia64-*-linux
d604 1 a604 2ia64-*-hpux*
d617 1 a617 2*-ibm-aix*
d634 2 a635 2% LDR_CNTRL=MAXDATA=0x50000000 d646 2 a647 2% CONFIG_SHELL=/opt/freeware/bin/bash d697 1 a697 1‘libstdc++’ in GCC 3.4 increments the major version number of the d711 2 a712 2
% ar -x libstdc++.a libstdc++.so.4 libstdc++.so.5 d717 2 a718 2% strip -e libstdc++.so.4 libstdc++.so.5 d723 2 a724 2% ar -q libstdc++.a libstdc++.so.4 libstdc++.so.5 d781 1 a781 2iq2000-*-elf
d786 1 a786 2lm32-*-elf
d791 1 a791 2lm32-*-uclinux
d796 1 a796 2LoongArch
d800 1 a800 1- d804 1 a804 1
loongarch64-linux-gnu*- d807 1 a807 1
f64- d810 1 a810 1
f32- d816 1 a816 1
sf- d826 1 a826 2
loongarch64-linux-gnum32c-*-elf
d831 1 a831 2m32r-*-elf
d836 1 a836 2m68k-*-*
d862 1 a862 2m68k-*-uclinux
d869 1 a869 2microblaze-*-elf
d874 1 a874 2mips-*-*
d914 1 a914 2moxie-*-elf
d918 1 a918 2msp430-*-elf*
d937 1 a937 2nds32le-*-elf
d941 1 a941 2nds32be-*-elf
d945 1 a945 2nvptx-*-none
d962 1 a962 2or1k-*-elf
d967 1 a967 2or1k-*-linux
d971 1 a971 2powerpc-*-*
d978 1 a978 2powerpc-*-darwin*
d992 1 a992 2powerpc-*-elf
d996 1 a996 2powerpc*-*-linux-gnu*
d1000 1 a1000 2powerpc-*-netbsd*
d1004 1 a1004 2powerpc-*-eabisim
d1009 1 a1009 2powerpc-*-eabi
d1013 1 a1013 2powerpcle-*-elf
d1017 1 a1017 2powerpcle-*-eabisim
d1022 1 a1022 2powerpcle-*-eabi
d1026 1 a1026 2rl78-*-elf
d1031 1 a1031 2riscv32-*-elf
d1037 1 a1037 2riscv32-*-linux
d1042 1 a1042 2riscv64-*-elf
d1048 1 a1048 2riscv64-*-linux
d1053 1 a1053 2rx-*-elf
d1057 1 a1057 2s390-*-linux*
d1061 1 a1061 2s390x-*-linux*
d1065 1 a1065 2s390x-ibm-tpf*
d1070 1 a1070 2*-*-solaris2*
d1085 2 a1086 2% CONFIG_SHELL=/bin/ksh d1150 1 a1150 2sparc*-*-*
d1162 1 a1162 2sparc-sun-solaris2*
d1182 2 a1183 2% ./configure --build=sparc-sun-solaris2.11 --prefix=xxx d1187 1 a1187 2sparc-*-linux*
d1190 1 a1190 2sparc64-*-solaris2*
d1203 2 a1204 2% ./configure --build=sparc64-sun-solaris2.11 --prefix=xxx d1208 1 a1208 2sparcv9-*-solaris2*
d1212 1 a1212 2c6x-*-*
d1216 1 a1216 2tilegx-*-linux*
d1221 1 a1221 2tilegxbe-*-linux*
d1226 1 a1226 2tilepro-*-linux*
d1231 1 a1231 2visium-*-elf
d1236 1 a1236 2*-*-vxworks*
d1269 1 a1269 2x86_64-*-*, amd64-*-*
d1276 1 a1276 2x86_64-*-solaris2*
d1289 1 a1289 2xtensa*-*-elf
d1304 1 a1304 2xtensa*-*-linux*
d1313 1 a1313 2Microsoft Windows
d1315 1 a1315 2Intel 16-bit versions
d1322 1 a1322 2Intel 32-bit versions
d1337 1 a1337 2Intel 64-bit versions
d1342 1 a1342 2Windows CE
d1346 1 a1346 2Other Windows Platforms
d1360 1 a1360 2*-*-cygwin
d1374 1 a1374 2*-*-mingw32
d1384 1 a1384 2Older systems
d1427 1 a1427 2all ELF targets (SVR4, Solaris 2, etc.)
@ 1.15.2.1 log @Sync with HEAD. @ text @a2 3 d22 3 a31 2 a33 1 a.copiable-anchor {visibility: hidden; text-decoration: none; line-height: 0em} d36 2 d40 4 d49 4 a55 1 span:hover a.copiable-anchor {visibility: visible} d89 5 a93 5 d194 2 a195 1aarch64*-*-*
d232 2 a233 1alpha*-*-*
d239 2 a240 1amd64-*-solaris2*
d244 2 a245 1amdgcn-*-amdhsa
d263 2 a264 1arc-*-elf32
d271 2 a272 1arc-linux-uclibc
d277 2 a278 1arm-*-eabi
d286 2 a287 1avr
d304 2 a305 2Error: register required d311 2 a312 1Blackfin
d320 2 a321 1CR16
d335 2 a336 1CRIS
d346 2 a347 1DOS
d356 2 a357 1epiphany-*-elf
d362 2 a363 1*-*-freebsd*
d394 2 a395 1ft32-*-elf
d400 2 a401 1h8300-hms
d412 2 a413 1hppa*-hp-hpux*
d463 2 a464 1hppa*-hp-hpux10
d474 2 a475 1hppa*-hp-hpux11
d578 2 a579 1*-*-linux-gnu
d588 2 a589 1i?86-*-linux*
d598 2 a599 1i?86-*-solaris2*
d623 2 a624 1ia64-*-linux
d633 2 a634 1ia64-*-hpux*
d647 2 a648 1*-ibm-aix*
d665 2 a666 2% LDR_CNTRL=MAXDATA=0x50000000 d677 2 a678 2% CONFIG_SHELL=/opt/freeware/bin/bash d728 1 a728 1‘libstdc++’ in GCC 3.4 increments the major version number of the d742 2 a743 2
% ar -x libstdc++.a libstdc++.so.4 libstdc++.so.5 d748 2 a749 2% strip -e libstdc++.so.4 libstdc++.so.5 d754 2 a755 2% ar -q libstdc++.a libstdc++.so.4 libstdc++.so.5 d812 2 a813 1iq2000-*-elf
d818 2 a819 1lm32-*-elf
d824 2 a825 1lm32-*-uclinux
d830 2 a831 1LoongArch
d835 1 a835 1- d839 1 a839 1
loongarch64-linux-gnu*- d842 1 a842 1
f64- d845 1 a845 1
f32- d851 1 a851 1
sf- d861 2 a862 1
loongarch64-linux-gnum32c-*-elf
d867 2 a868 1m32r-*-elf
d873 2 a874 1m68k-*-*
d900 2 a901 1m68k-*-uclinux
d908 2 a909 1microblaze-*-elf
d914 2 a915 1mips-*-*
d955 2 a956 1moxie-*-elf
d960 2 a961 1msp430-*-elf*
d980 2 a981 1nds32le-*-elf
d985 2 a986 1nds32be-*-elf
d990 2 a991 1nvptx-*-none
d1008 2 a1009 1or1k-*-elf
d1014 2 a1015 1or1k-*-linux
d1019 2 a1020 1powerpc-*-*
d1027 2 a1028 1powerpc-*-darwin*
d1042 2 a1043 1powerpc-*-elf
d1047 2 a1048 1powerpc*-*-linux-gnu*
d1052 2 a1053 1powerpc-*-netbsd*
d1057 2 a1058 1powerpc-*-eabisim
d1063 2 a1064 1powerpc-*-eabi
d1068 2 a1069 1powerpcle-*-elf
d1073 2 a1074 1powerpcle-*-eabisim
d1079 2 a1080 1powerpcle-*-eabi
d1084 2 a1085 1rl78-*-elf
d1090 2 a1091 1riscv32-*-elf
d1097 2 a1098 1riscv32-*-linux
d1103 2 a1104 1riscv64-*-elf
d1110 2 a1111 1riscv64-*-linux
d1116 2 a1117 1rx-*-elf
d1121 2 a1122 1s390-*-linux*
d1126 2 a1127 1s390x-*-linux*
d1131 2 a1132 1s390x-ibm-tpf*
d1137 2 a1138 1*-*-solaris2*
d1153 2 a1154 2% CONFIG_SHELL=/bin/ksh d1218 2 a1219 1sparc*-*-*
d1231 2 a1232 1sparc-sun-solaris2*
d1252 2 a1253 2% ./configure --build=sparc-sun-solaris2.11 --prefix=xxx d1257 2 a1258 1sparc-*-linux*
d1261 2 a1262 1sparc64-*-solaris2*
d1275 2 a1276 2% ./configure --build=sparc64-sun-solaris2.11 --prefix=xxx d1280 2 a1281 1sparcv9-*-solaris2*
d1285 2 a1286 1c6x-*-*
d1290 2 a1291 1tilegx-*-linux*
d1296 2 a1297 1tilegxbe-*-linux*
d1302 2 a1303 1tilepro-*-linux*
d1308 2 a1309 1visium-*-elf
d1314 2 a1315 1*-*-vxworks*
d1348 2 a1349 1x86_64-*-*, amd64-*-*
d1356 2 a1357 1x86_64-*-solaris2*
d1370 2 a1371 1xtensa*-*-elf
d1386 2 a1387 1xtensa*-*-linux*
d1396 2 a1397 1Microsoft Windows
d1399 2 a1400 1Intel 16-bit versions
d1407 2 a1408 1Intel 32-bit versions
d1423 2 a1424 1Intel 64-bit versions
d1429 2 a1430 1Windows CE
d1434 2 a1435 1Other Windows Platforms
d1449 2 a1450 1*-*-cygwin
d1464 2 a1465 1*-*-mingw32
d1475 2 a1476 1Older systems
d1519 2 a1520 1all ELF targets (SVR4, Solaris 2, etc.)
@ 1.15.2.2 log @Sync with HEAD @ text @d3 3 a24 3 d32 2 d36 1 a38 2 blockquote.smallindentedblock {margin-right: 0em; font-size: smaller} blockquote.smallquotation {font-size: smaller} a40 4 div.lisp {margin-left: 3.2em} div.smalldisplay {margin-left: 3.2em} div.smallexample {margin-left: 3.2em} div.smalllisp {margin-left: 3.2em} a45 4 pre.smalldisplay {font-family: inherit; font-size: smaller} pre.smallexample {font-size: smaller} pre.smallformat {font-family: inherit; font-size: smaller} pre.smalllisp {font-size: smaller} d49 1 d83 5 a87 5 d188 1 a188 2aarch64*-*-*
d225 1 a225 2alpha*-*-*
d231 1 a231 2amd64-*-solaris2*
d235 1 a235 2amdgcn-*-amdhsa
d253 1 a253 2arc-*-elf32
d260 1 a260 2arc-linux-uclibc
d265 1 a265 2arm-*-eabi
d273 1 a273 2avr
d290 2 a291 2Error: register required d297 1 a297 2Blackfin
d305 1 a305 2CR16
d319 1 a319 2CRIS
d329 1 a329 2DOS
d338 1 a338 2epiphany-*-elf
d343 1 a343 2*-*-freebsd*
d374 1 a374 2ft32-*-elf
d379 1 a379 2h8300-hms
d390 1 a390 2hppa*-hp-hpux*
d440 1 a440 2hppa*-hp-hpux10
d450 1 a450 2hppa*-hp-hpux11
d553 1 a553 2*-*-linux-gnu
d562 1 a562 2i?86-*-linux*
d571 1 a571 2i?86-*-solaris2*
d595 1 a595 2ia64-*-linux
d604 1 a604 2ia64-*-hpux*
d617 1 a617 2*-ibm-aix*
d634 2 a635 2% LDR_CNTRL=MAXDATA=0x50000000 d646 2 a647 2% CONFIG_SHELL=/opt/freeware/bin/bash d697 1 a697 1‘libstdc++’ in GCC 3.4 increments the major version number of the d711 2 a712 2
% ar -x libstdc++.a libstdc++.so.4 libstdc++.so.5 d717 2 a718 2% strip -e libstdc++.so.4 libstdc++.so.5 d723 2 a724 2% ar -q libstdc++.a libstdc++.so.4 libstdc++.so.5 d781 1 a781 2iq2000-*-elf
d786 1 a786 2lm32-*-elf
d791 1 a791 2lm32-*-uclinux
d796 1 a796 2LoongArch
d800 1 a800 1- d804 1 a804 1
loongarch64-linux-gnu*- d807 1 a807 1
f64- d810 1 a810 1
f32- d816 1 a816 1
sf- d826 1 a826 2
loongarch64-linux-gnum32c-*-elf
d831 1 a831 2m32r-*-elf
d836 1 a836 2m68k-*-*
d862 1 a862 2m68k-*-uclinux
d869 1 a869 2microblaze-*-elf
d874 1 a874 2mips-*-*
d914 1 a914 2moxie-*-elf
d918 1 a918 2msp430-*-elf*
d937 1 a937 2nds32le-*-elf
d941 1 a941 2nds32be-*-elf
d945 1 a945 2nvptx-*-none
d962 1 a962 2or1k-*-elf
d967 1 a967 2or1k-*-linux
d971 1 a971 2powerpc-*-*
d978 1 a978 2powerpc-*-darwin*
d992 1 a992 2powerpc-*-elf
d996 1 a996 2powerpc*-*-linux-gnu*
d1000 1 a1000 2powerpc-*-netbsd*
d1004 1 a1004 2powerpc-*-eabisim
d1009 1 a1009 2powerpc-*-eabi
d1013 1 a1013 2powerpcle-*-elf
d1017 1 a1017 2powerpcle-*-eabisim
d1022 1 a1022 2powerpcle-*-eabi
d1026 1 a1026 2rl78-*-elf
d1031 1 a1031 2riscv32-*-elf
d1037 1 a1037 2riscv32-*-linux
d1042 1 a1042 2riscv64-*-elf
d1048 1 a1048 2riscv64-*-linux
d1053 1 a1053 2rx-*-elf
d1057 1 a1057 2s390-*-linux*
d1061 1 a1061 2s390x-*-linux*
d1065 1 a1065 2s390x-ibm-tpf*
d1070 1 a1070 2*-*-solaris2*
d1085 2 a1086 2% CONFIG_SHELL=/bin/ksh d1150 1 a1150 2sparc*-*-*
d1162 1 a1162 2sparc-sun-solaris2*
d1182 2 a1183 2% ./configure --build=sparc-sun-solaris2.11 --prefix=xxx d1187 1 a1187 2sparc-*-linux*
d1190 1 a1190 2sparc64-*-solaris2*
d1203 2 a1204 2% ./configure --build=sparc64-sun-solaris2.11 --prefix=xxx d1208 1 a1208 2sparcv9-*-solaris2*
d1212 1 a1212 2c6x-*-*
d1216 1 a1216 2tilegx-*-linux*
d1221 1 a1221 2tilegxbe-*-linux*
d1226 1 a1226 2tilepro-*-linux*
d1231 1 a1231 2visium-*-elf
d1236 1 a1236 2*-*-vxworks*
d1269 1 a1269 2x86_64-*-*, amd64-*-*
d1276 1 a1276 2x86_64-*-solaris2*
d1289 1 a1289 2xtensa*-*-elf
d1304 1 a1304 2xtensa*-*-linux*
d1313 1 a1313 2Microsoft Windows
d1315 1 a1315 2Intel 16-bit versions
d1322 1 a1322 2Intel 32-bit versions
d1337 1 a1337 2Intel 64-bit versions
d1342 1 a1342 2Windows CE
d1346 1 a1346 2Other Windows Platforms
d1360 1 a1360 2*-*-cygwin
d1374 1 a1374 2*-*-mingw32
d1384 1 a1384 2Older systems
d1427 1 a1427 2all ELF targets (SVR4, Solaris 2, etc.)
@ 1.14 log @merge GCC 10.5.0. @ text @d3 1 a3 1 d22 3 a31 2 a33 1 a.copiable-anchor {visibility: hidden; text-decoration: none; line-height: 0em} d36 2 d40 4 d49 4 a55 1 span:hover a.copiable-anchor {visibility: visible} d89 5 a93 5 d183 2 a184 1aarch64*-*-*
d221 2 a222 1alpha*-*-*
d228 2 a229 1amd64-*-solaris2*
d233 2 a234 1amdgcn-*-amdhsa
d252 2 a253 1arc-*-elf32
d260 2 a261 1arc-linux-uclibc
d266 2 a267 1arm-*-eabi
d275 2 a276 1avr
d293 2 a294 2Error: register required d300 2 a301 1Blackfin
d309 2 a310 1CR16
d324 2 a325 1CRIS
d334 1 a334 1- d338 1 a338 1
cris-axis-elf- d350 2 a351 1
cris-axis-linux-gnuDOS
d360 2 a361 1epiphany-*-elf
d366 2 a367 1*-*-freebsd*
d402 2 a403 1ft32-*-elf
d408 2 a409 1h8300-hms
d420 2 a421 1hppa*-hp-hpux*
d471 2 a472 1hppa*-hp-hpux10
d482 2 a483 1hppa*-hp-hpux11
d586 2 a587 1*-*-linux-gnu
d593 2 a594 1i?86-*-linux*
d603 2 a604 1i?86-*-solaris2*
d628 2 a629 1ia64-*-linux
d647 2 a648 1ia64-*-hpux*
d661 2 a662 1*-ibm-aix*
d679 2 a680 2% LDR_CNTRL=MAXDATA=0x50000000 d691 2 a692 2% CONFIG_SHELL=/opt/freeware/bin/bash d742 1 a742 1‘libstdc++’ in GCC 3.4 increments the major version number of the d756 2 a757 2
% ar -x libstdc++.a libstdc++.so.4 libstdc++.so.5 d762 2 a763 2% strip -e libstdc++.so.4 libstdc++.so.5 d768 2 a769 2% ar -q libstdc++.a libstdc++.so.4 libstdc++.so.5 d826 2 a827 1iq2000-*-elf
d832 2 a833 1lm32-*-elf
d838 2 a839 1lm32-*-uclinux
d844 2 a845 1m32c-*-elf
d850 2 a851 1m32r-*-elf
d856 2 a857 1m68k-*-*
d883 2 a884 1m68k-*-uclinux
d891 2 a892 1microblaze-*-elf
d897 2 a898 1mips-*-*
d938 2 a939 1moxie-*-elf
d943 2 a944 1msp430-*-elf*
d963 2 a964 1nds32le-*-elf
d968 2 a969 1nds32be-*-elf
d973 2 a974 1nvptx-*-none
d992 2 a993 1or1k-*-elf
d998 2 a999 1or1k-*-linux
d1003 2 a1004 1powerpc-*-*
d1011 2 a1012 1powerpc-*-darwin*
d1026 2 a1027 1powerpc-*-elf
d1031 2 a1032 1powerpc*-*-linux-gnu*
d1036 2 a1037 1powerpc-*-netbsd*
d1041 2 a1042 1powerpc-*-eabisim
d1047 2 a1048 1powerpc-*-eabi
d1052 2 a1053 1powerpcle-*-elf
d1057 2 a1058 1powerpcle-*-eabisim
d1063 2 a1064 1powerpcle-*-eabi
d1068 2 a1069 1rl78-*-elf
d1074 2 a1075 1riscv32-*-elf
d1081 2 a1082 1riscv32-*-linux
d1087 2 a1088 1riscv64-*-elf
d1094 2 a1095 1riscv64-*-linux
d1100 2 a1101 1rx-*-elf
d1105 2 a1106 1s390-*-linux*
d1110 2 a1111 1s390x-*-linux*
d1115 2 a1116 1s390x-ibm-tpf*
d1121 2 a1122 1*-*-solaris2*
d1137 2 a1138 2% CONFIG_SHELL=/bin/ksh d1195 2 a1196 1sparc*-*-*
d1208 2 a1209 1sparc-sun-solaris2*
d1229 2 a1230 2% ./configure --build=sparc-sun-solaris2.11 --prefix=xxx d1234 2 a1235 1sparc-*-linux*
d1238 2 a1239 1sparc64-*-solaris2*
d1252 2 a1253 2% ./configure --build=sparc64-sun-solaris2.11 --prefix=xxx d1257 2 a1258 1sparcv9-*-solaris2*
d1262 2 a1263 1c6x-*-*
d1267 2 a1268 1tilegx-*-linux*
d1273 2 a1274 1tilegxbe-*-linux*
d1279 2 a1280 1tilepro-*-linux*
d1285 2 a1286 1visium-*-elf
d1291 2 a1292 1*-*-vxworks*
d1325 2 a1326 1x86_64-*-*, amd64-*-*
d1333 2 a1334 1x86_64-*-solaris2*
d1347 2 a1348 1xtensa*-*-elf
d1363 2 a1364 1xtensa*-*-linux*
d1373 2 a1374 1Microsoft Windows
d1376 2 a1377 1Intel 16-bit versions
d1384 2 a1385 1Intel 32-bit versions
d1400 2 a1401 1Intel 64-bit versions
d1408 2 a1409 1Windows CE
d1413 2 a1414 1Other Windows Platforms
d1428 2 a1429 1*-*-cygwin
d1443 2 a1444 1*-*-mingw32
d1450 2 a1451 1Older systems
d1494 2 a1495 1all ELF targets (SVR4, Solaris 2, etc.)
@ 1.13.2.1 log @Sync to head external/gpl3/gcc/dist, pulling up the following revisions (requested by mrg in ticket #231): external/gpl3/gcc/dist/fixincludes/tests/base/objc/runtime.h up to 1.1.1.1 external/gpl3/gcc/dist/gcc/opts-jobserver.h up to 1.1.1.1 external/gpl3/gcc/dist/libgcc/config/t-darwin-min-1 up to 1.1.1.1 external/gpl3/gcc/dist/libgcc/config/t-darwin-min-5 up to 1.1.1.1 external/gpl3/gcc/dist/libgcc/config/t-darwin-min-8 up to 1.1.1.1 external/gpl3/gcc/dist/ChangeLog up to 1.1.1.21 external/gpl3/gcc/dist/LAST_UPDATED up to 1.18 external/gpl3/gcc/dist/MD5SUMS up to 1.18 external/gpl3/gcc/dist/NEWS up to 1.16 external/gpl3/gcc/dist/INSTALL/binaries.html up to 1.13 external/gpl3/gcc/dist/INSTALL/build.html up to 1.15 external/gpl3/gcc/dist/INSTALL/configure.html up to 1.15 external/gpl3/gcc/dist/INSTALL/download.html up to 1.14 external/gpl3/gcc/dist/INSTALL/finalinstall.html up to 1.13 external/gpl3/gcc/dist/INSTALL/gfdl.html up to 1.13 external/gpl3/gcc/dist/INSTALL/index.html up to 1.13 external/gpl3/gcc/dist/INSTALL/old.html up to 1.13 external/gpl3/gcc/dist/INSTALL/prerequisites.html up to 1.15 external/gpl3/gcc/dist/INSTALL/specific.html up to 1.14 external/gpl3/gcc/dist/INSTALL/test.html up to 1.13 external/gpl3/gcc/dist/config/ChangeLog up to 1.1.1.21 external/gpl3/gcc/dist/contrib/ChangeLog up to 1.1.1.21 external/gpl3/gcc/dist/contrib/header-tools/ChangeLog up to 1.1.1.11 external/gpl3/gcc/dist/contrib/reghunt/ChangeLog up to 1.1.1.20 external/gpl3/gcc/dist/contrib/regression/ChangeLog up to 1.1.1.20 external/gpl3/gcc/dist/fixincludes/ChangeLog up to 1.1.1.20 external/gpl3/gcc/dist/fixincludes/fixincl.x up to 1.1.1.16 external/gpl3/gcc/dist/fixincludes/inclhack.def up to 1.1.1.15 external/gpl3/gcc/dist/fixincludes/tests/base/stdio.h up to 1.1.1.6 external/gpl3/gcc/dist/gcc/BASE-VER up to 1.1.1.19 external/gpl3/gcc/dist/gcc/ChangeLog up to 1.24 external/gpl3/gcc/dist/gcc/DATESTAMP up to 1.1.1.22 external/gpl3/gcc/dist/gcc/asan.c up to 1.1.1.13 external/gpl3/gcc/dist/gcc/bb-reorder.c up to 1.1.1.15 external/gpl3/gcc/dist/gcc/builtins.c up to 1.20 external/gpl3/gcc/dist/gcc/cfgbuild.c up to 1.1.1.11 external/gpl3/gcc/dist/gcc/cgraphclones.c up to 1.1.1.13 external/gpl3/gcc/dist/gcc/cgraphunit.c up to 1.1.1.14 external/gpl3/gcc/dist/gcc/config.gcc up to 1.72 external/gpl3/gcc/dist/gcc/cse.c up to 1.1.1.13 external/gpl3/gcc/dist/gcc/expr.c up to 1.19 external/gpl3/gcc/dist/gcc/function.c up to 1.1.1.18 external/gpl3/gcc/dist/gcc/function.h up to 1.1.1.12 external/gpl3/gcc/dist/gcc/gcc.c up to 1.25 external/gpl3/gcc/dist/gcc/generic-match-head.c up to 1.1.1.9 external/gpl3/gcc/dist/gcc/gimple-ssa-store-merging.c up to 1.1.1.9 external/gpl3/gcc/dist/gcc/ifcvt.c up to 1.1.1.15 external/gpl3/gcc/dist/gcc/ira-color.c up to 1.10 external/gpl3/gcc/dist/gcc/loop-invariant.c up to 1.1.1.13 external/gpl3/gcc/dist/gcc/lto-streamer-in.c up to 1.1.1.13 external/gpl3/gcc/dist/gcc/lto-wrapper.c up to 1.1.1.12 external/gpl3/gcc/dist/gcc/match.pd up to 1.1.1.13 external/gpl3/gcc/dist/gcc/omp-expand.c up to 1.1.1.8 external/gpl3/gcc/dist/gcc/omp-low.c up to 1.1.1.19 external/gpl3/gcc/dist/gcc/optabs.c up to 1.1.1.15 external/gpl3/gcc/dist/gcc/optc-save-gen.awk up to 1.1.1.10 external/gpl3/gcc/dist/gcc/opts-common.c up to 1.1.1.13 external/gpl3/gcc/dist/gcc/predict.c up to 1.1.1.12 external/gpl3/gcc/dist/gcc/ree.c up to 1.1.1.12 external/gpl3/gcc/dist/gcc/reg-stack.c up to 1.1.1.11 external/gpl3/gcc/dist/gcc/regrename.c up to 1.1.1.11 external/gpl3/gcc/dist/gcc/sanopt.c up to 1.1.1.10 external/gpl3/gcc/dist/gcc/selftest-diagnostic.c up to 1.1.1.4 external/gpl3/gcc/dist/gcc/symbol-summary.h up to 1.1.1.9 external/gpl3/gcc/dist/gcc/tree-inline.c up to 1.1.1.18 external/gpl3/gcc/dist/gcc/tree-loop-distribution.c up to 1.1.1.13 external/gpl3/gcc/dist/gcc/tree-nested.c up to 1.1.1.13 external/gpl3/gcc/dist/gcc/tree-sra.c up to 1.1.1.17 external/gpl3/gcc/dist/gcc/tree-ssa-ccp.c up to 1.16 external/gpl3/gcc/dist/gcc/tree-ssa-dom.c up to 1.1.1.16 external/gpl3/gcc/dist/gcc/tree-ssa-loop-ivopts.c up to 1.1.1.14 external/gpl3/gcc/dist/gcc/tree-ssa-reassoc.c up to 1.1.1.18 external/gpl3/gcc/dist/gcc/tree-ssa-sccvn.c up to 1.1.1.18 external/gpl3/gcc/dist/gcc/tree-ssa-strlen.c up to 1.1.1.13 external/gpl3/gcc/dist/gcc/tree-ssa.c up to 1.1.1.13 external/gpl3/gcc/dist/gcc/tree.c up to 1.5 external/gpl3/gcc/dist/gcc/tree.h up to 1.5 external/gpl3/gcc/dist/gcc/varasm.c up to 1.14 external/gpl3/gcc/dist/gcc/wide-int.cc up to 1.1.1.10 external/gpl3/gcc/dist/gcc/wide-int.h up to 1.1.1.10 external/gpl3/gcc/dist/gcc/analyzer/ChangeLog up to 1.1.1.3 external/gpl3/gcc/dist/gcc/brig/ChangeLog up to 1.1.1.9 external/gpl3/gcc/dist/gcc/c/ChangeLog up to 1.1.1.19 external/gpl3/gcc/dist/gcc/c/c-parser.c up to 1.1.1.16 external/gpl3/gcc/dist/gcc/c/c-typeck.c up to 1.1.1.17 external/gpl3/gcc/dist/gcc/c-family/ChangeLog up to 1.1.1.18 external/gpl3/gcc/dist/gcc/c-family/c-common.c up to 1.1.1.17 external/gpl3/gcc/dist/gcc/c-family/c-ubsan.c up to 1.1.1.10 external/gpl3/gcc/dist/gcc/c-family/c-warn.c up to 1.1.1.8 external/gpl3/gcc/dist/gcc/common/config/i386/i386-cpuinfo.h up to 1.1.1.2 external/gpl3/gcc/dist/gcc/config/darwin.c up to 1.1.1.15 external/gpl3/gcc/dist/gcc/config/darwin.h up to 1.1.1.14 external/gpl3/gcc/dist/gcc/config/aarch64/aarch64-c.c up to 1.1.1.9 external/gpl3/gcc/dist/gcc/config/aarch64/aarch64-cores.def up to 1.1.1.12 external/gpl3/gcc/dist/gcc/config/aarch64/aarch64-cost-tables.h up to 1.1.1.9 external/gpl3/gcc/dist/gcc/config/aarch64/aarch64-fusion-pairs.def up to 1.1.1.8 external/gpl3/gcc/dist/gcc/config/aarch64/aarch64-netbsd.h up to 1.7 external/gpl3/gcc/dist/gcc/config/aarch64/aarch64-protos.h up to 1.1.1.13 external/gpl3/gcc/dist/gcc/config/aarch64/aarch64-simd.md up to 1.1.1.13 external/gpl3/gcc/dist/gcc/config/aarch64/aarch64-sve-builtins.cc up to 1.1.1.3 external/gpl3/gcc/dist/gcc/config/aarch64/aarch64-sve.md up to 1.1.1.5 external/gpl3/gcc/dist/gcc/config/aarch64/aarch64-tune.md up to 1.1.1.12 external/gpl3/gcc/dist/gcc/config/aarch64/aarch64-tuning-flags.def up to 1.1.1.8 external/gpl3/gcc/dist/gcc/config/aarch64/aarch64.c up to 1.1.1.19 external/gpl3/gcc/dist/gcc/config/aarch64/aarch64.h up to 1.4 external/gpl3/gcc/dist/gcc/config/aarch64/aarch64.md up to 1.1.1.17 external/gpl3/gcc/dist/gcc/config/aarch64/driver-aarch64.c up to 1.14 external/gpl3/gcc/dist/gcc/config/aarch64/iterators.md up to 1.1.1.14 external/gpl3/gcc/dist/gcc/config/i386/i386-builtin.def up to 1.1.1.8 external/gpl3/gcc/dist/gcc/config/i386/i386-expand.c up to 1.1.1.3 external/gpl3/gcc/dist/gcc/config/i386/i386-features.c up to 1.1.1.2 external/gpl3/gcc/dist/gcc/config/i386/i386-options.c up to 1.1.1.2 external/gpl3/gcc/dist/gcc/config/i386/smmintrin.h up to 1.1.1.11 external/gpl3/gcc/dist/gcc/config/i386/t-i386 up to 1.1.1.11 external/gpl3/gcc/dist/gcc/config/nvptx/nvptx.c up to 1.1.1.12 external/gpl3/gcc/dist/gcc/config/nvptx/nvptx.h up to 1.1.1.9 external/gpl3/gcc/dist/gcc/config/nvptx/nvptx.md up to 1.1.1.9 external/gpl3/gcc/dist/gcc/config/pa/pa.md up to 1.1.1.17 external/gpl3/gcc/dist/gcc/config/riscv/t-rtems up to 1.1.1.2 external/gpl3/gcc/dist/gcc/config/rs6000/altivec.md up to 1.1.1.19 external/gpl3/gcc/dist/gcc/config/rs6000/mma.md up to 1.1.1.3 external/gpl3/gcc/dist/gcc/config/rs6000/rs6000-builtin.def up to 1.1.1.19 external/gpl3/gcc/dist/gcc/config/rs6000/rs6000-call.c up to 1.1.1.3 external/gpl3/gcc/dist/gcc/config/rs6000/rs6000-logue.c up to 1.4 external/gpl3/gcc/dist/gcc/config/rs6000/rs6000-p8swap.c up to 1.1.1.6 external/gpl3/gcc/dist/gcc/config/rs6000/rs6000-protos.h up to 1.1.1.15 external/gpl3/gcc/dist/gcc/config/rs6000/rs6000.c up to 1.32 external/gpl3/gcc/dist/gcc/config/rs6000/rs6000.h up to 1.1.1.17 external/gpl3/gcc/dist/gcc/config/rs6000/rs6000.md up to 1.1.1.20 external/gpl3/gcc/dist/gcc/config/rs6000/rtems.h up to 1.1.1.11 external/gpl3/gcc/dist/gcc/config/rs6000/t-rtems up to 1.1.1.11 external/gpl3/gcc/dist/gcc/config/rs6000/vector.md up to 1.1.1.15 external/gpl3/gcc/dist/gcc/config/rs6000/vsx.md up to 1.1.1.20 external/gpl3/gcc/dist/gcc/config/s390/s390.c up to 1.1.1.18 external/gpl3/gcc/dist/gcc/config/sparc/sparc.c up to 1.1.1.19 external/gpl3/gcc/dist/gcc/cp/ChangeLog up to 1.1.1.22 external/gpl3/gcc/dist/gcc/cp/constexpr.c up to 1.1.1.14 external/gpl3/gcc/dist/gcc/cp/cp-gimplify.c up to 1.1.1.15 external/gpl3/gcc/dist/gcc/cp/cp-tree.h up to 1.1.1.15 external/gpl3/gcc/dist/gcc/cp/cvt.c up to 1.1.1.15 external/gpl3/gcc/dist/gcc/cp/decl.c up to 1.10 external/gpl3/gcc/dist/gcc/cp/decl2.c up to 1.1.1.18 external/gpl3/gcc/dist/gcc/cp/expr.c up to 1.1.1.12 external/gpl3/gcc/dist/gcc/cp/friend.c up to 1.1.1.12 external/gpl3/gcc/dist/gcc/cp/lambda.c up to 1.1.1.12 external/gpl3/gcc/dist/gcc/cp/parser.c up to 1.1.1.21 external/gpl3/gcc/dist/gcc/cp/pt.c up to 1.1.1.19 external/gpl3/gcc/dist/gcc/cp/semantics.c up to 1.1.1.20 external/gpl3/gcc/dist/gcc/cp/tree.c up to 1.1.1.18 external/gpl3/gcc/dist/gcc/cp/typeck.c up to 1.1.1.19 external/gpl3/gcc/dist/gcc/d/ChangeLog up to 1.1.1.4 external/gpl3/gcc/dist/gcc/d/d-convert.cc up to 1.1.1.4 external/gpl3/gcc/dist/gcc/d/decl.cc up to 1.1.1.4 external/gpl3/gcc/dist/gcc/d/expr.cc up to 1.1.1.4 external/gpl3/gcc/dist/gcc/d/gdc.texi up to 1.1.1.3 external/gpl3/gcc/dist/gcc/d/imports.cc up to 1.1.1.3 external/gpl3/gcc/dist/gcc/d/toir.cc up to 1.1.1.3 external/gpl3/gcc/dist/gcc/d/dmd/dinterpret.c up to 1.1.1.4 external/gpl3/gcc/dist/gcc/d/dmd/expressionsem.c up to 1.1.1.4 external/gpl3/gcc/dist/gcc/doc/cpp.1 up to 1.17 external/gpl3/gcc/dist/gcc/doc/cpp.info up to 1.16 external/gpl3/gcc/dist/gcc/doc/cppinternals.info up to 1.18 external/gpl3/gcc/dist/gcc/doc/cppopts.texi up to 1.10 external/gpl3/gcc/dist/gcc/doc/extend.texi up to 1.10 external/gpl3/gcc/dist/gcc/doc/fsf-funding.7 up to 1.15 external/gpl3/gcc/dist/gcc/doc/g++.1 up to 1.18 external/gpl3/gcc/dist/gcc/doc/gcc.1 up to 1.18 external/gpl3/gcc/dist/gcc/doc/gcc.info up to 1.16 external/gpl3/gcc/dist/gcc/doc/gccinstall.info up to 1.18 external/gpl3/gcc/dist/gcc/doc/gccint.info up to 1.17 external/gpl3/gcc/dist/gcc/doc/gcov-dump.1 up to 1.1.1.12 external/gpl3/gcc/dist/gcc/doc/gcov-tool.1 up to 1.11 external/gpl3/gcc/dist/gcc/doc/gcov.1 up to 1.17 external/gpl3/gcc/dist/gcc/doc/gfdl.7 up to 1.15 external/gpl3/gcc/dist/gcc/doc/gfortran.1 up to 1.14 external/gpl3/gcc/dist/gcc/doc/gpl.7 up to 1.15 external/gpl3/gcc/dist/gcc/doc/invoke.texi up to 1.23 external/gpl3/gcc/dist/gcc/doc/lto-dump.1 up to 1.1.1.3 external/gpl3/gcc/dist/gcc/fortran/ChangeLog up to 1.1.1.4 external/gpl3/gcc/dist/gcc/fortran/array.c up to 1.1.1.4 external/gpl3/gcc/dist/gcc/fortran/check.c up to 1.1.1.4 external/gpl3/gcc/dist/gcc/fortran/decl.c up to 1.1.1.4 external/gpl3/gcc/dist/gcc/fortran/dependency.c up to 1.1.1.3 external/gpl3/gcc/dist/gcc/fortran/expr.c up to 1.1.1.4 external/gpl3/gcc/dist/gcc/fortran/f95-lang.c up to 1.1.1.3 external/gpl3/gcc/dist/gcc/fortran/gfortran.info up to 1.1.1.4 external/gpl3/gcc/dist/gcc/fortran/interface.c up to 1.1.1.4 external/gpl3/gcc/dist/gcc/fortran/iresolve.c up to 1.1.1.3 external/gpl3/gcc/dist/gcc/fortran/match.c up to 1.1.1.4 external/gpl3/gcc/dist/gcc/fortran/parse.c up to 1.1.1.4 external/gpl3/gcc/dist/gcc/fortran/primary.c up to 1.1.1.4 external/gpl3/gcc/dist/gcc/fortran/resolve.c up to 1.1.1.4 external/gpl3/gcc/dist/gcc/fortran/simplify.c up to 1.1.1.4 external/gpl3/gcc/dist/gcc/fortran/symbol.c up to 1.1.1.3 external/gpl3/gcc/dist/gcc/fortran/trans-decl.c up to 1.1.1.4 external/gpl3/gcc/dist/gcc/fortran/trans-expr.c up to 1.1.1.4 external/gpl3/gcc/dist/gcc/fortran/trans-intrinsic.c up to 1.1.1.4 external/gpl3/gcc/dist/gcc/fortran/trans-types.c up to 1.1.1.4 external/gpl3/gcc/dist/gcc/fortran/trans.h up to 1.1.1.3 external/gpl3/gcc/dist/gcc/jit/ChangeLog up to 1.1.1.14 external/gpl3/gcc/dist/gcc/lto/ChangeLog up to 1.1.1.20 external/gpl3/gcc/dist/gcc/objc/ChangeLog up to 1.1.1.20 external/gpl3/gcc/dist/gcc/objcp/ChangeLog up to 1.1.1.20 external/gpl3/gcc/dist/include/ChangeLog up to 1.1.1.20 external/gpl3/gcc/dist/intl/ChangeLog up to 1.1.1.20 external/gpl3/gcc/dist/libbacktrace/ChangeLog up to 1.1.1.19 external/gpl3/gcc/dist/libcc1/ChangeLog up to 1.1.1.14 external/gpl3/gcc/dist/libcpp/ChangeLog up to 1.1.1.20 external/gpl3/gcc/dist/libcpp/directives.c up to 1.1.1.13 external/gpl3/gcc/dist/libdecnumber/ChangeLog up to 1.1.1.20 external/gpl3/gcc/dist/libgcc/ChangeLog up to 1.1.1.22 external/gpl3/gcc/dist/libgcc/config.host up to 1.33 external/gpl3/gcc/dist/libgcc/config/darwin10-unwind-find-enc-func.c up to 1.1.1.2 external/gpl3/gcc/dist/libgcc/config/t-darwin up to 1.1.1.6 external/gpl3/gcc/dist/libgcc/config/t-slibgcc-darwin up to 1.1.1.4 external/gpl3/gcc/dist/libgcc/config/avr/libf7/ChangeLog up to 1.1.1.3 external/gpl3/gcc/dist/libgcc/config/avr/libf7/libf7-asm.sx up to 1.1.1.2 external/gpl3/gcc/dist/libgcc/config/i386/cpuinfo.c up to 1.1.1.11 external/gpl3/gcc/dist/libgcc/config/libbid/ChangeLog up to 1.1.1.20 external/gpl3/gcc/dist/libgcc/config/riscv/div.S up to 1.1.1.7 external/gpl3/gcc/dist/libgcc/config/riscv/riscv-asm.h up to 1.1.1.4 external/gpl3/gcc/dist/libgfortran/ChangeLog up to 1.1.1.4 external/gpl3/gcc/dist/libgomp/ChangeLog up to 1.1.1.20 external/gpl3/gcc/dist/libgomp/libgomp.info up to 1.15 external/gpl3/gcc/dist/libgomp/libgomp.texi up to 1.1.1.11 external/gpl3/gcc/dist/libgomp/target.c up to 1.1.1.9 external/gpl3/gcc/dist/libgomp/task.c up to 1.1.1.12 external/gpl3/gcc/dist/libhsail-rt/ChangeLog up to 1.1.1.9 external/gpl3/gcc/dist/libiberty/ChangeLog up to 1.1.1.20 external/gpl3/gcc/dist/libiberty/strstr.c up to 1.1.1.2 external/gpl3/gcc/dist/libobjc/ChangeLog up to 1.1.1.21 external/gpl3/gcc/dist/libphobos/ChangeLog up to 1.1.1.4 external/gpl3/gcc/dist/libphobos/src/std/path.d up to 1.1.1.2 external/gpl3/gcc/dist/libquadmath/ChangeLog up to 1.1.1.4 external/gpl3/gcc/dist/libquadmath/libquadmath.info up to 1.1.1.4 external/gpl3/gcc/dist/libquadmath/strtod/strtod_l.c up to 1.1.1.2 external/gpl3/gcc/dist/libsanitizer/ChangeLog up to 1.4 external/gpl3/gcc/dist/libsanitizer/configure.tgt up to 1.10 external/gpl3/gcc/dist/libssp/ChangeLog up to 1.1.1.20 external/gpl3/gcc/dist/libstdc++-v3/ChangeLog up to 1.1.1.22 external/gpl3/gcc/dist/libstdc++-v3/config/os/gnu-linux/os_defines.h up to 1.1.1.11 external/gpl3/gcc/dist/libstdc++-v3/doc/doxygen/user.cfg.in up to 1.1.1.7 external/gpl3/gcc/dist/libstdc++-v3/doc/html/bk02.html up to 1.1.1.4 external/gpl3/gcc/dist/libstdc++-v3/doc/html/manual/api.html up to 1.1.1.11 external/gpl3/gcc/dist/libstdc++-v3/doc/html/manual/ext_demangling.html up to 1.1.1.7 external/gpl3/gcc/dist/libstdc++-v3/doc/html/manual/extensions.html up to 1.1.1.6 external/gpl3/gcc/dist/libstdc++-v3/doc/html/manual/index.html up to 1.1.1.14 external/gpl3/gcc/dist/libstdc++-v3/doc/xml/authors.xml up to 1.1.1.4 external/gpl3/gcc/dist/libstdc++-v3/doc/xml/manual/evolution.xml up to 1.1.1.10 external/gpl3/gcc/dist/libstdc++-v3/doc/xml/manual/extensions.xml up to 1.1.1.13 external/gpl3/gcc/dist/libstdc++-v3/doc/xml/manual/spine.xml up to 1.1.1.11 external/gpl3/gcc/dist/libstdc++-v3/include/Makefile.am up to 1.1.1.16 external/gpl3/gcc/dist/libstdc++-v3/include/Makefile.in up to 1.1.1.16 external/gpl3/gcc/dist/libstdc++-v3/include/bits/fs_path.h up to 1.1.1.6 external/gpl3/gcc/dist/libstdc++-v3/include/bits/gslice_array.h up to 1.1.1.12 external/gpl3/gcc/dist/libstdc++-v3/include/bits/indirect_array.h up to 1.1.1.12 external/gpl3/gcc/dist/libstdc++-v3/include/bits/list.tcc up to 1.1.1.12 external/gpl3/gcc/dist/libstdc++-v3/include/bits/mask_array.h up to 1.1.1.13 external/gpl3/gcc/dist/libstdc++-v3/include/bits/range_access.h up to 1.1.1.11 external/gpl3/gcc/dist/libstdc++-v3/include/bits/regex.h up to 1.1.1.13 external/gpl3/gcc/dist/libstdc++-v3/include/bits/regex.tcc up to 1.1.1.10 external/gpl3/gcc/dist/libstdc++-v3/include/bits/regex_automaton.h up to 1.1.1.11 external/gpl3/gcc/dist/libstdc++-v3/include/bits/regex_compiler.h up to 1.1.1.12 external/gpl3/gcc/dist/libstdc++-v3/include/bits/regex_compiler.tcc up to 1.1.1.10 external/gpl3/gcc/dist/libstdc++-v3/include/bits/regex_error.h up to 1.1.1.11 external/gpl3/gcc/dist/libstdc++-v3/include/bits/regex_executor.tcc up to 1.1.1.10 external/gpl3/gcc/dist/libstdc++-v3/include/bits/regex_scanner.h up to 1.1.1.11 external/gpl3/gcc/dist/libstdc++-v3/include/bits/regex_scanner.tcc up to 1.1.1.10 external/gpl3/gcc/dist/libstdc++-v3/include/bits/shared_ptr_base.h up to 1.1.1.16 external/gpl3/gcc/dist/libstdc++-v3/include/bits/slice_array.h up to 1.1.1.13 external/gpl3/gcc/dist/libstdc++-v3/include/bits/stl_iterator.h up to 1.1.1.14 external/gpl3/gcc/dist/libstdc++-v3/include/bits/stl_uninitialized.h up to 1.1.1.13 external/gpl3/gcc/dist/libstdc++-v3/include/experimental/numeric up to 1.1.1.8 external/gpl3/gcc/dist/libstdc++-v3/include/experimental/optional up to 1.1.1.12 external/gpl3/gcc/dist/libstdc++-v3/include/std/any up to 1.1.1.9 external/gpl3/gcc/dist/libstdc++-v3/include/std/memory up to 1.1.1.12 external/gpl3/gcc/dist/libstdc++-v3/include/std/numeric up to 1.1.1.12 external/gpl3/gcc/dist/libstdc++-v3/include/std/ranges up to 1.1.1.3 external/gpl3/gcc/dist/libstdc++-v3/include/std/span up to 1.1.1.3 external/gpl3/gcc/dist/libstdc++-v3/include/std/valarray up to 1.1.1.12 external/gpl3/gcc/dist/libstdc++-v3/python/libstdcxx/v6/xmethods.py up to 1.1.1.12 external/gpl3/gcc/dist/libstdc++-v3/src/c++11/thread.cc up to 1.1.1.12 external/gpl3/gcc/dist/libstdc++-v3/src/c++17/fs_path.cc up to 1.1.1.4 external/gpl3/gcc/dist/lto-plugin/ChangeLog up to 1.1.1.20 external/gpl3/gcc/dist/maintainer-scripts/ChangeLog up to 1.1.1.21 Import gcc 10.5. @ text @d3 3 a24 3 d32 2 d36 1 a38 2 blockquote.smallindentedblock {margin-right: 0em; font-size: smaller} blockquote.smallquotation {font-size: smaller} a40 4 div.lisp {margin-left: 3.2em} div.smalldisplay {margin-left: 3.2em} div.smallexample {margin-left: 3.2em} div.smalllisp {margin-left: 3.2em} a45 4 pre.smalldisplay {font-family: inherit; font-size: smaller} pre.smallexample {font-size: smaller} pre.smallformat {font-family: inherit; font-size: smaller} pre.smalllisp {font-size: smaller} d49 1 d83 5 a87 5 d177 1 a177 2aarch64*-*-*
d214 1 a214 2alpha*-*-*
d220 1 a220 2amd64-*-solaris2*
d224 1 a224 2amdgcn-*-amdhsa
d242 1 a242 2arc-*-elf32
d249 1 a249 2arc-linux-uclibc
d254 1 a254 2arm-*-eabi
d262 1 a262 2avr
d279 2 a280 2Error: register required d286 1 a286 2Blackfin
d294 1 a294 2CR16
d308 1 a308 2CRIS
d317 1 a317 1- d321 1 a321 1
cris-axis-elf- d333 1 a333 2
cris-axis-linux-gnuDOS
d342 1 a342 2epiphany-*-elf
d347 1 a347 2*-*-freebsd*
d382 1 a382 2ft32-*-elf
d387 1 a387 2h8300-hms
d398 1 a398 2hppa*-hp-hpux*
d448 1 a448 2hppa*-hp-hpux10
d458 1 a458 2hppa*-hp-hpux11
d561 1 a561 2*-*-linux-gnu
d567 1 a567 2i?86-*-linux*
d576 1 a576 2i?86-*-solaris2*
d600 1 a600 2ia64-*-linux
d618 1 a618 2ia64-*-hpux*
d631 1 a631 2*-ibm-aix*
d648 2 a649 2% LDR_CNTRL=MAXDATA=0x50000000 d660 2 a661 2% CONFIG_SHELL=/opt/freeware/bin/bash d711 1 a711 1‘libstdc++’ in GCC 3.4 increments the major version number of the d725 2 a726 2
% ar -x libstdc++.a libstdc++.so.4 libstdc++.so.5 d731 2 a732 2% strip -e libstdc++.so.4 libstdc++.so.5 d737 2 a738 2% ar -q libstdc++.a libstdc++.so.4 libstdc++.so.5 d795 1 a795 2iq2000-*-elf
d800 1 a800 2lm32-*-elf
d805 1 a805 2lm32-*-uclinux
d810 1 a810 2m32c-*-elf
d815 1 a815 2m32r-*-elf
d820 1 a820 2m68k-*-*
d846 1 a846 2m68k-*-uclinux
d853 1 a853 2microblaze-*-elf
d858 1 a858 2mips-*-*
d898 1 a898 2moxie-*-elf
d902 1 a902 2msp430-*-elf*
d921 1 a921 2nds32le-*-elf
d925 1 a925 2nds32be-*-elf
d929 1 a929 2nvptx-*-none
d947 1 a947 2or1k-*-elf
d952 1 a952 2or1k-*-linux
d956 1 a956 2powerpc-*-*
d963 1 a963 2powerpc-*-darwin*
d977 1 a977 2powerpc-*-elf
d981 1 a981 2powerpc*-*-linux-gnu*
d985 1 a985 2powerpc-*-netbsd*
d989 1 a989 2powerpc-*-eabisim
d994 1 a994 2powerpc-*-eabi
d998 1 a998 2powerpcle-*-elf
d1002 1 a1002 2powerpcle-*-eabisim
d1007 1 a1007 2powerpcle-*-eabi
d1011 1 a1011 2rl78-*-elf
d1016 1 a1016 2riscv32-*-elf
d1022 1 a1022 2riscv32-*-linux
d1027 1 a1027 2riscv64-*-elf
d1033 1 a1033 2riscv64-*-linux
d1038 1 a1038 2rx-*-elf
d1042 1 a1042 2s390-*-linux*
d1046 1 a1046 2s390x-*-linux*
d1050 1 a1050 2s390x-ibm-tpf*
d1055 1 a1055 2*-*-solaris2*
d1070 2 a1071 2% CONFIG_SHELL=/bin/ksh d1128 1 a1128 2sparc*-*-*
d1140 1 a1140 2sparc-sun-solaris2*
d1160 2 a1161 2% ./configure --build=sparc-sun-solaris2.11 --prefix=xxx d1165 1 a1165 2sparc-*-linux*
d1168 1 a1168 2sparc64-*-solaris2*
d1181 2 a1182 2% ./configure --build=sparc64-sun-solaris2.11 --prefix=xxx d1186 1 a1186 2sparcv9-*-solaris2*
d1190 1 a1190 2c6x-*-*
d1194 1 a1194 2tilegx-*-linux*
d1199 1 a1199 2tilegxbe-*-linux*
d1204 1 a1204 2tilepro-*-linux*
d1209 1 a1209 2visium-*-elf
d1214 1 a1214 2*-*-vxworks*
d1247 1 a1247 2x86_64-*-*, amd64-*-*
d1254 1 a1254 2x86_64-*-solaris2*
d1267 1 a1267 2xtensa*-*-elf
d1282 1 a1282 2xtensa*-*-linux*
d1291 1 a1291 2Microsoft Windows
d1293 1 a1293 2Intel 16-bit versions
d1300 1 a1300 2Intel 32-bit versions
d1315 1 a1315 2Intel 64-bit versions
d1322 1 a1322 2Windows CE
d1326 1 a1326 2Other Windows Platforms
d1340 1 a1340 2*-*-cygwin
d1354 1 a1354 2*-*-mingw32
d1360 1 a1360 2Older systems
d1403 1 a1403 2all ELF targets (SVR4, Solaris 2, etc.)
@ 1.12 log @initial merge of GCC 10.3.0. these three files are not yet finished merging: gcc/config/rs6000/rs6000.c libsanitizer/lsan/lsan_allocator.h libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h our current GCC 9 sanitizers are newer than GCC 10's still, so that may take a little to untease, so it's probable that more than these 2 will need more changes. rs6000.c has some changes related to ABI and supported functionality that need to be merged forward. @ text @d3 3 a24 3 d32 2 d36 1 a38 2 blockquote.smallindentedblock {margin-right: 0em; font-size: smaller} blockquote.smallquotation {font-size: smaller} a40 4 div.lisp {margin-left: 3.2em} div.smalldisplay {margin-left: 3.2em} div.smallexample {margin-left: 3.2em} div.smalllisp {margin-left: 3.2em} a45 4 pre.smalldisplay {font-family: inherit; font-size: smaller} pre.smallexample {font-size: smaller} pre.smallformat {font-family: inherit; font-size: smaller} pre.smalllisp {font-size: smaller} d49 1 d83 5 a87 5 d177 1 a177 2aarch64*-*-*
d214 1 a214 2alpha*-*-*
d220 1 a220 2amd64-*-solaris2*
d224 1 a224 2amdgcn-*-amdhsa
d242 1 a242 2arc-*-elf32
d249 1 a249 2arc-linux-uclibc
d254 1 a254 2arm-*-eabi
d262 1 a262 2avr
d279 2 a280 2Error: register required d286 1 a286 2Blackfin
d294 1 a294 2CR16
d308 1 a308 2CRIS
d317 1 a317 1- d321 1 a321 1
cris-axis-elf- d333 1 a333 2
cris-axis-linux-gnuDOS
d342 1 a342 2epiphany-*-elf
d347 1 a347 2*-*-freebsd*
d382 1 a382 2ft32-*-elf
d387 1 a387 2h8300-hms
d398 1 a398 2hppa*-hp-hpux*
d448 1 a448 2hppa*-hp-hpux10
d458 1 a458 2hppa*-hp-hpux11
d561 1 a561 2*-*-linux-gnu
d567 1 a567 2i?86-*-linux*
d576 1 a576 2i?86-*-solaris2*
d600 1 a600 2ia64-*-linux
d618 1 a618 2ia64-*-hpux*
d631 1 a631 2*-ibm-aix*
d648 2 a649 2% LDR_CNTRL=MAXDATA=0x50000000 d660 2 a661 2% CONFIG_SHELL=/opt/freeware/bin/bash d711 1 a711 1‘libstdc++’ in GCC 3.4 increments the major version number of the d725 2 a726 2
% ar -x libstdc++.a libstdc++.so.4 libstdc++.so.5 d731 2 a732 2% strip -e libstdc++.so.4 libstdc++.so.5 d737 2 a738 2% ar -q libstdc++.a libstdc++.so.4 libstdc++.so.5 d795 1 a795 2iq2000-*-elf
d800 1 a800 2lm32-*-elf
d805 1 a805 2lm32-*-uclinux
d810 1 a810 2m32c-*-elf
d815 1 a815 2m32r-*-elf
d820 1 a820 2m68k-*-*
d846 1 a846 2m68k-*-uclinux
d853 1 a853 2microblaze-*-elf
d858 1 a858 2mips-*-*
d898 1 a898 2moxie-*-elf
d902 1 a902 2msp430-*-elf*
d921 1 a921 2nds32le-*-elf
d925 1 a925 2nds32be-*-elf
d929 1 a929 2nvptx-*-none
d947 1 a947 2or1k-*-elf
d952 1 a952 2or1k-*-linux
d956 1 a956 2powerpc-*-*
d963 1 a963 2powerpc-*-darwin*
d977 1 a977 2powerpc-*-elf
d981 1 a981 2powerpc*-*-linux-gnu*
d985 1 a985 2powerpc-*-netbsd*
d989 1 a989 2powerpc-*-eabisim
d994 1 a994 2powerpc-*-eabi
d998 1 a998 2powerpcle-*-elf
d1002 1 a1002 2powerpcle-*-eabisim
d1007 1 a1007 2powerpcle-*-eabi
d1011 1 a1011 2rl78-*-elf
d1016 1 a1016 2riscv32-*-elf
d1022 1 a1022 2riscv32-*-linux
d1027 1 a1027 2riscv64-*-elf
d1033 1 a1033 2riscv64-*-linux
d1038 1 a1038 2rx-*-elf
d1042 1 a1042 2s390-*-linux*
d1046 1 a1046 2s390x-*-linux*
d1050 1 a1050 2s390x-ibm-tpf*
d1055 1 a1055 2*-*-solaris2*
d1070 2 a1071 2% CONFIG_SHELL=/bin/ksh d1128 1 a1128 2sparc*-*-*
d1140 1 a1140 2sparc-sun-solaris2*
d1160 2 a1161 2% ./configure --build=sparc-sun-solaris2.11 --prefix=xxx d1165 1 a1165 2sparc-*-linux*
d1168 1 a1168 2sparc64-*-solaris2*
d1181 2 a1182 2% ./configure --build=sparc64-sun-solaris2.11 --prefix=xxx d1186 1 a1186 2sparcv9-*-solaris2*
d1190 1 a1190 2c6x-*-*
d1194 1 a1194 2tilegx-*-linux*
d1199 1 a1199 2tilegxbe-*-linux*
d1204 1 a1204 2tilepro-*-linux*
d1209 1 a1209 2visium-*-elf
d1214 1 a1214 2*-*-vxworks*
d1247 1 a1247 2x86_64-*-*, amd64-*-*
d1254 1 a1254 2x86_64-*-solaris2*
d1267 1 a1267 2xtensa*-*-elf
d1282 1 a1282 2xtensa*-*-linux*
d1291 1 a1291 2Microsoft Windows
d1293 1 a1293 2Intel 16-bit versions
d1300 1 a1300 2Intel 32-bit versions
d1315 1 a1315 2Intel 64-bit versions
d1322 1 a1322 2Windows CE
d1326 1 a1326 2Other Windows Platforms
d1340 1 a1340 2*-*-cygwin
d1354 1 a1354 2*-*-mingw32
d1360 1 a1360 2Older systems
d1403 1 a1403 2all ELF targets (SVR4, Solaris 2, etc.)
@ 1.11 log @merge GCC 9.3.0. @ text @d3 1 a3 1 a61 5Host/Target specific installation notes for GCC
Please read this document carefully before installing the GNU Compiler Collection on your machine. d63 2 a64 4Note that this list of install notes is not a list of supported hosts or targets. Not all supported hosts and targets are listed here, only the ones that require host-specific or target-specific information have to. a65 78
- aarch64*-*-*
- alpha*-*-*
- alpha*-dec-osf5.1
- amd64-*-solaris2.10
- arm-*-eabi
- avr
- Blackfin
- DOS
- *-*-freebsd*
- h8300-hms
- hppa*-hp-hpux*
- hppa*-hp-hpux10
- hppa*-hp-hpux11
- *-*-linux-gnu
- i?86-*-linux*
- i?86-*-solaris2.10
- ia64-*-linux
- ia64-*-hpux*
- *-ibm-aix*
- iq2000-*-elf
- lm32-*-elf
- lm32-*-uclinux
- m32c-*-elf
- m32r-*-elf
- m68k-*-*
- m68k-uclinux
- microblaze-*-elf
- mips-*-*
- mips-sgi-irix5
- mips-sgi-irix6
- nds32le-*-elf
- nds32be-*-elf
- nvptx-*-none
- powerpc*-*-*
- powerpc-*-darwin*
- powerpc-*-elf
- powerpc*-*-linux-gnu*
- powerpc-*-netbsd*
- powerpc-*-eabisim
- powerpc-*-eabi
- powerpcle-*-elf
- powerpcle-*-eabisim
- powerpcle-*-eabi
- riscv32-*-elf
- riscv32-*-linux
- riscv64-*-elf
- riscv64-*-linux
- s390-*-linux*
- s390x-*-linux*
- s390x-ibm-tpf*
- *-*-solaris2*
- sparc*-*-*
- sparc-sun-solaris2*
- sparc-sun-solaris2.10
- sparc-*-linux*
- sparc64-*-solaris2*
- sparcv9-*-solaris2*
- c6x-*-*
- tilegx-*-linux*
- tilegxbe-*-linux*
- tilepro-*-linux*
- visium-*-elf
- *-*-vxworks*
- x86_64-*-* amd64-*-*
- x86_64-*-solaris2.1[0-9]*
- xtensa*-*-elf
- xtensa*-*-linux*
- Microsoft Windows
- *-*-cygwin
- *-*-mingw32
- OS/2
- Older systems
a66 2
- all ELF targets (SVR4, Solaris 2, etc.)
a67 1aarch64*-*-*
a68 3Binutils pre 2.24 does not have support for selecting -mabi and does not support ILP32. If it is used to build GCC 4.9 or later, GCC will not support option -mabi=ilp32. a69 9
To enable a workaround for the Cortex-A53 erratum number 835769 by default (for all CPUs regardless of -mcpu option given) at configure time use the --enable-fix-cortex-a53-835769 option. This will enable the fix by default and can be explicitly disabled during compilation by passing the -mno-fix-cortex-a53-835769 option. Conversely, --disable-fix-cortex-a53-835769 will disable the workaround by default. The workaround is disabled by default if neither of --enable-fix-cortex-a53-835769 or --disable-fix-cortex-a53-835769 is given at configure time. a70 10
To enable a workaround for the Cortex-A53 erratum number 843419 by default (for all CPUs regardless of -mcpu option given) at configure time use the --enable-fix-cortex-a53-843419 option. This workaround is applied at link time. Enabling the workaround will cause GCC to pass the relevant option to the linker. It can be explicitly disabled during compilation by passing the -mno-fix-cortex-a53-843419 option. Conversely, --disable-fix-cortex-a53-843419 will disable the workaround by default. The workaround is disabled by default if neither of --enable-fix-cortex-a53-843419 or --disable-fix-cortex-a53-843419 is given at configure time. a71 1
a72 1alpha*-*-*
a73 4This section contains general configuration information for all alpha-based platforms using ELF (in particular, ignore this section for DEC OSF/1, Digital UNIX and Tru64 UNIX). In addition to reading this section, please read all other sections that match your target. a74 4
We require binutils 2.11.2 or newer. Previous binutils releases had a number of problems with DWARF 2 debugging information, not the least of which is incorrect linking of shared libraries. a75 1
a76 1alpha*-dec-osf5.1
a77 3Systems using processors that implement the DEC Alpha architecture and are running the DEC/Compaq/HP Unix (DEC OSF/1, Digital UNIX, or Compaq/HP Tru64 UNIX) operating system, for example the DEC Alpha AXP systems. a78 4
Support for Tru64 UNIX V5.1 has been removed in GCC 4.8. As of GCC 4.6, support for Tru64 UNIX V4.0 and V5.0 has been removed. As of GCC 3.2, versions before
alpha*-dec-osf4are no longer supported. (These are the versions which identify themselves as DEC OSF/1.) a79 1
a80 1amd64-*-solaris2.1[0-9]*
a81 1This is a synonym for ‘x86_64-*-solaris2.1[0-9]*’. a82 1
a83 1arc-*-elf32
a84 3Use ‘configure --target=arc-elf32 --with-cpu=cpu --enable-languages="c,c++"’ to configure GCC, with cpu being one of ‘arc600’, ‘arc601’, or ‘arc700’. a85 1
a86 1arc-linux-uclibc
a87 1Use ‘configure --target=arc-linux-uclibc --with-cpu=arc700 --enable-languages="c,c++"’ to configure GCC. d89 5 a93 3
arm-*-eabi
d95 148 d244 2 a245 2Building the Ada frontend commonly fails (an infinite loop executing d248 4 a251 5
avr
d253 1 a253 1 applications. There are no standard Unix configurations. d256 4 a259 4Use ‘configure --target=avr --enable-languages="c"’ to configure GCC.
Further installation notes and other useful information about AVR tools d261 17 a277 16
The following error:
Error: register requiredindicates that you should upgrade to a newer version of the binutils.
Blackfin
The Blackfin processor, an Analog Devices DSP. d279 2 a280 2
More information, and a version of binutils with support for this processor, d282 4 a285 5
CR16
d288 1 d290 11 a300 12See “CR16 Options” in the main manual for a list of CR16-specific options.
Use ‘configure --target=cr16-elf --enable-languages=c,c++’ to configure GCC for building a CR16 elf cross-compiler.
Use ‘configure --target=cr16-uclinux --enable-languages=c,c++’ to configure GCC for building a CR16 uclinux cross-compiler.
CRIS
d303 2 a304 2See “CRIS Options” in the main manual d306 11 a316 7
There are a few different CRIS targets:
cris-axis-elf- Mainly for monolithic embedded systems. Includes a multilib for the ‘v10’ core used in ‘ETRAX 100 LX’.
cris-axis-linux-gnu- A GNU/Linux port for the CRIS architecture, currently targeting ‘ETRAX 100 LX’ by default. d319 1 a319 1
Pre-packaged tools can be obtained from d323 4 a326 5
DOS
d328 2 a329 2You cannot install GCC by itself on MSDOS; it will not compile under d333 5 a337 6
epiphany-*-elf
Adapteva Epiphany. d339 4 a342 5
*-*-freebsd*
d346 2 a347 2In order to better utilize FreeBSD base system functionality and match d352 1 a352 1 libgcc_s.so.1 and boehm-gc (on FreeBSD 7 or later) is enabled d354 4 a357 4
We support FreeBSD using the ELF file format with DWARF 2 debugging for all CPU architectures. You may use -gstabs instead of -g, if you really want the old debugging format. There are d361 1 a361 1 GCC. In particular, --enable-threads is now configured by d367 2 a368 2
The version of binutils installed in /usr/bin probably works d370 1 a370 1 binutils and/or the version found in /usr/ports/devel/binutils has d375 5 a379 6
ft32-*-elf
The FT32 processor. d381 4 a384 5
h8300-hms
d386 4 a389 4Please have a look at the binaries page.
The calling convention and structure layout has changed in release 2.6. d393 4 a396 5
hppa*-hp-hpux*
d398 2 a399 2We require using gas/binutils on all hppa platforms. Version 2.19 or d401 7 a407 7
It may be helpful to configure GCC with the --with-gnu-as and --with-as=... options to ensure that GCC can find GAS.
The HP assembler should not be used with GCC. It is rarely tested and may not work. It shouldn't be used with any languages other than C due to its d409 2 a410 2
Specifically, -g does not work (HP-UX uses a peculiar debugging d414 3 a416 3 ‘make all-host all-target’ after getting the failure from ‘make’.
Various GCC features are not supported. For example, it does not support weak d420 2 a421 2
There are two default scheduling models for instructions. These are d423 1 a423 1 architecture specified for the target machine when configuring. d425 3 a427 3 the target is a ‘hppa1*’ machine.
The PROCESSOR_8000 model is not well suited to older processors. Thus, d432 3 a434 3
As of GCC 4.0, GCC uses the UNIX 95 namespace for HP-UX 10.10 through 11.00, and the UNIX 98 namespace for HP-UX 11.11 and later. d438 3 a440 3 in a number of ways. With HP cc, UNIX_STD can be set to ‘95’ or ‘98’. Another way is to add an appropriate set of predefines to CC. The description for the munix= option contains d442 6 a447 7
More specific information to ‘hppa*-hp-hpux*’ targets follows.
hppa*-hp-hpux10
d450 2 a451 2The C++ ABI has changed incompatibly in GCC 4.0. COMDAT subspaces are d455 4 a458 5
hppa*-hp-hpux11
d461 4 a464 4The libffi library haven't been ported to 64-bit HP-UX and doesn't build.
Refer to binaries for information about obtaining d468 3 a470 3
Starting with GCC 3.4 an ISO C compiler is required to bootstrap. The bundled compiler supports only traditional C; you will need either HP's d472 2 a473 2
It is possible to build GCC 3.3 starting with the bundled HP compiler, d476 2 a477 2
There are several possible approaches to building the distribution. d480 1 a480 1 first using the HP tools, then build binutils, then rebuild GCC. d483 2 a484 2
On 64-bit capable systems, there are two distinct targets. Different d486 3 a488 3 the same system. The ‘hppa[1-2]*-hp-hpux11*’ target generates code for the 32-bit PA-RISC runtime architecture and uses the HP linker. The ‘hppa64-hp-hpux11*’ target generates 64-bit code for the d490 11 a500 11
The script config.guess now selects the target type based on the compiler detected during configuration. You must define PATH or CC so that configure finds an appropriate compiler for the initial bootstrap. When CC is used, the definition should contain the options that are needed whenever CC is used.
Specifically, options that determine the runtime architecture must be in CC to correctly select the target for the build. It is also convenient to place many other compiler options in CC. For example, CC="cc -Ac +DA2.0W -Wp,-H16376 -D_CLASSIC_TYPES -D_HPUX_SOURCE" d502 2 a503 2 64-bit K&R/bundled mode. The +DA2.0W option will result in the automatic selection of the ‘hppa64-hp-hpux11*’ target. The d507 4 a510 4 -Ac option. These defines aren't necessary with -Ae.
It is best to explicitly configure the ‘hppa64-hp-hpux11*’ target with the --with-ld=... option. This overrides the standard d513 1 a513 1 result, it's not possible to switch linkers in the middle of a GCC build. d516 2 a517 2
A recent linker patch must be installed for the correct operation of d521 1 a521 1
PHSS_24304, might be usable but it hasn't been tested. These d524 2 a525 2The patches are necessary for the support of weak symbols on the d528 1 a528 1 to HP-UX 11, there are bugs in the linker support for secondary symbols. d532 2 a533 2
GCC 3.3 uses the ELF DT_INIT_ARRAY and DT_FINI_ARRAY capabilities to d535 1 a535 1 uses the linker +init and +fini options for the same d538 1 a538 1 problem on the 64-bit port resulting from HP's non-standard use of d540 3 a542 3
Although the HP and GNU linkers are both supported for the ‘hppa64-hp-hpux11*’ target, it is strongly recommended that the d544 2 a545 2
At this time, the GNU linker does not support the creation of long d549 2 a550 2 with -static, and with dwarf2 unwind and exception support. It also doesn't provide stubs for internal calls to global functions d552 2 a553 2
The HP dynamic loader does not support GNU symbol versioning, so symbol d555 8 a562 9 versioning with --disable-symvers when using GNU ld.
POSIX threads are the default. The optional DCE thread library is not supported, so --enable-threads=dce does not work.
*-*-linux-gnu
d566 5 a570 6
i?86-*-linux*
As of GCC 3.3, binutils 2.13.1 or later is required for this platform. d572 2 a573 2
If you receive Signal 11 errors when building on GNU/Linux, then it is d576 4 a579 5
i?86-*-solaris2.10
d581 5 a585 5 with GCC 4.7, there is also a 64-bit ‘amd64-*-solaris2.1[0-9]*’ or ‘x86_64-*-solaris2.1[0-9]*’ configuration that corresponds to ‘sparcv9-sun-solaris2*’.It is recommended that you configure GCC to use the GNU assembler. The d587 8 a594 11 /usr/sfw/bin/gas), and Solaris 11, from GNU binutils 2.19 or newer (also available as /usr/bin/gas and /usr/gnu/bin/as), work fine. Please note that the current version, from GNU binutils 2.26, only works on Solaris 12 when using the Solaris linker. On Solaris 10 and 11, you either have to wait for GNU binutils 2.26.1 or newer, or stay with GNU binutils 2.25.1. Recent versions of the Solaris assembler in /usr/ccs/bin/as work almost as well, though.
For linking, the Solaris linker, is preferred. If you want to use the GNU d596 1 a596 1 10, from GNU binutils 2.15 (in /usr/sfw/bin/gld), cannot be used, d598 11 a608 13 in /usr/gnu/bin/ld and /usr/bin/gld), works, as does the latest version, from GNU binutils 2.26.
To use GNU as, configure with the options --with-gnu-as --with-as=/usr/sfw/bin/gas. It may be necessary to configure with --without-gnu-ld --with-ld=/usr/ccs/bin/ld to guarantee use of Sun ld.
ia64-*-linux
d611 3 a613 3If you are using the installed system libunwind library with --with-system-libunwind, then you must use libunwind 0.98 or d615 2 a616 2
None of the following versions of GCC has an ABI that is compatible d619 3 a621 3 3.1, 3.0.2, 3.0.1, 3.0, Red Hat 2.96, and Trillian 000717. This primarily affects C++ programs and programs that create shared libraries. GCC 3.1 or later is recommended for compiling linux, the kernel. d624 4 a627 5
ia64-*-hpux*
d630 6 a635 6 the option --with-gnu-as may be necessary.The GCC libunwind library has not been ported to HPUX. This means that for GCC versions 3.2.3 and earlier, --enable-libunwind-exceptions is required to build GCC. For GCC 3.3 and later, this is the default. For gcc 3.4.3 and later, --enable-libunwind-exceptions is d637 6 a642 7
*-ibm-aix*
Support for AIX version 3 and older was discontinued in GCC 3.4. d644 2 a645 2
“out of memory” bootstrap failures may indicate a problem with d647 3 a649 3 /etc/security/limits system configuration file.
GCC 4.9 and above require a C++ compiler for bootstrap. IBM VAC++ / xlC d652 2 a653 2
GCC can bootstrap with recent versions of IBM XLC, but bootstrapping d657 5 d663 2 a664 5
% LDR_CNTRL=MAXDATA=0x50000000 % export LDR_CNTRLOne can start with a pre-compiled version of GCC to build from sources. One may delete GCC's “fixed” header files when starting d666 8 d675 2 a676 7
To speed up the configuration phases of bootstrapping and installing GCC, one may use GNU Bash instead of AIX /bin/sh, e.g.,
% CONFIG_SHELL=/opt/freeware/bin/bash % export CONFIG_SHELLand then proceed as described in the build instructions, where we strongly recommend specifying an absolute path d678 2 a679 2
Because GCC on AIX is built as a 32-bit executable by default, d683 2 a684 2
Errors involving
allocawhen building GCC generally are due d687 5 a691 5 the build, the native AIX compiler must be invoked as cc (not xlc). Once configure has been informed of xlc, one needs to use ‘make distclean’ to remove the configure cache files and ensure that CC environment variable does not provide a definition that will confuse configure. d694 2 a695 2The native as and ld are recommended for d698 1 a698 1 AIX 5. The GNU Assembler has not been updated to support AIX 6 or d700 2 a701 2
AIX 7.1 added partial support for DWARF debugging, but full support d706 2 a707 2
AIX 5.3 TL10, AIX 6.1 TL05 and AIX 7.1 TL00 introduced an AIX d715 2 a716 2
Building libstdc++.a requires a fix for an AIX Assembler bug d720 3 a722 3
‘libstdc++’ in GCC 3.4 increments the major version number of the shared object and GCC installation places the libstdc++.a d726 3 a728 3 versions of the ‘libstdc++’ shared object needs to be available to the AIX runtime loader. The GCC 3.1 ‘libstdc++.so.4’, if present, and GCC 3.3 ‘libstdc++.so.5’ shared objects can be d730 8 a737 2 the ‘F_LOADONLY’ flag in the shared object for each multilib libstdc++.a installed: d739 1 a739 5
Extract the shared objects from the currently installed libstdc++.a archive:
% ar -x libstdc++.a libstdc++.so.4 libstdc++.so.5Enable the ‘F_LOADONLY’ flag so that the shared object will be d741 12 a752 8
% strip -e libstdc++.so.4 libstdc++.so.5Archive the runtime-only shared object in the GCC 3.4 libstdc++.a archive:
% ar -q libstdc++.a libstdc++.so.4 libstdc++.so.5Eventually, the --with-aix-soname=svr4 d755 2 a756 2
Linking executables and shared libraries may produce warnings of d762 2 a763 2
AIX 4.3 utilizes a “large format” archive to support both 32-bit and d765 1 a765 1 to parse archive libraries did not handle the new format correctly. d768 1 a768 1 with AIX 4.3.1 should work for a 32-bit environment. The -g d772 3 a774 3
Some versions of the AIX binder (linker) can fail with a relocation overflow severe error when the -bbigtoc option is used to link d780 2 a781 2
The AIX 4.3.2.1 linker (bos.rte.bind_cmds Level 4.3.2.1) will dump core d786 2 a787 2
The initial assembler shipped with AIX 4.3.0 generates incorrect object d792 2 a793 2
AIX provides National Language Support (NLS). Compilers and assemblers d795 1 a795 1 formats including floating-point numbers (e.g., ‘.’ vs ‘,’ for d798 9 a806 10 expects. If one encounters this problem, set the LANG environment variable to ‘C’ or ‘En_US’.
A default can be specified with the -mcpu=cpu_type switch and using the configure option --with-cpu-cpu_type.
iq2000-*-elf
d809 5 a813 6
lm32-*-elf
Lattice Mico32 processor. d815 5 a819 6
lm32-*-uclinux
Lattice Mico32 processor. d821 5 a825 6
m32c-*-elf
Renesas M32C processor. d827 5 a831 6
m32r-*-elf
Renesas M32R processor. d833 4 a836 5
m68k-*-*
d838 2 a839 2 ‘m68k-*-elf*’, ‘m68k-*-rtems’, ‘m68k-*-uclinux’ and ‘m68k-*-linux’ d842 3 a844 3 --with-arch=m68k to configure. Alternatively, you can omit the M680x0 libraries by passing --with-arch=cf to configure. These targets default to 5206 or 5475 code as d846 4 a849 4 configured with --with-arch=cf and 68020 code otherwise.The ‘m68k-*-netbsd’ and ‘m68k-*-openbsd’ targets also support the --with-arch d851 13 a863 14 --with-arch=cf and 68020 code otherwise.
You can override the default processors listed above by configuring with --with-cpu=target. This target can either be a -mcpu argument or one of the following values: ‘m68000’, ‘m68010’, ‘m68020’, ‘m68030’, ‘m68040’, ‘m68060’, ‘m68020-40’ and ‘m68020-60’.
GCC requires at least binutils version 2.17 on these targets.
m68k-*-uclinux
d865 1 a865 1 ‘m68k-linux-gnu’ ABI rather than the ‘m68k-elf’ ABI. d868 5 a872 6
microblaze-*-elf
Xilinx MicroBlaze processor. d874 4 a877 5
mips-*-*
d879 1 a879 1 sections for all it's [sic] sectons [sic]”, don't worry about it. This d883 2 a884 2It would be nice to extend GAS to produce the gp tables, but they are d886 2 a887 2
The libstdc++ atomic locking routines for MIPS targets requires MIPS II d889 3 a891 3 make ‘mips*-*-*’ use the generic implementation instead. You can also configure for ‘mipsel-elf’ as a workaround. The ‘mips*-*-linux*’ target continues to use the MIPS II routines. More d893 1 d895 4 a898 6
The built-in
__sync_*functions are available on MIPS II and later systems and others that support the ‘ll’, ‘sc’ and ‘sync’ instructions. This can be overridden by passing --with-llsc or --without-llsc when configuring GCC. d900 4 a903 4 missing, the default for ‘mips*-*-linux*’ targets is --with-llsc. The --with-llsc and --without-llsc configure options may be overridden at compile time by passing the -mllsc or -mno-llsc options to d905 3 a907 3MIPS systems check for division by zero (unless -mno-check-zero-division is passed to the compiler) by d912 2 a913 2 the use of break, use the --with-divide=breaks configure option when configuring GCC. The default is to d915 4 a918 19
mips-sgi-irix5
Support for IRIX 5 has been removed in GCC 4.6.
mips-sgi-irix6
Support for IRIX 6.5 has been removed in GCC 4.8. Support for IRIX 6 releases before 6.5 has been removed in GCC 4.6, as well as support for the O32 ABI.
moxie-*-elf
d920 5 a924 6
msp430-*-elf
TI MSP430 processor. d926 4 a929 5
nds32le-*-elf
d931 4 a934 5
nds32be-*-elf
d936 4 a939 5
nvptx-*-none
d941 3 a943 3Instead of GNU binutils, you will need to install nvptx-tools. d945 22 a966 24 --with-build-time-tools=[install-nvptx-tools]/nvptx-none/bin.
A nvptx port of newlib is available at nvptx-newlib. It can be automatically built together with GCC. For this, add a symbolic link to nvptx-newlib's newlib directory to the directory containing the GCC sources.
Use the --disable-sjlj-exceptions and --enable-newlib-io-long-long options when configuring.
powerpc-*-*
You can specify a default version for the -mcpu=cpu_type switch by using the configure option --with-cpu-cpu_type.
You will need GNU binutils 2.15 or newer.
powerpc-*-darwin*
d968 2 a969 2Pre-installed versions of Mac OS X may not include any developer tools, d973 2 a974 2
This version of GCC requires at least cctools-590.36. The d978 4 a981 5
powerpc-*-elf
d983 4 a986 5
powerpc*-*-linux-gnu*
d988 4 a991 5
powerpc-*-netbsd*
d993 4 a996 5
powerpc-*-eabisim
d999 4 a1002 5
powerpc-*-eabi
d1004 4 a1007 5
powerpcle-*-elf
d1009 4 a1012 5
powerpcle-*-eabisim
d1015 4 a1018 5
powerpcle-*-eabi
d1020 11 a1030 6
rl78-*-elf
The Renesas RL78 processor. a1031 7
riscv32-*-elf
The RISC-V RV32 instruction set. This configuration is intended for embedded systems. d1034 5 a1038 6
riscv32-*-linux
The RISC-V RV32 instruction set running GNU/Linux. d1041 6 a1046 7
riscv64-*-elf
The RISC-V RV64 instruction set. This configuration is intended for embedded systems. d1049 5 a1053 6
riscv64-*-linux
The RISC-V RV64 instruction set running GNU/Linux. d1056 4 a1059 5
rx-*-elf
d1061 4 a1064 5
s390-*-linux*
d1066 4 a1069 5
s390x-*-linux*
d1071 4 a1074 5
s390x-ibm-tpf*
d1077 4 a1080 9
*-*-solaris2*
d1084 2 a1085 2Sun does not ship a C compiler with Solaris 2 before Solaris 10, though d1087 1 a1087 1 11, GCC 3.4.3 is available as /usr/sfw/bin/gcc. Solaris 11 d1089 1 a1089 1 /usr/gcc/4.5/bin/gcc or similar. Alternatively, d1092 3 a1094 3
The Solaris 2 /bin/sh will often fail to configure ‘libstdc++-v3’or ‘boehm-gc’. We therefore recommend using the d1096 5 d1102 1 a1102 4
% CONFIG_SHELL=/bin/ksh % export CONFIG_SHELLand proceed as described in the configure instructions. d1104 3 a1106 3 srcdir/configure.
Solaris 10 comes with a number of optional OS packages. Some of these d1111 1 a1111 1 the packages that GCC needs are installed. d1113 2 a1114 2 the pkginfo command. To add an optional package, use the pkgadd command. For further details, see the Solaris 10 d1116 2 a1117 2
Starting with Solaris 11, the package management has changed, so you d1120 4 a1123 4 packages is done with the pkg command now.
Trying to use the linker and other tools in /usr/ucb to install GCC has been observed to cause trouble. d1125 8 a1132 8 /usr/ucb from your PATH.
The build process works more smoothly with the legacy Sun tools so, if you have /usr/xpg4/bin in your PATH, we recommend that you place /usr/bin before /usr/xpg4/bin for the duration of the build.
We recommend the use of the Solaris assembler or the GNU assembler, in conjunction with the Solaris linker. The GNU as d1134 5 a1138 6 /usr/sfw/bin/gas), and Solaris 11, from GNU binutils 2.19 or newer (also in /usr/bin/gas and /usr/gnu/bin/as), are known to work. Current versions of GNU binutils (2.26) are known to work as well, with the caveat mentioned in i?86-*-solaris2.10 . Note that your mileage may vary d1140 4 a1143 5 combination GNU as + Sun ld should reasonably work, the reverse combination Sun as + GNU ld may fail to build or cause memory corruption at runtime in some cases for C++ programs. GNU ld usually works as well, although the version included in d1145 9 a1153 9 version (2.26) is known to work, but generally lacks platform specific features, so better stay with Solaris ld. To use the LTO linker plugin (-fuse-linker-plugin) with GNU ld, GNU binutils must be configured with --enable-largefile.
To enable symbol versioning in ‘libstdc++’ with the Solaris linker, you need to have any version of GNU c++filt, which is part of GNU binutils. ‘libstdc++’ symbol versioning will be disabled if no appropriate version is found. Solaris c++filt from the Solaris d1155 4 a1158 4
Sun bug 4927647 sometimes causes random spurious testsuite failures related to missing diagnostic output. This bug doesn't affect GCC itself, rather it is a kernel bug triggered by the expect d1160 1 a1160 1 causes the expect program to miss anticipated output, extra d1162 4 a1165 5
sparc*-*-*
d1169 2 a1170 2Newer versions of the GNU Multiple Precision Library (GMP), the MPFR d1175 4 a1178 5
sparc-sun-solaris2*
d1180 1 a1180 1 produced are smaller than the ones produced using Sun's native tools; d1183 2 a1184 2Starting with Solaris 7, the operating system is capable of executing d1186 1 a1186 1 this; the -m64 option enables 64-bit code generation. d1188 1 a1188 1 should try the -mtune=ultrasparc option instead, which produces d1191 2 a1192 2
When configuring the GNU Multiple Precision Library (GMP), the MPFR d1194 2 a1195 2 target triplet must be specified as the build parameter on the configure line. This target triplet can be obtained by invoking ./config.guess in the toplevel source directory of GCC (and d1197 8 a1204 7
% ./configure --build=sparc-sun-solaris2.9 --prefix=xxx
sparc-sun-solaris2.10
d1207 15 a1221 14ld: fatal: relocation error: R_SPARC_TLS_LE_HIX22: file /var/tmp//ccamPA1v.o: symbol <unknown>: bad symbol type SECT: symbol type must be TLSThis bug is fixed in Sun patch 118683-03 or later.
sparc-*-linux*
sparc64-*-solaris2*
d1224 1 a1224 1 as the build parameter on the configure line. For example d1226 13 a1238 13% ./configure --build=sparc64-sun-solaris2.9 --prefix=xxx
sparcv9-*-solaris2*
This is a synonym for ‘sparc64-*-solaris2*’.
c6x-*-*
d1240 4 a1243 5
tilegx-*-linux*
d1246 4 a1249 5
tilegxbe-*-linux*
d1252 4 a1255 5
tilepro-*-linux*
d1258 5 a1262 6
visium-*-elf
CDS VISIUMcore processor. d1264 4 a1267 5
*-*-vxworks*
d1269 2 a1270 2 very recent VxWorks 5.5 (aka Tornado 2.2) release, and only on PowerPC. We welcome patches for other architectures supported by VxWorks 5.5. d1275 12 a1286 12VxWorks comes with an older version of GCC installed in $WIND_BASE/host; we recommend you do not overwrite it. Choose an installation prefix entirely outside $WIND_BASE. Before running configure, create the directories prefix and prefix/bin. Link or copy the appropriate assembler, linker, etc. into prefix/bin, and set your PATH to include that directory while running both configure and make.
You must give configure the --with-headers=$WIND_BASE/target/h switch so that it can d1288 4 a1291 4 target only, you must also specify --target=target. configure will attempt to create the directory prefix/target/sys-include and copy files into it; make sure the user running configure has sufficient privilege d1293 3 a1295 3
GCC's exception handling runtime requires a special “configlette” module, contrib/gthr_supp_vxw_5x.c. Follow the instructions in d1298 4 a1301 5
x86_64-*-*, amd64-*-*
d1303 1 a1303 1 (amd64-*-* is an alias for x86_64-*-*) on GNU/Linux, FreeBSD and NetBSD. d1305 5 a1309 6 both 64-bit x86-64 and 32-bit x86 code (via the -m32 switch).
x86_64-*-solaris2.1[0-9]*
d1311 1 a1311 1 processor (‘amd64-*-*’ is an alias for ‘x86_64-*-*’) on d1314 1 a1314 1 can generate 64-bit x86-64 code with the -m64 switch. Since d1316 8 a1323 9 can generate 32-bit code with -m32. To configure and build this way, you have to provide all support libraries like libgmp as 64-bit code, configure with --target=x86_64-pc-solaris2.1x and ‘CC=gcc -m64’.
xtensa*-*-elf
d1325 1 a1325 1 ‘newlib’ C library. It uses ELF but does not support shared d1329 3 a1331 3The Xtensa configuration information must be specified prior to building GCC. The include/xtensa-config.h header d1336 4 a1339 5
xtensa*-*-linux*
d1343 1 a1343 1 -fpic or -fPIC options are used. In other d1345 5 a1349 7 ‘xtensa*-*-elf’ target.
Microsoft Windows
Intel 16-bit versions
d1351 2 d1355 2 a1356 2However, the 32-bit port has limited support for Microsoft d1358 3 a1360 3
Intel 32-bit versions
d1365 9 d1375 2 a1376 11
- Cygwin *-*-cygwin: Cygwin provides a user-space Linux API emulation layer in the Win32 subsystem.
- MinGW *-*-mingw32: MinGW is a native GCC port for the Win32 subsystem that provides a subset of POSIX.
- MKS i386-pc-mks: NuTCracker from MKS. See http://www.mkssoftware.com/ for more information.
Intel 64-bit versions
d1378 1 a1378 1 runtime library, available from http://mingw-w64.org/doku.php. d1380 5 a1384 5Presently Windows for Itanium is not supported.
Windows CE
d1387 3 a1389 3Other Windows Platforms
d1391 2 a1392 2GCC no longer supports the Windows POSIX subsystem. However, it does d1394 4 a1397 4
Old target names including *-*-winnt and *-*-windowsnt are no longer used.
PW32 (i386-pc-pw32) support was never completed, and the project seems to d1399 6 a1404 7
UWIN support has been removed due to a lack of maintenance.
*-*-cygwin
d1407 5 a1411 5GCC will build under Cygwin without modification; it does not build with Microsoft's C++ compiler and there are no plans to make it do so.
The Cygwin native compiler can be configured to target any 32-bit x86 d1416 5 a1420 6
*-*-mingw32
GCC will build with and support only MinGW runtime 3.12 and later. d1423 4 a1426 5
Older systems
d1431 2 a1432 2Starting with GCC 3.1, each release has a list of “obsoleted” systems. d1434 1 a1434 1 configure will fail unless the --enable-obsolete d1437 2 a1438 2
Support for old systems as hosts for GCC can cause problems if the d1445 3 a1447 2 old-releases directory on the GCC mirror sites. Header bugs may generally be avoided using fixincludes, but bugs or deficiencies in libraries and the d1449 2 a1450 2
Support for older systems as targets for cross-compilation is less d1458 3 a1460 3
For some systems, old versions of GNU binutils may also be useful, and are available from pub/binutils/old-releases on d1462 2 a1463 2
Some of the information on specific systems above relates to d1467 4 a1470 5
all ELF targets (SVR4, Solaris 2, etc.)
d1475 1 d1477 2 a1478 1
d1480 5 a1485 5 d1487 2 @ 1.8 log @merge GCC 6.5. needs mknative as some new files appeared. @ text @d1 10 a10 3Installing GCC d47 4 a50 33 d52 78 d131 2 a132 1 d134 1 a134 2Installing GCC
d136 3 d140 9 d150 10 d161 1 d163 1 d165 4 d170 4 d175 1 d177 1 d179 3 d183 4 d188 1 d190 1 d192 1 d194 1 d196 1 d198 3 d202 1 d204 1 d206 1 d208 1 d210 1 d212 1 d214 1 a214 174Please read this document carefully before installing the GNU Compiler Collection on your machine.
Note that this list of install notes is not a list of supported hosts or targets. Not all supported hosts and targets are listed here, only the ones that require host-specific or target-specific information have to.
- aarch64*-*-*
- alpha*-*-*
- alpha*-dec-osf5.1
- amd64-*-solaris2.10
- arm-*-eabi
- avr
- Blackfin
- DOS
- *-*-freebsd*
- h8300-hms
- hppa*-hp-hpux*
- hppa*-hp-hpux10
- hppa*-hp-hpux11
- *-*-linux-gnu
- i?86-*-linux*
- i?86-*-solaris2.10
- ia64-*-linux
- ia64-*-hpux*
- *-ibm-aix*
- iq2000-*-elf
- lm32-*-elf
- lm32-*-uclinux
- m32c-*-elf
- m32r-*-elf
- m68k-*-*
- m68k-uclinux
- mep-*-elf
- microblaze-*-elf
- mips-*-*
- mips-sgi-irix5
- mips-sgi-irix6
- nds32le-*-elf
- nds32be-*-elf
- nvptx-*-none
- powerpc*-*-*
- powerpc-*-darwin*
- powerpc-*-elf
- powerpc*-*-linux-gnu*
- powerpc-*-netbsd*
- powerpc-*-eabisim
- powerpc-*-eabi
- powerpcle-*-elf
- powerpcle-*-eabisim
- powerpcle-*-eabi
- s390-*-linux*
- s390x-*-linux*
- s390x-ibm-tpf*
- *-*-solaris2*
- sparc*-*-*
- sparc-sun-solaris2*
- sparc-sun-solaris2.10
- sparc-*-linux*
- sparc64-*-solaris2*
- sparcv9-*-solaris2*
- c6x-*-*
- tilegx-*-linux*
- tilegxbe-*-linux*
- tilepro-*-linux*
- visium-*-elf
- *-*-vxworks*
- x86_64-*-*, amd64-*-*
- x86_64-*-solaris2.1[0-9]*
- xtensa*-*-elf
- xtensa*-*-linux*
- Microsoft Windows
- *-*-cygwin
- *-*-interix
- *-*-mingw32
- OS/2
- Older systems
- all ELF targets (SVR4, Solaris 2, etc.)
aarch64*-*-*
Binutils pre 2.24 does not have support for selecting -mabi and does not support ILP32. If it is used to build GCC 4.9 or later, GCC will not support option -mabi=ilp32.
To enable a workaround for the Cortex-A53 erratum number 835769 by default (for all CPUs regardless of -mcpu option given) at configure time use the --enable-fix-cortex-a53-835769 option. This will enable the fix by default and can be explicitly disabled during compilation by passing the -mno-fix-cortex-a53-835769 option. Conversely, --disable-fix-cortex-a53-835769 will disable the workaround by default. The workaround is disabled by default if neither of --enable-fix-cortex-a53-835769 or --disable-fix-cortex-a53-835769 is given at configure time.
To enable a workaround for the Cortex-A53 erratum number 843419 by default (for all CPUs regardless of -mcpu option given) at configure time use the --enable-fix-cortex-a53-843419 option. This workaround is applied at link time. Enabling the workaround will cause GCC to pass the relevant option to the linker. It can be explicitly disabled during compilation by passing the -mno-fix-cortex-a53-843419 option. Conversely, --disable-fix-cortex-a53-843419 will disable the workaround by default. The workaround is disabled by default if neither of --enable-fix-cortex-a53-843419 or --disable-fix-cortex-a53-843419 is given at configure time.
alpha*-*-*
This section contains general configuration information for all alpha-based platforms using ELF (in particular, ignore this section for DEC OSF/1, Digital UNIX and Tru64 UNIX). In addition to reading this section, please read all other sections that match your target.
We require binutils 2.11.2 or newer. Previous binutils releases had a number of problems with DWARF 2 debugging information, not the least of which is incorrect linking of shared libraries.
alpha*-dec-osf5.1
Systems using processors that implement the DEC Alpha architecture and are running the DEC/Compaq/HP Unix (DEC OSF/1, Digital UNIX, or Compaq/HP Tru64 UNIX) operating system, for example the DEC Alpha AXP systems.
Support for Tru64 UNIX V5.1 has been removed in GCC 4.8. As of GCC 4.6, support for Tru64 UNIX V4.0 and V5.0 has been removed. As of GCC 3.2, versions before
alpha*-dec-osf4are no longer supported. (These are the versions which identify themselves as DEC OSF/1.)
amd64-*-solaris2.1[0-9]*
This is a synonym for ‘x86_64-*-solaris2.1[0-9]*’.
arc-*-elf32
Use ‘configure --target=arc-elf32 --with-cpu=cpu --enable-languages="c,c++"’ to configure GCC, with cpu being one of ‘arc600’, ‘arc601’, or ‘arc700’.
arc-linux-uclibc
Use ‘configure --target=arc-linux-uclibc --with-cpu=arc700 --enable-languages="c,c++"’ to configure GCC.
arm-*-eabi
ARM-family processors. Subtargets that use the ELF object format require GNU binutils 2.13 or newer. Such subtargets include:
arm-*-netbsdelf,arm-*-*linux-*andarm-*-rtemseabi.Building the Ada frontend commonly fails (an infinite loop executing d217 5 a221 4
avr
d223 1 a223 1 applications. There are no standard Unix configurations. d226 4 a229 4Use ‘configure --target=avr --enable-languages="c"’ to configure GCC.
Further installation notes and other useful information about AVR tools d231 16 a246 19
We strongly recommend using binutils 2.13 or newer.
The following error:
Error: register requiredindicates that you should upgrade to a newer version of the binutils.
Blackfin
The Blackfin processor, an Analog Devices DSP. d248 8 a255 7
More information, and a version of binutils with support for this processor, is available at http://blackfin.uclinux.org
CR16
a257 1 d259 12 a270 11See “CR16 Options” in the main manual for a list of CR16-specific options.
Use ‘configure --target=cr16-elf --enable-languages=c,c++’ to configure GCC for building a CR16 elf cross-compiler.
Use ‘configure --target=cr16-uclinux --enable-languages=c,c++’ to configure GCC for building a CR16 uclinux cross-compiler.
CRIS
d273 2 a274 2See “CRIS Options” in the main manual d276 7 a282 11
There are a few different CRIS targets:
cris-axis-elfMainly for monolithic embedded systems. Includes a multilib for the ‘v10’ core used in ‘ETRAX 100 LX’.
cris-axis-linux-gnu- d285 1 a285 4
A GNU/Linux port for the CRIS architecture, currently targeting ‘ETRAX 100 LX’ by default.
For
cris-axis-elfyou need binutils 2.11 or newer. Forcris-axis-linux-gnuyou need binutils 2.12 or newer.Pre-packaged tools can be obtained from d289 5 a293 4
DOS
d295 2 a296 2You cannot install GCC by itself on MSDOS; it will not compile under d300 6 a305 5
epiphany-*-elf
Adapteva Epiphany. d307 5 a311 4
*-*-freebsd*
d315 2 a316 2In order to better utilize FreeBSD base system functionality and match d321 1 a321 1 libgcc_s.so.1 and boehm-gc (on FreeBSD 7 or later) is enabled d323 4 a326 4
We support FreeBSD using the ELF file format with DWARF 2 debugging for all CPU architectures. You may use -gstabs instead of -g, if you really want the old debugging format. There are d330 1 a330 1 GCC. In particular, --enable-threads is now configured by d336 2 a337 2
The version of binutils installed in /usr/bin probably works d339 1 a339 1 binutils and/or the version found in /usr/ports/devel/binutils has d341 9 a349 8 results. However, it is currently known that boehm-gc (which itself is required for java) may not configure properly on FreeBSD prior to the FreeBSD 7.0 release with GNU binutils after 2.16.1.
ft32-*-elf
The FT32 processor. d351 5 a355 4
h8300-hms
d357 4 a360 4Please have a look at the binaries page.
The calling convention and structure layout has changed in release 2.6. d364 5 a368 4
hppa*-hp-hpux*
d370 2 a371 2We require using gas/binutils on all hppa platforms. Version 2.19 or d373 7 a379 7
It may be helpful to configure GCC with the --with-gnu-as and --with-as=… options to ensure that GCC can find GAS.
The HP assembler should not be used with GCC. It is rarely tested and may not work. It shouldn’t be used with any languages other than C due to its d381 2 a382 2
Specifically, -g does not work (HP-UX uses a peculiar debugging d386 3 a388 3 ‘make all-host all-target’ after getting the failure from ‘make’.
Various GCC features are not supported. For example, it does not support weak d392 2 a393 2
There are two default scheduling models for instructions. These are d395 1 a395 1 architecture specified for the target machine when configuring. d397 3 a399 3 the target is a ‘hppa1*’ machine.
The PROCESSOR_8000 model is not well suited to older processors. Thus, d404 3 a406 3
As of GCC 4.0, GCC uses the UNIX 95 namespace for HP-UX 10.10 through 11.00, and the UNIX 98 namespace for HP-UX 11.11 and later. d410 3 a412 3 in a number of ways. With HP cc,
UNIX_STDcan be set to ‘95’ or ‘98’. Another way is to add an appropriate set of predefines toCC. The description for the munix= option contains d414 7 a420 6More specific information to ‘hppa*-hp-hpux*’ targets follows.
hppa*-hp-hpux10
d423 2 a424 2The C++ ABI has changed incompatibly in GCC 4.0. COMDAT subspaces are d428 5 a432 4
hppa*-hp-hpux11
d435 4 a438 4The libffi and libjava libraries haven’t been ported to 64-bit HP-UX and don’t build.
Refer to binaries for information about obtaining d440 1 a440 1 to build the Ada language as it can’t be bootstrapped using C. Ada is d442 3 a444 3
Starting with GCC 3.4 an ISO C compiler is required to bootstrap. The bundled compiler supports only traditional C; you will need either HP’s d446 2 a447 2
It is possible to build GCC 3.3 starting with the bundled HP compiler, d449 3 a451 7 build later versions. The fastjar program contains ISO C code and can’t be built with the HP bundled compiler. This problem can be avoided by not building the Java language. For example, use the --enable-languages="c,c++,f77,objc" option in your configure command.
There are several possible approaches to building the distribution. d454 1 a454 1 first using the HP tools, then build binutils, then rebuild GCC. d457 2 a458 2
On 64-bit capable systems, there are two distinct targets. Different d460 3 a462 3 the same system. The ‘hppa[1-2]*-hp-hpux11*’ target generates code for the 32-bit PA-RISC runtime architecture and uses the HP linker. The ‘hppa64-hp-hpux11*’ target generates 64-bit code for the d464 11 a474 11
The script config.guess now selects the target type based on the compiler detected during configuration. You must define
PATHorCCso that configure finds an appropriate compiler for the initial bootstrap. WhenCCis used, the definition should contain the options that are needed wheneverCCis used.Specifically, options that determine the runtime architecture must be in
CCto correctly select the target for the build. It is also convenient to place many other compiler options inCC. For example,CC="cc -Ac +DA2.0W -Wp,-H16376 -D_CLASSIC_TYPES -D_HPUX_SOURCE"d476 2 a477 2 64-bit K&R/bundled mode. The +DA2.0W option will result in the automatic selection of the ‘hppa64-hp-hpux11*’ target. The d481 4 a484 4 -Ac option. These defines aren’t necessary with -Ae.It is best to explicitly configure the ‘hppa64-hp-hpux11*’ target with the --with-ld=… option. This overrides the standard d487 1 a487 1 result, it’s not possible to switch linkers in the middle of a GCC build. d490 2 a491 2
A recent linker patch must be installed for the correct operation of d495 1 a495 1
PHSS_24304, might be usable but it hasn’t been tested. These d498 2 a499 2The patches are necessary for the support of weak symbols on the d502 1 a502 1 to HP-UX 11, there are bugs in the linker support for secondary symbols. d506 2 a507 2
GCC 3.3 uses the ELF DT_INIT_ARRAY and DT_FINI_ARRAY capabilities to d509 1 a509 1 uses the linker +init and +fini options for the same d512 1 a512 1 problem on the 64-bit port resulting from HP’s non-standard use of d514 3 a516 3
Although the HP and GNU linkers are both supported for the ‘hppa64-hp-hpux11*’ target, it is strongly recommended that the d518 3 a520 3
At this time, the GNU linker does not support the creation of long branch stubs. As a result, it can’t successfully link binaries d523 5 a527 5 with -static, and with dwarf2 unwind and exception support. It also doesn’t provide stubs for internal calls to global functions in shared libraries, so these calls can’t be overloaded.
The HP dynamic loader does not support GNU symbol versioning, so symbol d529 9 a537 8 versioning with --disable-symvers when using GNU ld.
POSIX threads are the default. The optional DCE thread library is not supported, so --enable-threads=dce does not work.
*-*-linux-gnu
d541 6 a546 5
i?86-*-linux*
As of GCC 3.3, binutils 2.13.1 or later is required for this platform. d548 2 a549 2
If you receive Signal 11 errors when building on GNU/Linux, then it is d552 5 a556 4
i?86-*-solaris2.10
d558 5 a562 5 with GCC 4.7, there is also a 64-bit ‘amd64-*-solaris2.1[0-9]*’ or ‘x86_64-*-solaris2.1[0-9]*’ configuration that corresponds to ‘sparcv9-sun-solaris2*’.It is recommended that you configure GCC to use the GNU assembler. The d564 3 a566 3 /usr/sfw/bin/gas), and Solaris 11, from GNU binutils 2.19 or newer (also available as /usr/bin/gas and /usr/gnu/bin/as), work fine. Please note that the current d570 5 a574 4 versions of the Solaris assembler in /usr/ccs/bin/as work almost as well, though.
For linking, the Solaris linker, is preferred. If you want to use the GNU d576 1 a576 1 10, from GNU binutils 2.15 (in /usr/sfw/bin/gld), cannot be used, d578 1 a578 1 in /usr/gnu/bin/ld and /usr/bin/gld), works, as does the d580 11 a590 9
To use GNU
as, configure with the options --with-gnu-as --with-as=/usr/sfw/bin/gas. It may be necessary to configure with --without-gnu-ld --with-ld=/usr/ccs/bin/ld to guarantee use of Sunld.
ia64-*-linux
d593 3 a595 3If you are using the installed system libunwind library with --with-system-libunwind, then you must use libunwind 0.98 or d597 2 a598 2
None of the following versions of GCC has an ABI that is compatible d601 3 a603 3 3.1, 3.0.2, 3.0.1, 3.0, Red Hat 2.96, and Trillian 000717. This primarily affects C++ programs and programs that create shared libraries. GCC 3.1 or later is recommended for compiling linux, the kernel. d606 5 a610 4
ia64-*-hpux*
d613 6 a618 6 the option --with-gnu-as may be necessary.The GCC libunwind library has not been ported to HPUX. This means that for GCC versions 3.2.3 and earlier, --enable-libunwind-exceptions is required to build GCC. For GCC 3.3 and later, this is the default. For gcc 3.4.3 and later, --enable-libunwind-exceptions is d620 7 a626 6
*-ibm-aix*
Support for AIX version 3 and older was discontinued in GCC 3.4. d628 2 a629 2
“out of memory” bootstrap failures may indicate a problem with d631 3 a633 3 /etc/security/limits system configuration file.
GCC 4.9 and above require a C++ compiler for bootstrap. IBM VAC++ / xlC d636 2 a637 2
GCC can bootstrap with recent versions of IBM XLC, but bootstrapping a640 5
d642 5 a646 2% LDR_CNTRL=MAXDATA=0x50000000 % export LDR_CNTRLOne can start with a pre-compiled version of GCC to build from sources. One may delete GCC’s “fixed” header files when starting a647 8
To speed up the configuration phases of bootstrapping and installing GCC, one may use GNU Bash instead of AIX
/bin/sh, e.g.,d649 7 a655 2% CONFIG_SHELL=/opt/freeware/bin/bash % export CONFIG_SHELLand then proceed as described in the build instructions, where we strongly recommend specifying an absolute path d657 2 a658 2
Because GCC on AIX is built as a 32-bit executable by default, d662 2 a663 2
Errors involving
allocawhen building GCC generally are due d666 5 a670 5 the build, the native AIX compiler must be invoked ascc(notxlc). Onceconfigurehas been informed ofxlc, one needs to use ‘make distclean’ to remove the configure cache files and ensure thatCCenvironment variable does not provide a definition that will confuseconfigure. d673 2 a674 2The native
asandldare recommended for d677 1 a677 1 AIX 5. The GNU Assembler has not been updated to support AIX 6 or d679 2 a680 2AIX 7.1 added partial support for DWARF debugging, but full support d685 2 a686 2
AIX 5.3 TL10, AIX 6.1 TL05 and AIX 7.1 TL00 introduced an AIX d694 2 a695 2
Building libstdc++.a requires a fix for an AIX Assembler bug d699 3 a701 3
‘libstdc++’ in GCC 3.4 increments the major version number of the shared object and GCC installation places the libstdc++.a d705 3 a707 3 versions of the ‘libstdc++’ shared object needs to be available to the AIX runtime loader. The GCC 3.1 ‘libstdc++.so.4’, if present, and GCC 3.3 ‘libstdc++.so.5’ shared objects can be d709 2 a710 8 the ‘F_LOADONLY’ flag in the shared object for each multilib libstdc++.a installed:
Extract the shared objects from the currently installed libstdc++.a archive:
d712 5 a716 1% ar -x libstdc++.a libstdc++.so.4 libstdc++.so.5Enable the ‘F_LOADONLY’ flag so that the shared object will be d718 8 a725 12
% strip -e libstdc++.so.4 libstdc++.so.5Archive the runtime-only shared object in the GCC 3.4 libstdc++.a archive:
% ar -q libstdc++.a libstdc++.so.4 libstdc++.so.5Eventually, the --with-aix-soname=svr4 d728 2 a729 2
Linking executables and shared libraries may produce warnings of d735 2 a736 2
AIX 4.3 utilizes a “large format” archive to support both 32-bit and d738 1 a738 1 to parse archive libraries did not handle the new format correctly. d741 1 a741 1 with AIX 4.3.1 should work for a 32-bit environment. The -g d745 3 a747 3
Some versions of the AIX binder (linker) can fail with a relocation overflow severe error when the -bbigtoc option is used to link d753 2 a754 2
The AIX 4.3.2.1 linker (bos.rte.bind_cmds Level 4.3.2.1) will dump core d759 2 a760 2
The initial assembler shipped with AIX 4.3.0 generates incorrect object d765 2 a766 2
AIX provides National Language Support (NLS). Compilers and assemblers d768 1 a768 1 formats including floating-point numbers (e.g., ‘.’ vs ‘,’ for d771 10 a780 9 expects. If one encounters this problem, set the
LANGenvironment variable to ‘C’ or ‘En_US’.A default can be specified with the -mcpu=cpu_type switch and using the configure option --with-cpu-cpu_type.
iq2000-*-elf
d783 6 a788 5
lm32-*-elf
Lattice Mico32 processor. d790 6 a795 5
lm32-*-uclinux
Lattice Mico32 processor. d797 6 a802 5
m32c-*-elf
Renesas M32C processor. d804 6 a809 5
m32r-*-elf
Renesas M32R processor. d811 5 a815 4
m68k-*-*
d817 2 a818 2 ‘m68k-*-elf*’, ‘m68k-*-rtems’, ‘m68k-*-uclinux’ and ‘m68k-*-linux’ d821 3 a823 3 --with-arch=m68k toconfigure. Alternatively, you can omit the M680x0 libraries by passing --with-arch=cf toconfigure. These targets default to 5206 or 5475 code as d825 4 a828 4 configured with --with-arch=cf and 68020 code otherwise.The ‘m68k-*-netbsd’ and ‘m68k-*-openbsd’ targets also support the --with-arch d830 14 a843 13 --with-arch=cf and 68020 code otherwise.
You can override the default processors listed above by configuring with --with-cpu=target. This target can either be a -mcpu argument or one of the following values: ‘m68000’, ‘m68010’, ‘m68020’, ‘m68030’, ‘m68040’, ‘m68060’, ‘m68020-40’ and ‘m68020-60’.
GCC requires at least binutils version 2.17 on these targets.
m68k-*-uclinux
d845 1 a845 1 ‘m68k-linux-gnu’ ABI rather than the ‘m68k-elf’ ABI. d848 6 a853 5
mep-*-elf
Toshiba Media embedded Processor. d855 5 a859 10
microblaze-*-elf
Xilinx MicroBlaze processor. This configuration is intended for embedded systems.
mips-*-*
d861 1 a861 1 sections for all it’s [sic] sectons [sic]”, don’t worry about it. This d865 2 a866 2It would be nice to extend GAS to produce the gp tables, but they are d868 2 a869 2
The libstdc++ atomic locking routines for MIPS targets requires MIPS II d871 3 a873 3 make ‘mips*-*-*’ use the generic implementation instead. You can also configure for ‘mipsel-elf’ as a workaround. The ‘mips*-*-linux*’ target continues to use the MIPS II routines. More a874 1
d876 6 a881 4The built-in
__sync_*functions are available on MIPS II and later systems and others that support the ‘ll’, ‘sc’ and ‘sync’ instructions. This can be overridden by passing --with-llsc or --without-llsc when configuring GCC. d883 4 a886 4 missing, the default for ‘mips*-*-linux*’ targets is --with-llsc. The --with-llsc and --without-llsc configure options may be overridden at compile time by passing the -mllsc or -mno-llsc options to d888 3 a890 3MIPS systems check for division by zero (unless -mno-check-zero-division is passed to the compiler) by d895 2 a896 2 the use of break, use the --with-divide=breaks
configureoption when configuring GCC. The default is to d898 5 a902 12The assembler from GNU binutils 2.17 and earlier has a bug in the way it sorts relocations for REL targets (o32, o64, EABI). This can cause bad code to be generated for simple C++ programs. Also the linker from GNU binutils versions prior to 2.17 has a bug which causes the runtime linker stubs in very large programs, like libgcj.so, to be incorrectly generated. GNU Binutils 2.18 and later (and snapshots made after Nov. 9, 2006) should be free from both of these problems.
mips-sgi-irix5
d904 5 a908 4
mips-sgi-irix6
d912 5 a916 4
moxie-*-elf
d918 6 a923 5
msp430-*-elf
TI MSP430 processor. d925 5 a929 4
nds32le-*-elf
d931 5 a935 4
nds32be-*-elf
d937 5 a941 4
nvptx-*-none
d943 3 a945 3Instead of GNU binutils, you will need to install nvptx-tools. d947 4 a950 4 --with-build-time-tools=[install-nvptx-tools]/nvptx-none/bin.
A nvptx port of newlib is available at nvptx-newlib. d952 1 a952 1 symbolic link to nvptx-newlib’s newlib directory to the d954 17 a970 17
Use the --disable-sjlj-exceptions and --enable-newlib-io-long-long options when configuring.
powerpc-*-*
You can specify a default version for the -mcpu=cpu_type switch by using the configure option --with-cpu-cpu_type.
You will need binutils 2.15 or newer for a working GCC.
powerpc-*-darwin*
d972 2 a973 2Pre-installed versions of Mac OS X may not include any developer tools, d976 3 a978 3 http://opensource.apple.com/.
This version of GCC requires at least cctools-590.36. The d982 5 a986 4
powerpc-*-elf
d988 5 a992 4
powerpc*-*-linux-gnu*
d994 5 a998 4
powerpc-*-netbsd*
d1000 5 a1004 4
powerpc-*-eabisim
d1007 5 a1011 4
powerpc-*-eabi
d1013 5 a1017 4
powerpcle-*-elf
d1019 5 a1023 4
powerpcle-*-eabisim
d1026 5 a1030 4
powerpcle-*-eabi
d1032 6 a1037 5
rl78-*-elf
The Renesas RL78 processor. d1039 45 a1083 11
rx-*-elf
The Renesas RX processor. See http://eu.renesas.com/fmwk.jsp?cnt=rx600_series_landing.jsp&fp=/products/mpumcu/rx_family/rx600_series for more information about this processor.
s390-*-linux*
d1085 5 a1089 4
s390x-*-linux*
d1091 5 a1095 4
s390x-ibm-tpf*
d1098 9 a1106 4
*-*-solaris2*
d1110 2 a1111 2Sun does not ship a C compiler with Solaris 2 before Solaris 10, though d1113 1 a1113 1 11, GCC 3.4.3 is available as
/usr/sfw/bin/gcc. Solaris 11 d1115 1 a1115 1/usr/gcc/4.5/bin/gccor similar. Alternatively, a1117 9The Solaris 2
/bin/shwill often fail to configure ‘libstdc++-v3’, ‘boehm-gc’ or ‘libjava’. We therefore recommend using the following initial sequence of commandsd1119 8 a1126 1% CONFIG_SHELL=/bin/ksh % export CONFIG_SHELLand proceed as described in the configure instructions. d1128 3 a1130 3
srcdir/configure.Solaris 10 comes with a number of optional OS packages. Some of these d1135 1 a1135 1 the packages that GCC needs are installed. d1137 2 a1138 2 the
pkginfocommand. To add an optional package, use thepkgaddcommand. For further details, see the Solaris 10 d1140 2 a1141 2Starting with Solaris 11, the package management has changed, so you d1144 4 a1147 4 packages is done with the
pkgcommand now.Trying to use the linker and other tools in /usr/ucb to install GCC has been observed to cause trouble. d1149 8 a1156 8 /usr/ucb from your
PATH.The build process works more smoothly with the legacy Sun tools so, if you have /usr/xpg4/bin in your
PATH, we recommend that you place /usr/bin before /usr/xpg4/bin for the duration of the build.We recommend the use of the Solaris assembler or the GNU assembler, in conjunction with the Solaris linker. The GNU
asd1158 3 a1160 3 /usr/sfw/bin/gas), and Solaris 11, from GNU binutils 2.19 or newer (also in /usr/bin/gas and /usr/gnu/bin/as), are known to work. d1165 5 a1169 4 combination GNUas+ Sunldshould reasonably work, the reverse combination Sunas+ GNUldmay fail to build or cause memory corruption at runtime in some cases for C++ programs. GNUldusually works as well, although the version included in d1172 8 a1179 8 features, so better stay with Solarisld. To use the LTO linker plugin (-fuse-linker-plugin) with GNUld, GNU binutils must be configured with --enable-largefile.To enable symbol versioning in ‘libstdc++’ with the Solaris linker, you need to have any version of GNU
c++filt, which is part of GNU binutils. ‘libstdc++’ symbol versioning will be disabled if no appropriate version is found. Solarisc++filtfrom the Solaris d1181 4 a1184 7GNU
makeversion 3.81 or later is required to build libjava with the Solaris linker.Sun bug 4927647 sometimes causes random spurious testsuite failures related to missing diagnostic output. This bug doesn’t affect GCC itself, rather it is a kernel bug triggered by the
expectd1186 1 a1186 1 causes theexpectprogram to miss anticipated output, extra d1188 5 a1192 4
sparc*-*-*
d1196 2 a1197 2Newer versions of the GNU Multiple Precision Library (GMP), the MPFR d1202 5 a1206 4
sparc-sun-solaris2*
d1208 1 a1208 1 produced are smaller than the ones produced using Sun’s native tools; d1211 2 a1212 2Starting with Solaris 7, the operating system is capable of executing d1214 1 a1214 1 this; the -m64 option enables 64-bit code generation. d1216 1 a1216 1 should try the -mtune=ultrasparc option instead, which produces d1219 2 a1220 2
When configuring the GNU Multiple Precision Library (GMP), the MPFR d1222 2 a1223 2 target triplet must be specified as the
buildparameter on the configure line. This target triplet can be obtained by invoking./config.guessin the toplevel source directory of GCC (and d1225 7 a1231 8% ./configure --build=sparc-sun-solaris2.9 --prefix=xxx
sparc-sun-solaris2.10
d1234 14 a1247 20ld: fatal: relocation error: R_SPARC_TLS_LE_HIX22: file /var/tmp//ccamPA1v.o: symbol <unknown>: bad symbol type SECT: symbol type must be TLSThis bug is fixed in Sun patch 118683-03 or later.
sparc-*-linux*
GCC versions 3.0 and higher require binutils 2.11.2 and glibc 2.2.4 or newer on this platform. All earlier binutils and glibc releases mishandled unaligned relocations on
sparc-*-*targets.
sparc64-*-solaris2*
d1250 1 a1250 1 as thebuildparameter on the configure line. For example d1252 13 a1264 13% ./configure --build=sparc64-sun-solaris2.9 --prefix=xxx
sparcv9-*-solaris2*
This is a synonym for ‘sparc64-*-solaris2*’.
c6x-*-*
d1266 5 a1270 4
tilegx-*-linux*
d1273 5 a1277 4
tilegxbe-*-linux*
d1280 5 a1284 4
tilepro-*-linux*
d1287 6 a1292 5
visium-*-elf
CDS VISIUMcore processor. d1294 5 a1298 4
*-*-vxworks*
d1300 2 a1301 2 very recent VxWorks 5.5 (aka Tornado 2.2) release, and only on PowerPC. We welcome patches for other architectures supported by VxWorks 5.5. d1306 12 a1317 12VxWorks comes with an older version of GCC installed in $WIND_BASE/host; we recommend you do not overwrite it. Choose an installation prefix entirely outside $WIND_BASE. Before running
configure, create the directories prefix and prefix/bin. Link or copy the appropriate assembler, linker, etc. into prefix/bin, and set your PATH to include that directory while running bothconfigureandmake.You must give
configurethe --with-headers=$WIND_BASE/target/h switch so that it can d1319 4 a1322 4 target only, you must also specify --target=target.configurewill attempt to create the directory prefix/target/sys-include and copy files into it; make sure the user runningconfigurehas sufficient privilege d1324 3 a1326 3GCC’s exception handling runtime requires a special “configlette” module, contrib/gthr_supp_vxw_5x.c. Follow the instructions in d1329 5 a1333 4
x86_64-*-*, amd64-*-*
d1335 1 a1335 1 (amd64-*-* is an alias for x86_64-*-*) on GNU/Linux, FreeBSD and NetBSD. d1337 6 a1342 5 both 64-bit x86-64 and 32-bit x86 code (via the -m32 switch).
x86_64-*-solaris2.1[0-9]*
d1344 1 a1344 1 processor (‘amd64-*-*’ is an alias for ‘x86_64-*-*’) on d1347 1 a1347 1 can generate 64-bit x86-64 code with the -m64 switch. Since d1349 9 a1357 8 can generate 32-bit code with -m32. To configure and build this way, you have to provide all support libraries like libgmp as 64-bit code, configure with --target=x86_64-pc-solaris2.1x and ‘CC=gcc -m64’.
xtensa*-*-elf
d1359 1 a1359 1 ‘newlib’ C library. It uses ELF but does not support shared d1363 3 a1365 3The Xtensa configuration information must be specified prior to building GCC. The include/xtensa-config.h header d1370 5 a1374 4
xtensa*-*-linux*
d1378 1 a1378 1 -fpic or -fPIC options are used. In other d1380 7 a1386 5 ‘xtensa*-*-elf’ target.
Microsoft Windows
a1387 2Intel 16-bit versions
d1390 2 a1391 2However, the 32-bit port has limited support for Microsoft d1393 3 a1395 3
Intel 32-bit versions
a1399 11d1401 11 a1411 2
- Cygwin *-*-cygwin: Cygwin provides a user-space Linux API emulation layer in the Win32 subsystem.
- Interix *-*-interix: The Interix subsystem provides native support for POSIX.
- MinGW *-*-mingw32: MinGW is a native GCC port for the Win32 subsystem that provides a subset of POSIX.
- MKS i386-pc-mks: NuTCracker from MKS. See http://www.mkssoftware.com/ for more information.
Intel 64-bit versions
d1413 1 a1413 1 runtime library, available from http://mingw-w64.sourceforge.net/. d1415 5 a1419 5Presently Windows for Itanium is not supported.
Windows CE
d1422 3 a1424 3Other Windows Platforms
d1426 2 a1427 2GCC no longer supports the Windows POSIX subsystem. However, it does d1429 4 a1432 4
Old target names including *-*-winnt and *-*-windowsnt are no longer used.
PW32 (i386-pc-pw32) support was never completed, and the project seems to d1434 7 a1440 6
UWIN support has been removed due to a lack of maintenance.
*-*-cygwin
d1443 5 a1447 5GCC will build under Cygwin without modification; it does not build with Microsoft’s C++ compiler and there are no plans to make it do so.
The Cygwin native compiler can be configured to target any 32-bit x86 d1452 6 a1457 13
*-*-interix
The Interix target is used by OpenNT, Interix, Services For UNIX (SFU), and Subsystem for UNIX-based Applications (SUA). Applications compiled with this target run in the Interix subsystem, which is separate from the Win32 subsystem. This target was last known to work in GCC 3.3.
*-*-mingw32
GCC will build with and support only MinGW runtime 3.12 and later. d1460 5 a1464 4
Older systems
d1469 2 a1470 2Starting with GCC 3.1, each release has a list of “obsoleted” systems. d1472 1 a1472 1
configurewill fail unless the --enable-obsolete d1475 2 a1476 2Support for old systems as hosts for GCC can cause problems if the d1483 2 a1484 3 old-releases directory on the GCC mirror sites. Header bugs may generally be avoided using
fixincludes, but bugs or deficiencies in libraries and the d1486 2 a1487 2Support for older systems as targets for cross-compilation is less d1495 6 a1500 6
For some systems, old versions of GNU binutils may also be useful, and are available from pub/binutils/old-releases on sourceware.org mirror sites.
Some of the information on specific systems above relates to d1504 5 a1508 4
all ELF targets (SVR4, Solaris 2, etc.)
a1512 1 d1514 1 a1514 2
a1515 5
d1517 5 a1522 2 @ 1.7 log @merge GCC 6.4.0. sanitizer stuff is probably busted, but most other changes merged easily. docs need to be regenerated with modern versions still. @ text @d1 3 a3 10Host/Target specific installation notes for GCC a61 5Host/Target specific installation notes for GCC
Please read this document carefully before installing the GNU Compiler Collection on your machine. d63 23 a85 4Note that this list of install notes is not a list of supported hosts or targets. Not all supported hosts and targets are listed here, only the ones that require host-specific or target-specific information have to. a86 76
- aarch64*-*-*
- alpha*-*-*
- alpha*-dec-osf5.1
- amd64-*-solaris2.10
- arm-*-eabi
- avr
- Blackfin
- DOS
- *-*-freebsd*
- h8300-hms
- hppa*-hp-hpux*
- hppa*-hp-hpux10
- hppa*-hp-hpux11
- *-*-linux-gnu
- i?86-*-linux*
- i?86-*-solaris2.10
- ia64-*-linux
- ia64-*-hpux*
- *-ibm-aix*
- iq2000-*-elf
- lm32-*-elf
- lm32-*-uclinux
- m32c-*-elf
- m32r-*-elf
- m68k-*-*
- m68k-uclinux
- mep-*-elf
- microblaze-*-elf
- mips-*-*
- mips-sgi-irix5
- mips-sgi-irix6
- nds32le-*-elf
- nds32be-*-elf
- nvptx-*-none
- powerpc*-*-*
- powerpc-*-darwin*
- powerpc-*-elf
- powerpc*-*-linux-gnu*
- powerpc-*-netbsd*
- powerpc-*-eabisim
- powerpc-*-eabi
- powerpcle-*-elf
- powerpcle-*-eabisim
- powerpcle-*-eabi
- s390-*-linux*
- s390x-*-linux*
- s390x-ibm-tpf*
- *-*-solaris2*
- sparc*-*-*
- sparc-sun-solaris2*
- sparc-sun-solaris2.10
- sparc-*-linux*
- sparc64-*-solaris2*
- sparcv9-*-solaris2*
- c6x-*-*
- tilegx-*-linux*
- tilegxbe-*-linux*
- tilepro-*-linux*
- visium-*-elf
- *-*-vxworks*
- x86_64-*-* amd64-*-*
- x86_64-*-solaris2.1[0-9]*
- xtensa*-*-elf
- xtensa*-*-linux*
- Microsoft Windows
- *-*-cygwin
- *-*-interix
- *-*-mingw32
- OS/2
- Older systems
a87 2
- all ELF targets (SVR4, Solaris 2, etc.)
d89 5 a93 1aarch64*-*-*
d95 91 a185 1Binutils pre 2.24 does not have support for selecting -mabi and d187 3 a189 3 not support option -mabi=ilp32.
To enable a workaround for the Cortex-A53 erratum number 835769 by default d191 1 a191 1 --enable-fix-cortex-a53-835769 option. This will enable the fix by d193 2 a194 2 -mno-fix-cortex-a53-835769 option. Conversely, --disable-fix-cortex-a53-835769 will disable the workaround by d196 4 a199 4 --enable-fix-cortex-a53-835769 or --disable-fix-cortex-a53-835769 is given at configure time.
To enable a workaround for the Cortex-A53 erratum number 843419 by default d201 1 a201 1 --enable-fix-cortex-a53-843419 option. This workaround is applied at d204 2 a205 2 -mno-fix-cortex-a53-843419 option. Conversely, --disable-fix-cortex-a53-843419 will disable the workaround by default. d207 6 a212 7 --enable-fix-cortex-a53-843419 or --disable-fix-cortex-a53-843419 is given at configure time.
alpha*-*-*
d217 2 a218 2We require binutils 2.11.2 or newer. d222 4 a225 5
alpha*-dec-osf5.1
d229 2 a230 2Support for Tru64 UNIX V5.1 has been removed in GCC 4.8. As of GCC 4.6, d234 23 a256 25
amd64-*-solaris2.1[0-9]*
This is a synonym for ‘x86_64-*-solaris2.1[0-9]*’.
arc-*-elf32
Use ‘configure --target=arc-elf32 --with-cpu=cpu --enable-languages="c,c++"’ to configure GCC, with cpu being one of ‘arc600’, ‘arc601’, or ‘arc700’.
arc-linux-uclibc
Use ‘configure --target=arc-linux-uclibc --with-cpu=arc700 --enable-languages="c,c++"’ to configure GCC.
arm-*-eabi
d261 2 a262 2Building the Ada frontend commonly fails (an infinite loop executing d265 4 a268 5
avr
d270 1 a270 1 applications. There are no standard Unix configurations. d273 4 a276 4Use ‘configure --target=avr --enable-languages="c"’ to configure GCC.
Further installation notes and other useful information about AVR tools d278 19 a296 18
We strongly recommend using binutils 2.13 or newer.
The following error:
Error: register requiredindicates that you should upgrade to a newer version of the binutils.
Blackfin
The Blackfin processor, an Analog Devices DSP. d298 2 a299 2
More information, and a version of binutils with support for this processor, d301 4 a304 5
CR16
d307 1 d309 11 a319 12See “CR16 Options” in the main manual for a list of CR16-specific options.
Use ‘configure --target=cr16-elf --enable-languages=c,c++’ to configure GCC for building a CR16 elf cross-compiler.
Use ‘configure --target=cr16-uclinux --enable-languages=c,c++’ to configure GCC for building a CR16 uclinux cross-compiler.
CRIS
d322 2 a323 2See “CRIS Options” in the main manual d325 11 a335 7
There are a few different CRIS targets:
cris-axis-elf- Mainly for monolithic embedded systems. Includes a multilib for the ‘v10’ core used in ‘ETRAX 100 LX’.
cris-axis-linux-gnu- A GNU/Linux port for the CRIS architecture, currently targeting ‘ETRAX 100 LX’ by default. d338 1 a338 1
For
cris-axis-elfyou need binutils 2.11 d340 2 a341 2Pre-packaged tools can be obtained from d345 4 a348 5
DOS
d350 2 a351 2You cannot install GCC by itself on MSDOS; it will not compile under d355 5 a359 6
epiphany-*-elf
Adapteva Epiphany. d361 4 a364 5
*-*-freebsd*
d368 2 a369 2In order to better utilize FreeBSD base system functionality and match d374 1 a374 1 libgcc_s.so.1 and boehm-gc (on FreeBSD 7 or later) is enabled d376 4 a379 4
We support FreeBSD using the ELF file format with DWARF 2 debugging for all CPU architectures. You may use -gstabs instead of -g, if you really want the old debugging format. There are d383 1 a383 1 GCC. In particular, --enable-threads is now configured by d389 2 a390 2
The version of binutils installed in /usr/bin probably works d392 1 a392 1 binutils and/or the version found in /usr/ports/devel/binutils has d397 5 a401 6
ft32-*-elf
The FT32 processor. d403 4 a406 5
h8300-hms
d408 4 a411 4Please have a look at the binaries page.
The calling convention and structure layout has changed in release 2.6. d415 4 a418 5
hppa*-hp-hpux*
d420 2 a421 2We require using gas/binutils on all hppa platforms. Version 2.19 or d423 7 a429 7
It may be helpful to configure GCC with the --with-gnu-as and --with-as=... options to ensure that GCC can find GAS.
The HP assembler should not be used with GCC. It is rarely tested and may not work. It shouldn't be used with any languages other than C due to its d431 2 a432 2
Specifically, -g does not work (HP-UX uses a peculiar debugging d436 3 a438 3 ‘make all-host all-target’ after getting the failure from ‘make’.
Various GCC features are not supported. For example, it does not support weak d442 2 a443 2
There are two default scheduling models for instructions. These are d445 1 a445 1 architecture specified for the target machine when configuring. d447 3 a449 3 the target is a ‘hppa1*’ machine.
The PROCESSOR_8000 model is not well suited to older processors. Thus, d454 3 a456 3
As of GCC 4.0, GCC uses the UNIX 95 namespace for HP-UX 10.10 through 11.00, and the UNIX 98 namespace for HP-UX 11.11 and later. d460 3 a462 3 in a number of ways. With HP cc, UNIX_STD can be set to ‘95’ or ‘98’. Another way is to add an appropriate set of predefines to CC. The description for the munix= option contains d464 6 a469 7
More specific information to ‘hppa*-hp-hpux*’ targets follows.
hppa*-hp-hpux10
d472 2 a473 2The C++ ABI has changed incompatibly in GCC 4.0. COMDAT subspaces are d477 4 a480 5
hppa*-hp-hpux11
d483 4 a486 4The libffi and libjava libraries haven't been ported to 64-bit HP-UX and don't build.
Refer to binaries for information about obtaining d488 1 a488 1 to build the Ada language as it can't be bootstrapped using C. Ada is d490 3 a492 3
Starting with GCC 3.4 an ISO C compiler is required to bootstrap. The bundled compiler supports only traditional C; you will need either HP's d494 2 a495 2
It is possible to build GCC 3.3 starting with the bundled HP compiler, d498 1 a498 1 can't be built with the HP bundled compiler. This problem can be d500 1 a500 1 --enable-languages="c,c++,f77,objc" option in your configure d502 2 a503 2
There are several possible approaches to building the distribution. d506 1 a506 1 first using the HP tools, then build binutils, then rebuild GCC. d509 2 a510 2
On 64-bit capable systems, there are two distinct targets. Different d512 3 a514 3 the same system. The ‘hppa[1-2]*-hp-hpux11*’ target generates code for the 32-bit PA-RISC runtime architecture and uses the HP linker. The ‘hppa64-hp-hpux11*’ target generates 64-bit code for the d516 11 a526 11
The script config.guess now selects the target type based on the compiler detected during configuration. You must define PATH or CC so that configure finds an appropriate compiler for the initial bootstrap. When CC is used, the definition should contain the options that are needed whenever CC is used.
Specifically, options that determine the runtime architecture must be in CC to correctly select the target for the build. It is also convenient to place many other compiler options in CC. For example, CC="cc -Ac +DA2.0W -Wp,-H16376 -D_CLASSIC_TYPES -D_HPUX_SOURCE" d528 2 a529 2 64-bit K&R/bundled mode. The +DA2.0W option will result in the automatic selection of the ‘hppa64-hp-hpux11*’ target. The d533 4 a536 4 -Ac option. These defines aren't necessary with -Ae.
It is best to explicitly configure the ‘hppa64-hp-hpux11*’ target with the --with-ld=... option. This overrides the standard d539 1 a539 1 result, it's not possible to switch linkers in the middle of a GCC build. d542 2 a543 2
A recent linker patch must be installed for the correct operation of d547 1 a547 1
PHSS_24304, might be usable but it hasn't been tested. These d550 2 a551 2The patches are necessary for the support of weak symbols on the d554 1 a554 1 to HP-UX 11, there are bugs in the linker support for secondary symbols. d558 2 a559 2
GCC 3.3 uses the ELF DT_INIT_ARRAY and DT_FINI_ARRAY capabilities to d561 1 a561 1 uses the linker +init and +fini options for the same d564 1 a564 1 problem on the 64-bit port resulting from HP's non-standard use of d566 3 a568 3
Although the HP and GNU linkers are both supported for the ‘hppa64-hp-hpux11*’ target, it is strongly recommended that the d570 3 a572 3
At this time, the GNU linker does not support the creation of long branch stubs. As a result, it can't successfully link binaries d575 5 a579 5 with -static, and with dwarf2 unwind and exception support. It also doesn't provide stubs for internal calls to global functions in shared libraries, so these calls can't be overloaded.
The HP dynamic loader does not support GNU symbol versioning, so symbol d581 8 a588 9 versioning with --disable-symvers when using GNU ld.
POSIX threads are the default. The optional DCE thread library is not supported, so --enable-threads=dce does not work.
*-*-linux-gnu
d592 5 a596 6
i?86-*-linux*
As of GCC 3.3, binutils 2.13.1 or later is required for this platform. d598 2 a599 2
If you receive Signal 11 errors when building on GNU/Linux, then it is d602 4 a605 5
i?86-*-solaris2.10
d607 5 a611 5 with GCC 4.7, there is also a 64-bit ‘amd64-*-solaris2.1[0-9]*’ or ‘x86_64-*-solaris2.1[0-9]*’ configuration that corresponds to ‘sparcv9-sun-solaris2*’.It is recommended that you configure GCC to use the GNU assembler. The d613 3 a615 3 /usr/sfw/bin/gas), and Solaris 11, from GNU binutils 2.19 or newer (also available as /usr/bin/gas and /usr/gnu/bin/as), work fine. Please note that the current d619 4 a622 5 versions of the Solaris assembler in /usr/ccs/bin/as work almost as well, though.
For linking, the Solaris linker, is preferred. If you want to use the GNU d624 1 a624 1 10, from GNU binutils 2.15 (in /usr/sfw/bin/gld), cannot be used, d626 1 a626 1 in /usr/gnu/bin/ld and /usr/bin/gld), works, as does the d628 9 a636 11
To use GNU as, configure with the options --with-gnu-as --with-as=/usr/sfw/bin/gas. It may be necessary to configure with --without-gnu-ld --with-ld=/usr/ccs/bin/ld to guarantee use of Sun ld.
ia64-*-linux
d639 3 a641 3If you are using the installed system libunwind library with --with-system-libunwind, then you must use libunwind 0.98 or d643 2 a644 2
None of the following versions of GCC has an ABI that is compatible d647 3 a649 3 3.1, 3.0.2, 3.0.1, 3.0, Red Hat 2.96, and Trillian 000717. This primarily affects C++ programs and programs that create shared libraries. GCC 3.1 or later is recommended for compiling linux, the kernel. d652 4 a655 5
ia64-*-hpux*
d658 6 a663 6 the option --with-gnu-as may be necessary.The GCC libunwind library has not been ported to HPUX. This means that for GCC versions 3.2.3 and earlier, --enable-libunwind-exceptions is required to build GCC. For GCC 3.3 and later, this is the default. For gcc 3.4.3 and later, --enable-libunwind-exceptions is d665 6 a670 7
*-ibm-aix*
Support for AIX version 3 and older was discontinued in GCC 3.4. d672 2 a673 2
“out of memory” bootstrap failures may indicate a problem with d675 3 a677 3 /etc/security/limits system configuration file.
GCC 4.9 and above require a C++ compiler for bootstrap. IBM VAC++ / xlC d680 2 a681 2
GCC can bootstrap with recent versions of IBM XLC, but bootstrapping d685 5 d691 2 a692 5
% LDR_CNTRL=MAXDATA=0x50000000 % export LDR_CNTRLOne can start with a pre-compiled version of GCC to build from sources. One may delete GCC's “fixed” header files when starting d694 8 d703 2 a704 7
To speed up the configuration phases of bootstrapping and installing GCC, one may use GNU Bash instead of AIX /bin/sh, e.g.,
% CONFIG_SHELL=/opt/freeware/bin/bash % export CONFIG_SHELLand then proceed as described in the build instructions, where we strongly recommend specifying an absolute path d706 2 a707 2
Because GCC on AIX is built as a 32-bit executable by default, d711 2 a712 2
Errors involving
allocawhen building GCC generally are due d715 5 a719 5 the build, the native AIX compiler must be invoked as cc (not xlc). Once configure has been informed of xlc, one needs to use ‘make distclean’ to remove the configure cache files and ensure that CC environment variable does not provide a definition that will confuse configure. d722 2 a723 2The native as and ld are recommended for d726 1 a726 1 AIX 5. The GNU Assembler has not been updated to support AIX 6 or d728 2 a729 2
AIX 7.1 added partial support for DWARF debugging, but full support d734 2 a735 2
AIX 5.3 TL10, AIX 6.1 TL05 and AIX 7.1 TL00 introduced an AIX d743 2 a744 2
Building libstdc++.a requires a fix for an AIX Assembler bug d748 3 a750 3
‘libstdc++’ in GCC 3.4 increments the major version number of the shared object and GCC installation places the libstdc++.a d754 3 a756 3 versions of the ‘libstdc++’ shared object needs to be available to the AIX runtime loader. The GCC 3.1 ‘libstdc++.so.4’, if present, and GCC 3.3 ‘libstdc++.so.5’ shared objects can be d758 8 a765 2 the ‘F_LOADONLY’ flag in the shared object for each multilib libstdc++.a installed: d767 1 a767 5
Extract the shared objects from the currently installed libstdc++.a archive:
% ar -x libstdc++.a libstdc++.so.4 libstdc++.so.5Enable the ‘F_LOADONLY’ flag so that the shared object will be d769 12 a780 8
% strip -e libstdc++.so.4 libstdc++.so.5Archive the runtime-only shared object in the GCC 3.4 libstdc++.a archive:
% ar -q libstdc++.a libstdc++.so.4 libstdc++.so.5Eventually, the --with-aix-soname=svr4 d783 2 a784 2
Linking executables and shared libraries may produce warnings of d790 2 a791 2
AIX 4.3 utilizes a “large format” archive to support both 32-bit and d793 1 a793 1 to parse archive libraries did not handle the new format correctly. d796 1 a796 1 with AIX 4.3.1 should work for a 32-bit environment. The -g d800 3 a802 3
Some versions of the AIX binder (linker) can fail with a relocation overflow severe error when the -bbigtoc option is used to link d808 2 a809 2
The AIX 4.3.2.1 linker (bos.rte.bind_cmds Level 4.3.2.1) will dump core d814 2 a815 2
The initial assembler shipped with AIX 4.3.0 generates incorrect object d820 2 a821 2
AIX provides National Language Support (NLS). Compilers and assemblers d823 1 a823 1 formats including floating-point numbers (e.g., ‘.’ vs ‘,’ for d826 9 a834 10 expects. If one encounters this problem, set the LANG environment variable to ‘C’ or ‘En_US’.
A default can be specified with the -mcpu=cpu_type switch and using the configure option --with-cpu-cpu_type.
iq2000-*-elf
d837 5 a841 6
lm32-*-elf
Lattice Mico32 processor. d843 5 a847 6
lm32-*-uclinux
Lattice Mico32 processor. d849 5 a853 6
m32c-*-elf
Renesas M32C processor. d855 5 a859 6
m32r-*-elf
Renesas M32R processor. d861 4 a864 5
m68k-*-*
d866 2 a867 2 ‘m68k-*-elf*’, ‘m68k-*-rtems’, ‘m68k-*-uclinux’ and ‘m68k-*-linux’ d870 3 a872 3 --with-arch=m68k to configure. Alternatively, you can omit the M680x0 libraries by passing --with-arch=cf to configure. These targets default to 5206 or 5475 code as d874 4 a877 4 configured with --with-arch=cf and 68020 code otherwise.The ‘m68k-*-netbsd’ and ‘m68k-*-openbsd’ targets also support the --with-arch d879 13 a891 14 --with-arch=cf and 68020 code otherwise.
You can override the default processors listed above by configuring with --with-cpu=target. This target can either be a -mcpu argument or one of the following values: ‘m68000’, ‘m68010’, ‘m68020’, ‘m68030’, ‘m68040’, ‘m68060’, ‘m68020-40’ and ‘m68020-60’.
GCC requires at least binutils version 2.17 on these targets.
m68k-*-uclinux
d893 1 a893 1 ‘m68k-linux-gnu’ ABI rather than the ‘m68k-elf’ ABI. d896 5 a900 6
mep-*-elf
Toshiba Media embedded Processor. d902 5 a906 6
microblaze-*-elf
Xilinx MicroBlaze processor. d908 4 a911 5
mips-*-*
d913 1 a913 1 sections for all it's [sic] sectons [sic]”, don't worry about it. This d917 2 a918 2It would be nice to extend GAS to produce the gp tables, but they are d920 2 a921 2
The libstdc++ atomic locking routines for MIPS targets requires MIPS II d923 3 a925 3 make ‘mips*-*-*’ use the generic implementation instead. You can also configure for ‘mipsel-elf’ as a workaround. The ‘mips*-*-linux*’ target continues to use the MIPS II routines. More d927 1 d929 4 a932 6
The built-in
__sync_*functions are available on MIPS II and later systems and others that support the ‘ll’, ‘sc’ and ‘sync’ instructions. This can be overridden by passing --with-llsc or --without-llsc when configuring GCC. d934 4 a937 4 missing, the default for ‘mips*-*-linux*’ targets is --with-llsc. The --with-llsc and --without-llsc configure options may be overridden at compile time by passing the -mllsc or -mno-llsc options to d939 3 a941 3MIPS systems check for division by zero (unless -mno-check-zero-division is passed to the compiler) by d946 2 a947 2 the use of break, use the --with-divide=breaks configure option when configuring GCC. The default is to d949 2 a950 2
The assembler from GNU binutils 2.17 and earlier has a bug in the way d954 1 a954 1 runtime linker stubs in very large programs, like libgcj.so, to d957 4 a960 5
mips-sgi-irix5
d962 4 a965 5
mips-sgi-irix6
d969 4 a972 5
moxie-*-elf
d974 5 a978 6
msp430-*-elf
TI MSP430 processor. d980 4 a983 5
nds32le-*-elf
d985 4 a988 5
nds32be-*-elf
d990 4 a993 5
nvptx-*-none
d995 3 a997 3Instead of GNU binutils, you will need to install nvptx-tools. d999 4 a1002 4 --with-build-time-tools=[install-nvptx-tools]/nvptx-none/bin.
A nvptx port of newlib is available at nvptx-newlib. d1004 1 a1004 1 symbolic link to nvptx-newlib's newlib directory to the d1006 11 a1016 12
Use the --disable-sjlj-exceptions and --enable-newlib-io-long-long options when configuring.
powerpc-*-*
You can specify a default version for the -mcpu=cpu_type switch by using the configure option --with-cpu-cpu_type.
You will need d1019 4 a1022 5
powerpc-*-darwin*
d1024 2 a1025 2Pre-installed versions of Mac OS X may not include any developer tools, d1029 2 a1030 2
This version of GCC requires at least cctools-590.36. The d1034 4 a1037 5
powerpc-*-elf
d1039 4 a1042 5
powerpc*-*-linux-gnu*
d1044 4 a1047 5
powerpc-*-netbsd*
d1049 4 a1052 5
powerpc-*-eabisim
d1055 4 a1058 5
powerpc-*-eabi
d1060 4 a1063 5
powerpcle-*-elf
d1065 4 a1068 5
powerpcle-*-eabisim
d1071 4 a1074 5
powerpcle-*-eabi
d1076 5 a1080 6
rl78-*-elf
The Renesas RL78 processor. d1082 4 a1085 5
rx-*-elf
d1089 4 a1092 5
s390-*-linux*
d1094 4 a1097 5
s390x-*-linux*
d1099 4 a1102 5
s390x-ibm-tpf*
d1105 4 a1108 9
*-*-solaris2*
d1112 2 a1113 2Sun does not ship a C compiler with Solaris 2 before Solaris 10, though d1115 1 a1115 1 11, GCC 3.4.3 is available as /usr/sfw/bin/gcc. Solaris 11 d1117 1 a1117 1 /usr/gcc/4.5/bin/gcc or similar. Alternatively, d1120 3 a1122 3
The Solaris 2 /bin/sh will often fail to configure ‘libstdc++-v3’, ‘boehm-gc’ or ‘libjava’. We therefore d1124 5 d1130 1 a1130 4
% CONFIG_SHELL=/bin/ksh % export CONFIG_SHELLand proceed as described in the configure instructions. d1132 3 a1134 3 srcdir/configure.
Solaris 10 comes with a number of optional OS packages. Some of these d1139 1 a1139 1 the packages that GCC needs are installed. d1141 2 a1142 2 the pkginfo command. To add an optional package, use the pkgadd command. For further details, see the Solaris 10 d1144 2 a1145 2
Starting with Solaris 11, the package management has changed, so you d1148 4 a1151 4 packages is done with the pkg command now.
Trying to use the linker and other tools in /usr/ucb to install GCC has been observed to cause trouble. d1153 8 a1160 8 /usr/ucb from your PATH.
The build process works more smoothly with the legacy Sun tools so, if you have /usr/xpg4/bin in your PATH, we recommend that you place /usr/bin before /usr/xpg4/bin for the duration of the build.
We recommend the use of the Solaris assembler or the GNU assembler, in conjunction with the Solaris linker. The GNU as d1162 3 a1164 3 /usr/sfw/bin/gas), and Solaris 11, from GNU binutils 2.19 or newer (also in /usr/bin/gas and /usr/gnu/bin/as), are known to work. d1169 4 a1172 5 combination GNU as + Sun ld should reasonably work, the reverse combination Sun as + GNU ld may fail to build or cause memory corruption at runtime in some cases for C++ programs. GNU ld usually works as well, although the version included in d1175 8 a1182 8 features, so better stay with Solaris ld. To use the LTO linker plugin (-fuse-linker-plugin) with GNU ld, GNU binutils must be configured with --enable-largefile.
To enable symbol versioning in ‘libstdc++’ with the Solaris linker, you need to have any version of GNU c++filt, which is part of GNU binutils. ‘libstdc++’ symbol versioning will be disabled if no appropriate version is found. Solaris c++filt from the Solaris d1184 2 a1185 2
GNU make version 3.81 or later is required to build libjava d1187 4 a1190 4
Sun bug 4927647 sometimes causes random spurious testsuite failures related to missing diagnostic output. This bug doesn't affect GCC itself, rather it is a kernel bug triggered by the expect d1192 1 a1192 1 causes the expect program to miss anticipated output, extra d1194 4 a1197 5
sparc*-*-*
d1201 2 a1202 2Newer versions of the GNU Multiple Precision Library (GMP), the MPFR d1207 4 a1210 5
sparc-sun-solaris2*
d1212 1 a1212 1 produced are smaller than the ones produced using Sun's native tools; d1215 2 a1216 2Starting with Solaris 7, the operating system is capable of executing d1218 1 a1218 1 this; the -m64 option enables 64-bit code generation. d1220 1 a1220 1 should try the -mtune=ultrasparc option instead, which produces d1223 2 a1224 2
When configuring the GNU Multiple Precision Library (GMP), the MPFR d1226 2 a1227 2 target triplet must be specified as the build parameter on the configure line. This target triplet can be obtained by invoking ./config.guess in the toplevel source directory of GCC (and d1229 8 a1236 7
% ./configure --build=sparc-sun-solaris2.9 --prefix=xxx
sparc-sun-solaris2.10
d1239 11 a1249 9ld: fatal: relocation error: R_SPARC_TLS_LE_HIX22: file /var/tmp//ccamPA1v.o: symbol <unknown>: bad symbol type SECT: symbol type must be TLSThis bug is fixed in Sun patch 118683-03 or later.
sparc-*-linux*
d1254 1 d1256 3 a1258 4
sparc64-*-solaris2*
d1261 1 a1261 1 as the build parameter on the configure line. For example d1263 13 a1275 13% ./configure --build=sparc64-sun-solaris2.9 --prefix=xxx
sparcv9-*-solaris2*
This is a synonym for ‘sparc64-*-solaris2*’.
c6x-*-*
d1277 4 a1280 5
tilegx-*-linux*
d1283 4 a1286 5
tilegxbe-*-linux*
d1289 4 a1292 5
tilepro-*-linux*
d1295 5 a1299 6
visium-*-elf
CDS VISIUMcore processor. d1301 4 a1304 5
*-*-vxworks*
d1306 2 a1307 2 very recent VxWorks 5.5 (aka Tornado 2.2) release, and only on PowerPC. We welcome patches for other architectures supported by VxWorks 5.5. d1312 12 a1323 12VxWorks comes with an older version of GCC installed in $WIND_BASE/host; we recommend you do not overwrite it. Choose an installation prefix entirely outside $WIND_BASE. Before running configure, create the directories prefix and prefix/bin. Link or copy the appropriate assembler, linker, etc. into prefix/bin, and set your PATH to include that directory while running both configure and make.
You must give configure the --with-headers=$WIND_BASE/target/h switch so that it can d1325 4 a1328 4 target only, you must also specify --target=target. configure will attempt to create the directory prefix/target/sys-include and copy files into it; make sure the user running configure has sufficient privilege d1330 3 a1332 3
GCC's exception handling runtime requires a special “configlette” module, contrib/gthr_supp_vxw_5x.c. Follow the instructions in d1335 4 a1338 5
x86_64-*-*, amd64-*-*
d1340 1 a1340 1 (amd64-*-* is an alias for x86_64-*-*) on GNU/Linux, FreeBSD and NetBSD. d1342 5 a1346 6 both 64-bit x86-64 and 32-bit x86 code (via the -m32 switch).
x86_64-*-solaris2.1[0-9]*
d1348 1 a1348 1 processor (‘amd64-*-*’ is an alias for ‘x86_64-*-*’) on d1351 1 a1351 1 can generate 64-bit x86-64 code with the -m64 switch. Since d1353 8 a1360 9 can generate 32-bit code with -m32. To configure and build this way, you have to provide all support libraries like libgmp as 64-bit code, configure with --target=x86_64-pc-solaris2.1x and ‘CC=gcc -m64’.
xtensa*-*-elf
d1362 1 a1362 1 ‘newlib’ C library. It uses ELF but does not support shared d1366 3 a1368 3The Xtensa configuration information must be specified prior to building GCC. The include/xtensa-config.h header d1373 4 a1376 5
xtensa*-*-linux*
d1380 1 a1380 1 -fpic or -fPIC options are used. In other d1382 5 a1386 7 ‘xtensa*-*-elf’ target.
Microsoft Windows
Intel 16-bit versions
d1388 2 d1392 2 a1393 2However, the 32-bit port has limited support for Microsoft d1395 3 a1397 3
Intel 32-bit versions
d1402 11 d1414 2 a1415 13
- Cygwin *-*-cygwin: Cygwin provides a user-space Linux API emulation layer in the Win32 subsystem.
- Interix *-*-interix: The Interix subsystem provides native support for POSIX.
- MinGW *-*-mingw32: MinGW is a native GCC port for the Win32 subsystem that provides a subset of POSIX.
- MKS i386-pc-mks: NuTCracker from MKS. See http://www.mkssoftware.com/ for more information.
Intel 64-bit versions
d1417 1 a1417 1 runtime library, available from http://mingw-w64.sourceforge.net/. d1419 5 a1423 5Presently Windows for Itanium is not supported.
Windows CE
d1426 3 a1428 3Other Windows Platforms
d1430 2 a1431 2GCC no longer supports the Windows POSIX subsystem. However, it does d1433 4 a1436 4
Old target names including *-*-winnt and *-*-windowsnt are no longer used.
PW32 (i386-pc-pw32) support was never completed, and the project seems to d1438 6 a1443 7
UWIN support has been removed due to a lack of maintenance.
*-*-cygwin
d1446 5 a1450 5GCC will build under Cygwin without modification; it does not build with Microsoft's C++ compiler and there are no plans to make it do so.
The Cygwin native compiler can be configured to target any 32-bit x86 d1455 4 a1458 5
*-*-interix
d1463 5 a1467 6
*-*-mingw32
GCC will build with and support only MinGW runtime 3.12 and later. d1470 4 a1473 5
Older systems
d1478 2 a1479 2Starting with GCC 3.1, each release has a list of “obsoleted” systems. d1481 1 a1481 1 configure will fail unless the --enable-obsolete d1484 2 a1485 2
Support for old systems as hosts for GCC can cause problems if the d1492 3 a1494 2 old-releases directory on the GCC mirror sites. Header bugs may generally be avoided using fixincludes, but bugs or deficiencies in libraries and the d1496 2 a1497 2
Support for older systems as targets for cross-compilation is less d1505 3 a1507 3
For some systems, old versions of GNU binutils may also be useful, and are available from pub/binutils/old-releases on d1509 2 a1510 2
Some of the information on specific systems above relates to d1514 4 a1517 5
all ELF targets (SVR4, Solaris 2, etc.)
d1522 1 d1524 2 a1525 1
d1527 5 a1532 5 d1534 2 @ 1.7.4.1 log @Sync with HEAD @ text @d79 1 a96 4- riscv32-*-elf
- riscv32-*-linux
- riscv64-*-elf
- riscv64-*-linux d119 1 d130 1 a130 1
d159 1 a159 1
d173 1 a173 1
d186 1 a186 1
d192 1 a192 1
d200 1 a200 1
d206 1 a206 1
d210 4 a213 1ARM-family processors. d238 2 d253 1 a253 1 is available at https://blackfin.uclinux.org d288 3 d307 1 a307 1
d314 1 a314 1
d347 3 a349 3 results. However, it is currently known that boehm-gc may not configure properly on FreeBSD prior to the FreeBSD 7.0 release with GNU binutils after 2.16.1. d351 1 a351 1
d358 1 a358 1
d371 1 a371 1
d423 1 a423 1
d435 1 a435 1
d442 1 a442 1The libffi library haven't been ported to 64-bit HP-UX and doesn't build. d446 1 a446 1 to build the Ada language as it cannot be bootstrapped using C. Ada is d455 5 a459 1 build later versions. d530 1 a530 1 branch stubs. As a result, it cannot successfully link binaries d535 1 a535 1 in shared libraries, so these calls cannot be overloaded. d544 1 a544 1
d552 1 a552 1
d563 1 a563 1
d597 1 a597 1
d617 1 a617 1
d632 1 a632 1 d787 1 a787 1
d794 1 a794 1
d801 1 a801 1
d808 1 a808 1
d815 1 a815 1
d822 1 a822 1
d850 1 a850 1
d859 8 a866 1
d868 1 a868 1microblaze-*-elf
d873 1 a873 1
d875 1 a875 1mips-*-*
d916 7 a922 1
d924 3 a926 1mips-sgi-irix5
d930 1 a930 1
d932 1 a932 1mips-sgi-irix6
d938 1 a938 1
d940 1 a940 1moxie-*-elf
d944 1 a944 1
d946 1 a946 1msp430-*-elf
d951 1 a951 1
d953 1 a953 1nds32le-*-elf
d957 1 a957 1
d959 1 a959 1nds32be-*-elf
d963 1 a963 1
d965 1 a965 1nvptx-*-none
d983 1 a983 1
d985 1 a985 1powerpc-*-*
d990 3 a992 1You will need GNU binutils 2.15 or newer. d994 1 a994 1
d996 1 a996 1powerpc-*-darwin*
d1003 1 a1003 1 https://opensource.apple.com. d1010 1 a1010 1
d1012 1 a1012 1powerpc-*-elf
d1016 1 a1016 1
d1018 1 a1018 1powerpc*-*-linux-gnu*
d1022 1 a1022 1
d1024 1 a1024 1powerpc-*-netbsd*
d1028 1 a1028 1
d1030 1 a1030 1powerpc-*-eabisim
d1035 1 a1035 1
d1037 1 a1037 1powerpc-*-eabi
d1041 1 a1041 1
d1043 1 a1043 1powerpcle-*-elf
d1047 1 a1047 1
d1049 1 a1049 1powerpcle-*-eabisim
d1054 1 a1054 1
d1056 1 a1056 1powerpcle-*-eabi
d1060 1 a1060 1
d1062 1 a1062 1rl78-*-elf
d1067 1 a1067 16
riscv32-*-elf
The RISC-V RV32 instruction set. This configuration is intended for embedded systems. This (and all other RISC-V) targets are supported upstream as of the binutils 2.28 release.
riscv32-*-linux
The RISC-V RV32 instruction set running GNU/Linux. This (and all other RISC-V) targets are supported upstream as of the binutils 2.28 release. d1069 1 a1069 1
d1071 3 a1073 1riscv64-*-elf
d1075 1 a1075 4The RISC-V RV64 instruction set. This configuration is intended for embedded systems. This (and all other RISC-V) targets are supported upstream as of the binutils 2.28 release. d1077 1 a1077 17
riscv64-*-linux
The RISC-V RV64 instruction set running GNU/Linux. This (and all other RISC-V) targets are supported upstream as of the binutils 2.28 release.
rx-*-elf
The Renesas RX processor.
s390-*-linux*
d1081 1 a1081 1
d1083 1 a1083 1s390x-*-linux*
d1087 1 a1087 1
d1089 1 a1089 1s390x-ibm-tpf*
d1098 1 a1098 1 d1100 1 a1100 1*-*-solaris2*
d1115 2 a1116 2 ‘libstdc++-v3’or ‘boehm-gc’. We therefore recommend using the following initial sequence of commands d1177 3 d1187 1 a1187 1
d1189 1 a1189 1sparc*-*-*
d1201 1 a1201 1
d1203 1 a1203 1sparc-sun-solaris2*
d1226 1 a1226 1
d1228 1 a1228 1sparc-sun-solaris2.10
d1238 3 a1240 1
d1242 3 a1244 1sparc-*-linux*
d1246 1 a1246 1
d1248 1 a1248 1sparc64-*-solaris2*
d1257 1 a1257 1
d1259 1 a1259 1sparcv9-*-solaris2*
d1263 1 a1263 1
d1265 1 a1265 1c6x-*-*
d1269 1 a1269 1
d1271 1 a1271 1tilegx-*-linux*
d1276 1 a1276 1
d1278 1 a1278 1tilegxbe-*-linux*
d1283 1 a1283 1
d1285 1 a1285 1tilepro-*-linux*
d1290 1 a1290 1
d1292 1 a1292 1visium-*-elf
d1297 1 a1297 1
d1299 1 a1299 1*-*-vxworks*
d1332 1 a1332 1
d1334 1 a1334 1x86_64-*-*, amd64-*-*
d1341 1 a1341 1
d1343 1 a1343 1x86_64-*-solaris2.1[0-9]*
d1356 1 a1356 1
d1358 1 a1358 1xtensa*-*-elf
d1373 1 a1373 1
d1375 1 a1375 1xtensa*-*-linux*
d1386 1 a1386 1Microsoft Windows
d1388 1 a1388 1Intel 16-bit versions
d1396 1 a1396 1Intel 32-bit versions
d1406 2 d1414 1 a1414 1Intel 64-bit versions
d1417 1 a1417 1 runtime library, available from http://mingw-w64.org/doku.php. d1422 1 a1422 1Windows CE
d1427 1 a1427 1Other Windows Platforms
d1441 1 a1441 1
d1443 1 a1443 1*-*-cygwin
d1457 10 a1466 1
d1468 1 a1468 1*-*-mingw32
d1476 1 a1476 1Older systems
d1511 1 a1511 1 sourceware.org mirror sites. d1520 1 a1520 1all ELF targets (SVR4, Solaris 2, etc.)
@ 1.7.4.2 log @Mostly merge changes from HEAD upto 20200411 @ text @d1 10 a10 3Installing GCC d47 4 a50 32 d52 78 d131 2 a132 1 d134 1 a134 2Installing GCC
d136 3 d140 9 d150 10 d161 1 d163 1 d165 4 d170 4 d175 1 d177 1 d179 3 d183 4 d188 1 d190 1 d192 1 d194 1 d196 1 d198 3 d202 1 d204 1 d206 1 d208 1 d210 1 d212 1 d214 1 a214 157Please read this document carefully before installing the GNU Compiler Collection on your machine.
Note that this list of install notes is not a list of supported hosts or targets. Not all supported hosts and targets are listed here, only the ones that require host-specific or target-specific information have to.
- aarch64*-*-*
- alpha*-*-*
- amd64-*-solaris2.10
- arm-*-eabi
- avr
- Blackfin
- DOS
- *-*-freebsd*
- h8300-hms
- hppa*-hp-hpux*
- hppa*-hp-hpux10
- hppa*-hp-hpux11
- *-*-linux-gnu
- i?86-*-linux*
- i?86-*-solaris2.10
- ia64-*-linux
- ia64-*-hpux*
- *-ibm-aix*
- iq2000-*-elf
- lm32-*-elf
- lm32-*-uclinux
- m32c-*-elf
- m32r-*-elf
- m68k-*-*
- m68k-uclinux
- microblaze-*-elf
- mips-*-*
- nds32le-*-elf
- nds32be-*-elf
- nvptx-*-none
- powerpc*-*-*
- powerpc-*-darwin*
- powerpc-*-elf
- powerpc*-*-linux-gnu*
- powerpc-*-netbsd*
- powerpc-*-eabisim
- powerpc-*-eabi
- powerpcle-*-elf
- powerpcle-*-eabisim
- powerpcle-*-eabi
- riscv32-*-elf
- riscv32-*-linux
- riscv64-*-elf
- riscv64-*-linux
- s390-*-linux*
- s390x-*-linux*
- s390x-ibm-tpf*
- *-*-solaris2*
- sparc*-*-*
- sparc-sun-solaris2*
- sparc-sun-solaris2.10
- sparc-*-linux*
- sparc64-*-solaris2*
- sparcv9-*-solaris2*
- c6x-*-*
- tilegx-*-linux*
- tilegxbe-*-linux*
- tilepro-*-linux*
- visium-*-elf
- *-*-vxworks*
- x86_64-*-*, amd64-*-*
- x86_64-*-solaris2.1[0-9]*
- xtensa*-*-elf
- xtensa*-*-linux*
- Microsoft Windows
- *-*-cygwin
- *-*-mingw32
- OS/2
- Older systems
- all ELF targets (SVR4, Solaris 2, etc.)
aarch64*-*-*
Binutils pre 2.24 does not have support for selecting -mabi and does not support ILP32. If it is used to build GCC 4.9 or later, GCC will not support option -mabi=ilp32.
To enable a workaround for the Cortex-A53 erratum number 835769 by default (for all CPUs regardless of -mcpu option given) at configure time use the --enable-fix-cortex-a53-835769 option. This will enable the fix by default and can be explicitly disabled during compilation by passing the -mno-fix-cortex-a53-835769 option. Conversely, --disable-fix-cortex-a53-835769 will disable the workaround by default. The workaround is disabled by default if neither of --enable-fix-cortex-a53-835769 or --disable-fix-cortex-a53-835769 is given at configure time.
To enable a workaround for the Cortex-A53 erratum number 843419 by default (for all CPUs regardless of -mcpu option given) at configure time use the --enable-fix-cortex-a53-843419 option. This workaround is applied at link time. Enabling the workaround will cause GCC to pass the relevant option to the linker. It can be explicitly disabled during compilation by passing the -mno-fix-cortex-a53-843419 option. Conversely, --disable-fix-cortex-a53-843419 will disable the workaround by default. The workaround is disabled by default if neither of --enable-fix-cortex-a53-843419 or --disable-fix-cortex-a53-843419 is given at configure time.
alpha*-*-*
This section contains general configuration information for all Alpha-based platforms using ELF. In addition to reading this section, please read all other sections that match your target.
We require binutils 2.11.2 or newer. Previous binutils releases had a number of problems with DWARF 2 debugging information, not the least of which is incorrect linking of shared libraries.
amd64-*-solaris2.1[0-9]*
This is a synonym for ‘x86_64-*-solaris2.1[0-9]*’.
arc-*-elf32
Use ‘configure --target=arc-elf32 --with-cpu=cpu --enable-languages="c,c++"’ to configure GCC, with cpu being one of ‘arc600’, ‘arc601’, or ‘arc700’.
arc-linux-uclibc
Use ‘configure --target=arc-linux-uclibc --with-cpu=arc700 --enable-languages="c,c++"’ to configure GCC.
arm-*-eabi
ARM-family processors.
Building the Ada frontend commonly fails (an infinite loop executing d217 5 a221 4
avr
d223 1 a223 1 applications. There are no standard Unix configurations. d226 4 a229 4Use ‘configure --target=avr --enable-languages="c"’ to configure GCC.
Further installation notes and other useful information about AVR tools d231 16 a246 17
The following error:
Error: register requiredindicates that you should upgrade to a newer version of the binutils.
Blackfin
The Blackfin processor, an Analog Devices DSP. d248 2 a249 2
More information, and a version of binutils with support for this processor, d251 5 a255 4
CR16
a257 1 d259 12 a270 11See “CR16 Options” in the main manual for a list of CR16-specific options.
Use ‘configure --target=cr16-elf --enable-languages=c,c++’ to configure GCC for building a CR16 elf cross-compiler.
Use ‘configure --target=cr16-uclinux --enable-languages=c,c++’ to configure GCC for building a CR16 uclinux cross-compiler.
CRIS
d273 2 a274 2See “CRIS Options” in the main manual d276 7 a282 11
There are a few different CRIS targets:
cris-axis-elfMainly for monolithic embedded systems. Includes a multilib for the ‘v10’ core used in ‘ETRAX 100 LX’.
cris-axis-linux-gnu- d285 1 a285 1
A GNU/Linux port for the CRIS architecture, currently targeting ‘ETRAX 100 LX’ by default.
Pre-packaged tools can be obtained from d289 5 a293 4
DOS
d295 2 a296 2You cannot install GCC by itself on MSDOS; it will not compile under d300 6 a305 5
epiphany-*-elf
Adapteva Epiphany. d307 5 a311 4
*-*-freebsd*
d315 2 a316 2In order to better utilize FreeBSD base system functionality and match d321 1 a321 1 libgcc_s.so.1 and boehm-gc (on FreeBSD 7 or later) is enabled d323 4 a326 4
We support FreeBSD using the ELF file format with DWARF 2 debugging for all CPU architectures. You may use -gstabs instead of -g, if you really want the old debugging format. There are d330 1 a330 1 GCC. In particular, --enable-threads is now configured by d336 2 a337 2
The version of binutils installed in /usr/bin probably works d339 1 a339 1 binutils and/or the version found in /usr/ports/devel/binutils has d344 6 a349 5
ft32-*-elf
The FT32 processor. d351 5 a355 4
h8300-hms
d357 4 a360 4Please have a look at the binaries page.
The calling convention and structure layout has changed in release 2.6. d364 5 a368 4
hppa*-hp-hpux*
d370 2 a371 2We require using gas/binutils on all hppa platforms. Version 2.19 or d373 7 a379 7
It may be helpful to configure GCC with the --with-gnu-as and --with-as=… options to ensure that GCC can find GAS.
The HP assembler should not be used with GCC. It is rarely tested and may not work. It shouldn’t be used with any languages other than C due to its d381 2 a382 2
Specifically, -g does not work (HP-UX uses a peculiar debugging d386 3 a388 3 ‘make all-host all-target’ after getting the failure from ‘make’.
Various GCC features are not supported. For example, it does not support weak d392 2 a393 2
There are two default scheduling models for instructions. These are d395 1 a395 1 architecture specified for the target machine when configuring. d397 3 a399 3 the target is a ‘hppa1*’ machine.
The PROCESSOR_8000 model is not well suited to older processors. Thus, d404 3 a406 3
As of GCC 4.0, GCC uses the UNIX 95 namespace for HP-UX 10.10 through 11.00, and the UNIX 98 namespace for HP-UX 11.11 and later. d410 3 a412 3 in a number of ways. With HP cc,
UNIX_STDcan be set to ‘95’ or ‘98’. Another way is to add an appropriate set of predefines toCC. The description for the munix= option contains d414 7 a420 6More specific information to ‘hppa*-hp-hpux*’ targets follows.
hppa*-hp-hpux10
d423 2 a424 2The C++ ABI has changed incompatibly in GCC 4.0. COMDAT subspaces are d428 5 a432 4
hppa*-hp-hpux11
d435 4 a438 4The libffi library haven’t been ported to 64-bit HP-UX and doesn’t build.
Refer to binaries for information about obtaining d442 3 a444 3
Starting with GCC 3.4 an ISO C compiler is required to bootstrap. The bundled compiler supports only traditional C; you will need either HP’s d446 2 a447 2
It is possible to build GCC 3.3 starting with the bundled HP compiler, d450 2 a451 2
There are several possible approaches to building the distribution. d454 1 a454 1 first using the HP tools, then build binutils, then rebuild GCC. d457 2 a458 2
On 64-bit capable systems, there are two distinct targets. Different d460 3 a462 3 the same system. The ‘hppa[1-2]*-hp-hpux11*’ target generates code for the 32-bit PA-RISC runtime architecture and uses the HP linker. The ‘hppa64-hp-hpux11*’ target generates 64-bit code for the d464 11 a474 11
The script config.guess now selects the target type based on the compiler detected during configuration. You must define
PATHorCCso that configure finds an appropriate compiler for the initial bootstrap. WhenCCis used, the definition should contain the options that are needed wheneverCCis used.Specifically, options that determine the runtime architecture must be in
CCto correctly select the target for the build. It is also convenient to place many other compiler options inCC. For example,CC="cc -Ac +DA2.0W -Wp,-H16376 -D_CLASSIC_TYPES -D_HPUX_SOURCE"d476 2 a477 2 64-bit K&R/bundled mode. The +DA2.0W option will result in the automatic selection of the ‘hppa64-hp-hpux11*’ target. The d481 4 a484 4 -Ac option. These defines aren’t necessary with -Ae.It is best to explicitly configure the ‘hppa64-hp-hpux11*’ target with the --with-ld=… option. This overrides the standard d487 1 a487 1 result, it’s not possible to switch linkers in the middle of a GCC build. d490 2 a491 2
A recent linker patch must be installed for the correct operation of d495 1 a495 1
PHSS_24304, might be usable but it hasn’t been tested. These d498 2 a499 2The patches are necessary for the support of weak symbols on the d502 1 a502 1 to HP-UX 11, there are bugs in the linker support for secondary symbols. d506 2 a507 2
GCC 3.3 uses the ELF DT_INIT_ARRAY and DT_FINI_ARRAY capabilities to d509 1 a509 1 uses the linker +init and +fini options for the same d512 1 a512 1 problem on the 64-bit port resulting from HP’s non-standard use of d514 3 a516 3
Although the HP and GNU linkers are both supported for the ‘hppa64-hp-hpux11*’ target, it is strongly recommended that the d518 2 a519 2
At this time, the GNU linker does not support the creation of long d523 2 a524 2 with -static, and with dwarf2 unwind and exception support. It also doesn’t provide stubs for internal calls to global functions d526 2 a527 2
The HP dynamic loader does not support GNU symbol versioning, so symbol d529 9 a537 8 versioning with --disable-symvers when using GNU ld.
POSIX threads are the default. The optional DCE thread library is not supported, so --enable-threads=dce does not work.
*-*-linux-gnu
d541 6 a546 5
i?86-*-linux*
As of GCC 3.3, binutils 2.13.1 or later is required for this platform. d548 2 a549 2
If you receive Signal 11 errors when building on GNU/Linux, then it is d552 5 a556 4
i?86-*-solaris2.10
d558 5 a562 5 with GCC 4.7, there is also a 64-bit ‘amd64-*-solaris2.1[0-9]*’ or ‘x86_64-*-solaris2.1[0-9]*’ configuration that corresponds to ‘sparcv9-sun-solaris2*’.It is recommended that you configure GCC to use the GNU assembler. The d564 11 a574 8 /usr/sfw/bin/gas), and Solaris 11, from GNU binutils 2.19 or newer (also available as /usr/bin/gas and /usr/gnu/bin/as), work fine. The current version, from GNU binutils 2.29, is known to work, but the version from GNU binutils 2.26 must be avoided. Recent versions of the Solaris assembler in /usr/ccs/bin/as work almost as well, though.
For linking, the Solaris linker, is preferred. If you want to use the GNU d576 1 a576 1 10, from GNU binutils 2.15 (in /usr/sfw/bin/gld), cannot be used, d578 13 a590 11 in /usr/gnu/bin/ld and /usr/bin/gld), works, as does the latest version, from GNU binutils 2.29.
To use GNU
as, configure with the options --with-gnu-as --with-as=/usr/sfw/bin/gas. It may be necessary to configure with --without-gnu-ld --with-ld=/usr/ccs/bin/ld to guarantee use of Sunld.
ia64-*-linux
d593 3 a595 3If you are using the installed system libunwind library with --with-system-libunwind, then you must use libunwind 0.98 or d597 2 a598 2
None of the following versions of GCC has an ABI that is compatible d601 3 a603 3 3.1, 3.0.2, 3.0.1, 3.0, Red Hat 2.96, and Trillian 000717. This primarily affects C++ programs and programs that create shared libraries. GCC 3.1 or later is recommended for compiling linux, the kernel. d606 5 a610 4
ia64-*-hpux*
d613 6 a618 6 the option --with-gnu-as may be necessary.The GCC libunwind library has not been ported to HPUX. This means that for GCC versions 3.2.3 and earlier, --enable-libunwind-exceptions is required to build GCC. For GCC 3.3 and later, this is the default. For gcc 3.4.3 and later, --enable-libunwind-exceptions is d620 7 a626 6
*-ibm-aix*
Support for AIX version 3 and older was discontinued in GCC 3.4. d628 2 a629 2
“out of memory” bootstrap failures may indicate a problem with d631 3 a633 3 /etc/security/limits system configuration file.
GCC 4.9 and above require a C++ compiler for bootstrap. IBM VAC++ / xlC d636 2 a637 2
GCC can bootstrap with recent versions of IBM XLC, but bootstrapping a640 5
d642 5 a646 2% LDR_CNTRL=MAXDATA=0x50000000 % export LDR_CNTRLOne can start with a pre-compiled version of GCC to build from sources. One may delete GCC’s “fixed” header files when starting a647 8
To speed up the configuration phases of bootstrapping and installing GCC, one may use GNU Bash instead of AIX
/bin/sh, e.g.,d649 7 a655 2% CONFIG_SHELL=/opt/freeware/bin/bash % export CONFIG_SHELLand then proceed as described in the build instructions, where we strongly recommend specifying an absolute path d657 2 a658 2
Because GCC on AIX is built as a 32-bit executable by default, d662 2 a663 2
Errors involving
allocawhen building GCC generally are due d666 5 a670 5 the build, the native AIX compiler must be invoked ascc(notxlc). Onceconfigurehas been informed ofxlc, one needs to use ‘make distclean’ to remove the configure cache files and ensure thatCCenvironment variable does not provide a definition that will confuseconfigure. d673 2 a674 2The native
asandldare recommended for d677 1 a677 1 AIX 5. The GNU Assembler has not been updated to support AIX 6 or d679 2 a680 2AIX 7.1 added partial support for DWARF debugging, but full support d685 2 a686 2
AIX 5.3 TL10, AIX 6.1 TL05 and AIX 7.1 TL00 introduced an AIX d694 2 a695 2
Building libstdc++.a requires a fix for an AIX Assembler bug d699 3 a701 3
‘libstdc++’ in GCC 3.4 increments the major version number of the shared object and GCC installation places the libstdc++.a d705 3 a707 3 versions of the ‘libstdc++’ shared object needs to be available to the AIX runtime loader. The GCC 3.1 ‘libstdc++.so.4’, if present, and GCC 3.3 ‘libstdc++.so.5’ shared objects can be d709 2 a710 8 the ‘F_LOADONLY’ flag in the shared object for each multilib libstdc++.a installed:
Extract the shared objects from the currently installed libstdc++.a archive:
d712 5 a716 1% ar -x libstdc++.a libstdc++.so.4 libstdc++.so.5Enable the ‘F_LOADONLY’ flag so that the shared object will be d718 8 a725 12
% strip -e libstdc++.so.4 libstdc++.so.5Archive the runtime-only shared object in the GCC 3.4 libstdc++.a archive:
% ar -q libstdc++.a libstdc++.so.4 libstdc++.so.5Eventually, the --with-aix-soname=svr4 d728 2 a729 2
Linking executables and shared libraries may produce warnings of d735 2 a736 2
AIX 4.3 utilizes a “large format” archive to support both 32-bit and d738 1 a738 1 to parse archive libraries did not handle the new format correctly. d741 1 a741 1 with AIX 4.3.1 should work for a 32-bit environment. The -g d745 3 a747 3
Some versions of the AIX binder (linker) can fail with a relocation overflow severe error when the -bbigtoc option is used to link d753 2 a754 2
The AIX 4.3.2.1 linker (bos.rte.bind_cmds Level 4.3.2.1) will dump core d759 2 a760 2
The initial assembler shipped with AIX 4.3.0 generates incorrect object d765 2 a766 2
AIX provides National Language Support (NLS). Compilers and assemblers d768 1 a768 1 formats including floating-point numbers (e.g., ‘.’ vs ‘,’ for d771 10 a780 9 expects. If one encounters this problem, set the
LANGenvironment variable to ‘C’ or ‘En_US’.A default can be specified with the -mcpu=cpu_type switch and using the configure option --with-cpu-cpu_type.
iq2000-*-elf
d783 6 a788 5
lm32-*-elf
Lattice Mico32 processor. d790 6 a795 5
lm32-*-uclinux
Lattice Mico32 processor. d797 6 a802 5
m32c-*-elf
Renesas M32C processor. d804 6 a809 5
m32r-*-elf
Renesas M32R processor. d811 5 a815 4
m68k-*-*
d817 2 a818 2 ‘m68k-*-elf*’, ‘m68k-*-rtems’, ‘m68k-*-uclinux’ and ‘m68k-*-linux’ d821 3 a823 3 --with-arch=m68k toconfigure. Alternatively, you can omit the M680x0 libraries by passing --with-arch=cf toconfigure. These targets default to 5206 or 5475 code as d825 4 a828 4 configured with --with-arch=cf and 68020 code otherwise.The ‘m68k-*-netbsd’ and ‘m68k-*-openbsd’ targets also support the --with-arch d830 14 a843 13 --with-arch=cf and 68020 code otherwise.
You can override the default processors listed above by configuring with --with-cpu=target. This target can either be a -mcpu argument or one of the following values: ‘m68000’, ‘m68010’, ‘m68020’, ‘m68030’, ‘m68040’, ‘m68060’, ‘m68020-40’ and ‘m68020-60’.
GCC requires at least binutils version 2.17 on these targets.
m68k-*-uclinux
d845 1 a845 1 ‘m68k-linux-gnu’ ABI rather than the ‘m68k-elf’ ABI. d848 6 a853 5
microblaze-*-elf
Xilinx MicroBlaze processor. d855 5 a859 4
mips-*-*
d861 1 a861 1 sections for all it’s [sic] sectons [sic]”, don’t worry about it. This d865 2 a866 2It would be nice to extend GAS to produce the gp tables, but they are d868 2 a869 2
The libstdc++ atomic locking routines for MIPS targets requires MIPS II d871 3 a873 3 make ‘mips*-*-*’ use the generic implementation instead. You can also configure for ‘mipsel-elf’ as a workaround. The ‘mips*-*-linux*’ target continues to use the MIPS II routines. More a874 1
d876 6 a881 4The built-in
__sync_*functions are available on MIPS II and later systems and others that support the ‘ll’, ‘sc’ and ‘sync’ instructions. This can be overridden by passing --with-llsc or --without-llsc when configuring GCC. d883 4 a886 4 missing, the default for ‘mips*-*-linux*’ targets is --with-llsc. The --with-llsc and --without-llsc configure options may be overridden at compile time by passing the -mllsc or -mno-llsc options to d888 3 a890 3MIPS systems check for division by zero (unless -mno-check-zero-division is passed to the compiler) by d895 2 a896 2 the use of break, use the --with-divide=breaks
configureoption when configuring GCC. The default is to d898 19 a916 4
moxie-*-elf
d918 6 a923 5
msp430-*-elf
TI MSP430 processor. d925 5 a929 4
nds32le-*-elf
d931 5 a935 4
nds32be-*-elf
d937 5 a941 4
nvptx-*-none
d943 3 a945 3Instead of GNU binutils, you will need to install nvptx-tools. d947 24 a970 22 --with-build-time-tools=[install-nvptx-tools]/nvptx-none/bin.
You will need newlib 3.0 git revision cd31fbb2aea25f94d7ecedc9db16dfc87ab0c316 or later. It can be automatically built together with GCC. For this, add a symbolic link to nvptx-newlib’s newlib directory to the directory containing the GCC sources.
Use the --disable-sjlj-exceptions and --enable-newlib-io-long-long options when configuring.
powerpc-*-*
You can specify a default version for the -mcpu=cpu_type switch by using the configure option --with-cpu-cpu_type.
You will need GNU binutils 2.15 or newer.
powerpc-*-darwin*
d972 2 a973 2Pre-installed versions of Mac OS X may not include any developer tools, d977 2 a978 2
This version of GCC requires at least cctools-590.36. The d982 5 a986 4
powerpc-*-elf
d988 5 a992 4
powerpc*-*-linux-gnu*
d994 5 a998 4
powerpc-*-netbsd*
d1000 5 a1004 4
powerpc-*-eabisim
d1007 5 a1011 4
powerpc-*-eabi
d1013 5 a1017 4
powerpcle-*-elf
d1019 5 a1023 4
powerpcle-*-eabisim
d1026 5 a1030 4
powerpcle-*-eabi
d1032 6 a1037 11
rl78-*-elf
The Renesas RL78 processor. This configuration is intended for embedded systems.
riscv32-*-elf
The RISC-V RV32 instruction set. d1039 7 d1048 6 a1053 5
riscv32-*-linux
The RISC-V RV32 instruction set running GNU/Linux. d1056 7 a1062 6
riscv64-*-elf
The RISC-V RV64 instruction set. This configuration is intended for embedded systems. d1065 6 a1070 5
riscv64-*-linux
The RISC-V RV64 instruction set running GNU/Linux. d1073 5 a1077 4
rx-*-elf
d1079 5 a1083 4
s390-*-linux*
d1085 5 a1089 4
s390x-*-linux*
d1091 5 a1095 4
s390x-ibm-tpf*
d1098 9 a1106 4
*-*-solaris2*
d1110 2 a1111 2Sun does not ship a C compiler with Solaris 2 before Solaris 10, though d1113 1 a1113 1 11, GCC 3.4.3 is available as
/usr/sfw/bin/gcc. Solaris 11 d1115 1 a1115 1/usr/gcc/4.5/bin/gccor similar. Alternatively, d1118 3 a1120 3The Solaris 2
/bin/shwill often fail to configure ‘libstdc++-v3’or ‘boehm-gc’. We therefore recommend using the a1121 5d1123 4 a1126 1% CONFIG_SHELL=/bin/ksh % export CONFIG_SHELLand proceed as described in the configure instructions. d1128 3 a1130 3
srcdir/configure.Solaris 10 comes with a number of optional OS packages. Some of these d1135 1 a1135 1 the packages that GCC needs are installed. d1137 2 a1138 2 the
pkginfocommand. To add an optional package, use thepkgaddcommand. For further details, see the Solaris 10 d1140 2 a1141 2Starting with Solaris 11, the package management has changed, so you d1144 4 a1147 4 packages is done with the
pkgcommand now.Trying to use the linker and other tools in /usr/ucb to install GCC has been observed to cause trouble. d1149 8 a1156 8 /usr/ucb from your
PATH.The build process works more smoothly with the legacy Sun tools so, if you have /usr/xpg4/bin in your
PATH, we recommend that you place /usr/bin before /usr/xpg4/bin for the duration of the build.We recommend the use of the Solaris assembler or the GNU assembler, in conjunction with the Solaris linker. The GNU
asd1158 6 a1163 5 /usr/sfw/bin/gas), and Solaris 11, from GNU binutils 2.19 or newer (also in /usr/bin/gas and /usr/gnu/bin/as), are known to work. The current version, from GNU binutils 2.29, is known to work as well. Note that your mileage may vary d1165 5 a1169 4 combination GNUas+ Sunldshould reasonably work, the reverse combination Sunas+ GNUldmay fail to build or cause memory corruption at runtime in some cases for C++ programs. GNUldusually works as well, although the version included in d1171 9 a1179 9 version (2.29) is known to work, but generally lacks platform specific features, so better stay with Solarisld. To use the LTO linker plugin (-fuse-linker-plugin) with GNUld, GNU binutils must be configured with --enable-largefile.To enable symbol versioning in ‘libstdc++’ with the Solaris linker, you need to have any version of GNU
c++filt, which is part of GNU binutils. ‘libstdc++’ symbol versioning will be disabled if no appropriate version is found. Solarisc++filtfrom the Solaris d1181 4 a1184 4Sun bug 4927647 sometimes causes random spurious testsuite failures related to missing diagnostic output. This bug doesn’t affect GCC itself, rather it is a kernel bug triggered by the
expectd1186 1 a1186 1 causes theexpectprogram to miss anticipated output, extra d1188 5 a1192 4
sparc*-*-*
d1196 2 a1197 2Newer versions of the GNU Multiple Precision Library (GMP), the MPFR d1202 5 a1206 4
sparc-sun-solaris2*
d1208 1 a1208 1 produced are smaller than the ones produced using Sun’s native tools; d1211 2 a1212 2Starting with Solaris 7, the operating system is capable of executing d1214 1 a1214 1 this; the -m64 option enables 64-bit code generation. d1216 1 a1216 1 should try the -mtune=ultrasparc option instead, which produces d1219 2 a1220 2
When configuring the GNU Multiple Precision Library (GMP), the MPFR d1222 2 a1223 2 target triplet must be specified as the
buildparameter on the configure line. This target triplet can be obtained by invoking./config.guessin the toplevel source directory of GCC (and d1225 7 a1231 8% ./configure --build=sparc-sun-solaris2.9 --prefix=xxx
sparc-sun-solaris2.10
d1234 14 a1247 15ld: fatal: relocation error: R_SPARC_TLS_LE_HIX22: file /var/tmp//ccamPA1v.o: symbol <unknown>: bad symbol type SECT: symbol type must be TLSThis bug is fixed in Sun patch 118683-03 or later.
sparc-*-linux*
sparc64-*-solaris2*
d1250 1 a1250 1 as thebuildparameter on the configure line. For example d1252 13 a1264 13% ./configure --build=sparc64-sun-solaris2.9 --prefix=xxx
sparcv9-*-solaris2*
This is a synonym for ‘sparc64-*-solaris2*’.
c6x-*-*
d1266 5 a1270 4
tilegx-*-linux*
d1273 5 a1277 4
tilegxbe-*-linux*
d1280 5 a1284 4
tilepro-*-linux*
d1287 6 a1292 5
visium-*-elf
CDS VISIUMcore processor. d1294 5 a1298 4
*-*-vxworks*
d1300 2 a1301 2 very recent VxWorks 5.5 (aka Tornado 2.2) release, and only on PowerPC. We welcome patches for other architectures supported by VxWorks 5.5. d1306 12 a1317 12VxWorks comes with an older version of GCC installed in $WIND_BASE/host; we recommend you do not overwrite it. Choose an installation prefix entirely outside $WIND_BASE. Before running
configure, create the directories prefix and prefix/bin. Link or copy the appropriate assembler, linker, etc. into prefix/bin, and set your PATH to include that directory while running bothconfigureandmake.You must give
configurethe --with-headers=$WIND_BASE/target/h switch so that it can d1319 4 a1322 4 target only, you must also specify --target=target.configurewill attempt to create the directory prefix/target/sys-include and copy files into it; make sure the user runningconfigurehas sufficient privilege d1324 3 a1326 3GCC’s exception handling runtime requires a special “configlette” module, contrib/gthr_supp_vxw_5x.c. Follow the instructions in d1329 5 a1333 4
x86_64-*-*, amd64-*-*
d1335 1 a1335 1 (amd64-*-* is an alias for x86_64-*-*) on GNU/Linux, FreeBSD and NetBSD. d1337 6 a1342 5 both 64-bit x86-64 and 32-bit x86 code (via the -m32 switch).
x86_64-*-solaris2.1[0-9]*
d1344 1 a1344 1 processor (‘amd64-*-*’ is an alias for ‘x86_64-*-*’) on d1347 1 a1347 1 can generate 64-bit x86-64 code with the -m64 switch. Since d1349 9 a1357 8 can generate 32-bit code with -m32. To configure and build this way, you have to provide all support libraries like libgmp as 64-bit code, configure with --target=x86_64-pc-solaris2.1x and ‘CC=gcc -m64’.
xtensa*-*-elf
d1359 1 a1359 1 ‘newlib’ C library. It uses ELF but does not support shared d1363 3 a1365 3The Xtensa configuration information must be specified prior to building GCC. The include/xtensa-config.h header d1370 5 a1374 4
xtensa*-*-linux*
d1378 1 a1378 1 -fpic or -fPIC options are used. In other d1380 7 a1386 5 ‘xtensa*-*-elf’ target.
Microsoft Windows
a1387 2Intel 16-bit versions
d1390 2 a1391 2However, the 32-bit port has limited support for Microsoft d1393 3 a1395 3
Intel 32-bit versions
a1399 9d1401 11 a1411 2
- Cygwin *-*-cygwin: Cygwin provides a user-space Linux API emulation layer in the Win32 subsystem.
- MinGW *-*-mingw32: MinGW is a native GCC port for the Win32 subsystem that provides a subset of POSIX.
- MKS i386-pc-mks: NuTCracker from MKS. See https://www.mkssoftware.com for more information.
Intel 64-bit versions
d1413 1 a1413 1 runtime library, available from http://mingw-w64.org/doku.php. d1415 5 a1419 5Presently Windows for Itanium is not supported.
Windows CE
d1422 3 a1424 3Other Windows Platforms
d1426 2 a1427 2GCC no longer supports the Windows POSIX subsystem. However, it does d1429 4 a1432 4
Old target names including *-*-winnt and *-*-windowsnt are no longer used.
PW32 (i386-pc-pw32) support was never completed, and the project seems to d1434 7 a1440 6
UWIN support has been removed due to a lack of maintenance.
*-*-cygwin
d1443 5 a1447 5GCC will build under Cygwin without modification; it does not build with Microsoft’s C++ compiler and there are no plans to make it do so.
The Cygwin native compiler can be configured to target any 32-bit x86 d1452 6 a1457 5
*-*-mingw32
GCC will build with and support only MinGW runtime 3.12 and later. d1460 5 a1464 4
Older systems
d1469 2 a1470 2Starting with GCC 3.1, each release has a list of “obsoleted” systems. d1472 1 a1472 1
configurewill fail unless the --enable-obsolete d1475 2 a1476 2Support for old systems as hosts for GCC can cause problems if the d1483 2 a1484 3 old-releases directory on the GCC mirror sites. Header bugs may generally be avoided using
fixincludes, but bugs or deficiencies in libraries and the d1486 2 a1487 2Support for older systems as targets for cross-compilation is less d1495 3 a1497 3
For some systems, old versions of GNU binutils may also be useful, and are available from pub/binutils/old-releases on d1499 2 a1500 2
Some of the information on specific systems above relates to d1504 5 a1508 4
all ELF targets (SVR4, Solaris 2, etc.)
a1512 1 d1514 1 a1514 2
a1515 5
d1517 5 a1522 2 @ 1.7.2.1 log @Sync with HEAD, resolve a couple of conflicts @ text @d1 10 a10 3Installing GCC d47 4 a50 33 d52 76 d129 2 a130 5Installing GCC
d132 1 d134 3 d138 9 d148 10 d159 1 d161 1 d163 4 d168 4 d173 1 d175 1 d177 3 d181 4 d186 1 d188 1 d190 1 d192 1 d194 1 d196 3 d200 1 d202 1 d204 1 d206 1 d208 1 a208 5 a209 162Please read this document carefully before installing the GNU Compiler Collection on your machine.
Note that this list of install notes is not a list of supported hosts or targets. Not all supported hosts and targets are listed here, only the ones that require host-specific or target-specific information have to.
- aarch64*-*-*
- alpha*-*-*
- alpha*-dec-osf5.1
- amd64-*-solaris2.10
- arm-*-eabi
- avr
- Blackfin
- DOS
- *-*-freebsd*
- h8300-hms
- hppa*-hp-hpux*
- hppa*-hp-hpux10
- hppa*-hp-hpux11
- *-*-linux-gnu
- i?86-*-linux*
- i?86-*-solaris2.10
- ia64-*-linux
- ia64-*-hpux*
- *-ibm-aix*
- iq2000-*-elf
- lm32-*-elf
- lm32-*-uclinux
- m32c-*-elf
- m32r-*-elf
- m68k-*-*
- m68k-uclinux
- mep-*-elf
- microblaze-*-elf
- mips-*-*
- mips-sgi-irix5
- mips-sgi-irix6
- nds32le-*-elf
- nds32be-*-elf
- nvptx-*-none
- powerpc*-*-*
- powerpc-*-darwin*
- powerpc-*-elf
- powerpc*-*-linux-gnu*
- powerpc-*-netbsd*
- powerpc-*-eabisim
- powerpc-*-eabi
- powerpcle-*-elf
- powerpcle-*-eabisim
- powerpcle-*-eabi
- s390-*-linux*
- s390x-*-linux*
- s390x-ibm-tpf*
- *-*-solaris2*
- sparc*-*-*
- sparc-sun-solaris2*
- sparc-sun-solaris2.10
- sparc-*-linux*
- sparc64-*-solaris2*
- sparcv9-*-solaris2*
- c6x-*-*
- tilegx-*-linux*
- tilegxbe-*-linux*
- tilepro-*-linux*
- visium-*-elf
- *-*-vxworks*
- x86_64-*-*, amd64-*-*
- x86_64-*-solaris2.1[0-9]*
- xtensa*-*-elf
- xtensa*-*-linux*
- Microsoft Windows
- *-*-cygwin
- *-*-interix
- *-*-mingw32
- OS/2
- Older systems
- all ELF targets (SVR4, Solaris 2, etc.)
aarch64*-*-*
Binutils pre 2.24 does not have support for selecting -mabi and does not support ILP32. If it is used to build GCC 4.9 or later, GCC will not support option -mabi=ilp32.
To enable a workaround for the Cortex-A53 erratum number 835769 by default (for all CPUs regardless of -mcpu option given) at configure time use the --enable-fix-cortex-a53-835769 option. This will enable the fix by default and can be explicitly disabled during compilation by passing the -mno-fix-cortex-a53-835769 option. Conversely, --disable-fix-cortex-a53-835769 will disable the workaround by default. The workaround is disabled by default if neither of --enable-fix-cortex-a53-835769 or --disable-fix-cortex-a53-835769 is given at configure time.
To enable a workaround for the Cortex-A53 erratum number 843419 by default (for all CPUs regardless of -mcpu option given) at configure time use the --enable-fix-cortex-a53-843419 option. This workaround is applied at link time. Enabling the workaround will cause GCC to pass the relevant option to the linker. It can be explicitly disabled during compilation by passing the -mno-fix-cortex-a53-843419 option. Conversely, --disable-fix-cortex-a53-843419 will disable the workaround by default. The workaround is disabled by default if neither of --enable-fix-cortex-a53-843419 or --disable-fix-cortex-a53-843419 is given at configure time.
alpha*-*-*
This section contains general configuration information for all alpha-based platforms using ELF (in particular, ignore this section for DEC OSF/1, Digital UNIX and Tru64 UNIX). In addition to reading this section, please read all other sections that match your target.
We require binutils 2.11.2 or newer. Previous binutils releases had a number of problems with DWARF 2 debugging information, not the least of which is incorrect linking of shared libraries.
alpha*-dec-osf5.1
Systems using processors that implement the DEC Alpha architecture and are running the DEC/Compaq/HP Unix (DEC OSF/1, Digital UNIX, or Compaq/HP Tru64 UNIX) operating system, for example the DEC Alpha AXP systems.
Support for Tru64 UNIX V5.1 has been removed in GCC 4.8. As of GCC 4.6, support for Tru64 UNIX V4.0 and V5.0 has been removed. As of GCC 3.2, versions before
alpha*-dec-osf4are no longer supported. (These are the versions which identify themselves as DEC OSF/1.)
amd64-*-solaris2.1[0-9]*
This is a synonym for ‘x86_64-*-solaris2.1[0-9]*’.
arc-*-elf32
Use ‘configure --target=arc-elf32 --with-cpu=cpu --enable-languages="c,c++"’ to configure GCC, with cpu being one of ‘arc600’, ‘arc601’, or ‘arc700’.
arc-linux-uclibc
Use ‘configure --target=arc-linux-uclibc --with-cpu=arc700 --enable-languages="c,c++"’ to configure GCC.
arm-*-eabi
d214 2 a215 2Building the Ada frontend commonly fails (an infinite loop executing d218 5 a222 4
avr
d224 1 a224 1 applications. There are no standard Unix configurations. d227 4 a230 4Use ‘configure --target=avr --enable-languages="c"’ to configure GCC.
Further installation notes and other useful information about AVR tools d232 18 a249 19
We strongly recommend using binutils 2.13 or newer.
The following error:
Error: register requiredindicates that you should upgrade to a newer version of the binutils.
Blackfin
The Blackfin processor, an Analog Devices DSP. d251 2 a252 2
More information, and a version of binutils with support for this processor, d254 5 a258 4
CR16
a260 1 d262 12 a273 11See “CR16 Options” in the main manual for a list of CR16-specific options.
Use ‘configure --target=cr16-elf --enable-languages=c,c++’ to configure GCC for building a CR16 elf cross-compiler.
Use ‘configure --target=cr16-uclinux --enable-languages=c,c++’ to configure GCC for building a CR16 uclinux cross-compiler.
CRIS
d276 2 a277 2See “CRIS Options” in the main manual d279 7 a285 11
There are a few different CRIS targets:
cris-axis-elfMainly for monolithic embedded systems. Includes a multilib for the ‘v10’ core used in ‘ETRAX 100 LX’.
cris-axis-linux-gnu- d288 1 a288 1
A GNU/Linux port for the CRIS architecture, currently targeting ‘ETRAX 100 LX’ by default.
For
cris-axis-elfyou need binutils 2.11 d290 2 a291 2Pre-packaged tools can be obtained from d295 5 a299 4
DOS
d301 2 a302 2You cannot install GCC by itself on MSDOS; it will not compile under d306 6 a311 5
epiphany-*-elf
Adapteva Epiphany. d313 5 a317 4
*-*-freebsd*
d321 2 a322 2In order to better utilize FreeBSD base system functionality and match d327 1 a327 1 libgcc_s.so.1 and boehm-gc (on FreeBSD 7 or later) is enabled d329 4 a332 4
We support FreeBSD using the ELF file format with DWARF 2 debugging for all CPU architectures. You may use -gstabs instead of -g, if you really want the old debugging format. There are d336 1 a336 1 GCC. In particular, --enable-threads is now configured by d342 2 a343 2
The version of binutils installed in /usr/bin probably works d345 1 a345 1 binutils and/or the version found in /usr/ports/devel/binutils has d350 6 a355 5
ft32-*-elf
The FT32 processor. d357 5 a361 4
h8300-hms
d363 4 a366 4Please have a look at the binaries page.
The calling convention and structure layout has changed in release 2.6. d370 5 a374 4
hppa*-hp-hpux*
d376 2 a377 2We require using gas/binutils on all hppa platforms. Version 2.19 or d379 7 a385 7
It may be helpful to configure GCC with the --with-gnu-as and --with-as=… options to ensure that GCC can find GAS.
The HP assembler should not be used with GCC. It is rarely tested and may not work. It shouldn’t be used with any languages other than C due to its d387 2 a388 2
Specifically, -g does not work (HP-UX uses a peculiar debugging d392 3 a394 3 ‘make all-host all-target’ after getting the failure from ‘make’.
Various GCC features are not supported. For example, it does not support weak d398 2 a399 2
There are two default scheduling models for instructions. These are d401 1 a401 1 architecture specified for the target machine when configuring. d403 3 a405 3 the target is a ‘hppa1*’ machine.
The PROCESSOR_8000 model is not well suited to older processors. Thus, d410 3 a412 3
As of GCC 4.0, GCC uses the UNIX 95 namespace for HP-UX 10.10 through 11.00, and the UNIX 98 namespace for HP-UX 11.11 and later. d416 3 a418 3 in a number of ways. With HP cc,
UNIX_STDcan be set to ‘95’ or ‘98’. Another way is to add an appropriate set of predefines toCC. The description for the munix= option contains d420 7 a426 6More specific information to ‘hppa*-hp-hpux*’ targets follows.
hppa*-hp-hpux10
d429 2 a430 2The C++ ABI has changed incompatibly in GCC 4.0. COMDAT subspaces are d434 5 a438 4
hppa*-hp-hpux11
d441 4 a444 4The libffi and libjava libraries haven’t been ported to 64-bit HP-UX and don’t build.
Refer to binaries for information about obtaining d446 1 a446 1 to build the Ada language as it can’t be bootstrapped using C. Ada is d448 3 a450 3
Starting with GCC 3.4 an ISO C compiler is required to bootstrap. The bundled compiler supports only traditional C; you will need either HP’s d452 2 a453 2
It is possible to build GCC 3.3 starting with the bundled HP compiler, d456 1 a456 1 can’t be built with the HP bundled compiler. This problem can be d458 1 a458 1 --enable-languages="c,c++,f77,objc" option in your configure d460 2 a461 2
There are several possible approaches to building the distribution. d464 1 a464 1 first using the HP tools, then build binutils, then rebuild GCC. d467 2 a468 2
On 64-bit capable systems, there are two distinct targets. Different d470 3 a472 3 the same system. The ‘hppa[1-2]*-hp-hpux11*’ target generates code for the 32-bit PA-RISC runtime architecture and uses the HP linker. The ‘hppa64-hp-hpux11*’ target generates 64-bit code for the d474 11 a484 11
The script config.guess now selects the target type based on the compiler detected during configuration. You must define
PATHorCCso that configure finds an appropriate compiler for the initial bootstrap. WhenCCis used, the definition should contain the options that are needed wheneverCCis used.Specifically, options that determine the runtime architecture must be in
CCto correctly select the target for the build. It is also convenient to place many other compiler options inCC. For example,CC="cc -Ac +DA2.0W -Wp,-H16376 -D_CLASSIC_TYPES -D_HPUX_SOURCE"d486 2 a487 2 64-bit K&R/bundled mode. The +DA2.0W option will result in the automatic selection of the ‘hppa64-hp-hpux11*’ target. The d491 4 a494 4 -Ac option. These defines aren’t necessary with -Ae.It is best to explicitly configure the ‘hppa64-hp-hpux11*’ target with the --with-ld=… option. This overrides the standard d497 1 a497 1 result, it’s not possible to switch linkers in the middle of a GCC build. d500 2 a501 2
A recent linker patch must be installed for the correct operation of d505 1 a505 1
PHSS_24304, might be usable but it hasn’t been tested. These d508 2 a509 2The patches are necessary for the support of weak symbols on the d512 1 a512 1 to HP-UX 11, there are bugs in the linker support for secondary symbols. d516 2 a517 2
GCC 3.3 uses the ELF DT_INIT_ARRAY and DT_FINI_ARRAY capabilities to d519 1 a519 1 uses the linker +init and +fini options for the same d522 1 a522 1 problem on the 64-bit port resulting from HP’s non-standard use of d524 3 a526 3
Although the HP and GNU linkers are both supported for the ‘hppa64-hp-hpux11*’ target, it is strongly recommended that the d528 3 a530 3
At this time, the GNU linker does not support the creation of long branch stubs. As a result, it can’t successfully link binaries d533 5 a537 5 with -static, and with dwarf2 unwind and exception support. It also doesn’t provide stubs for internal calls to global functions in shared libraries, so these calls can’t be overloaded.
The HP dynamic loader does not support GNU symbol versioning, so symbol d539 9 a547 8 versioning with --disable-symvers when using GNU ld.
POSIX threads are the default. The optional DCE thread library is not supported, so --enable-threads=dce does not work.
*-*-linux-gnu
d551 6 a556 5
i?86-*-linux*
As of GCC 3.3, binutils 2.13.1 or later is required for this platform. d558 2 a559 2
If you receive Signal 11 errors when building on GNU/Linux, then it is d562 5 a566 4
i?86-*-solaris2.10
d568 5 a572 5 with GCC 4.7, there is also a 64-bit ‘amd64-*-solaris2.1[0-9]*’ or ‘x86_64-*-solaris2.1[0-9]*’ configuration that corresponds to ‘sparcv9-sun-solaris2*’.It is recommended that you configure GCC to use the GNU assembler. The d574 3 a576 3 /usr/sfw/bin/gas), and Solaris 11, from GNU binutils 2.19 or newer (also available as /usr/bin/gas and /usr/gnu/bin/as), work fine. Please note that the current d580 5 a584 4 versions of the Solaris assembler in /usr/ccs/bin/as work almost as well, though.
For linking, the Solaris linker, is preferred. If you want to use the GNU d586 1 a586 1 10, from GNU binutils 2.15 (in /usr/sfw/bin/gld), cannot be used, d588 1 a588 1 in /usr/gnu/bin/ld and /usr/bin/gld), works, as does the d590 11 a600 9
To use GNU
as, configure with the options --with-gnu-as --with-as=/usr/sfw/bin/gas. It may be necessary to configure with --without-gnu-ld --with-ld=/usr/ccs/bin/ld to guarantee use of Sunld.
ia64-*-linux
d603 3 a605 3If you are using the installed system libunwind library with --with-system-libunwind, then you must use libunwind 0.98 or d607 2 a608 2
None of the following versions of GCC has an ABI that is compatible d611 3 a613 3 3.1, 3.0.2, 3.0.1, 3.0, Red Hat 2.96, and Trillian 000717. This primarily affects C++ programs and programs that create shared libraries. GCC 3.1 or later is recommended for compiling linux, the kernel. d616 5 a620 4
ia64-*-hpux*
d623 6 a628 6 the option --with-gnu-as may be necessary.The GCC libunwind library has not been ported to HPUX. This means that for GCC versions 3.2.3 and earlier, --enable-libunwind-exceptions is required to build GCC. For GCC 3.3 and later, this is the default. For gcc 3.4.3 and later, --enable-libunwind-exceptions is d630 7 a636 6
*-ibm-aix*
Support for AIX version 3 and older was discontinued in GCC 3.4. d638 2 a639 2
“out of memory” bootstrap failures may indicate a problem with d641 3 a643 3 /etc/security/limits system configuration file.
GCC 4.9 and above require a C++ compiler for bootstrap. IBM VAC++ / xlC d646 2 a647 2
GCC can bootstrap with recent versions of IBM XLC, but bootstrapping a650 5
d652 5 a656 2% LDR_CNTRL=MAXDATA=0x50000000 % export LDR_CNTRLOne can start with a pre-compiled version of GCC to build from sources. One may delete GCC’s “fixed” header files when starting a657 8
To speed up the configuration phases of bootstrapping and installing GCC, one may use GNU Bash instead of AIX
/bin/sh, e.g.,d659 7 a665 2% CONFIG_SHELL=/opt/freeware/bin/bash % export CONFIG_SHELLand then proceed as described in the build instructions, where we strongly recommend specifying an absolute path d667 2 a668 2
Because GCC on AIX is built as a 32-bit executable by default, d672 2 a673 2
Errors involving
allocawhen building GCC generally are due d676 5 a680 5 the build, the native AIX compiler must be invoked ascc(notxlc). Onceconfigurehas been informed ofxlc, one needs to use ‘make distclean’ to remove the configure cache files and ensure thatCCenvironment variable does not provide a definition that will confuseconfigure. d683 2 a684 2The native
asandldare recommended for d687 1 a687 1 AIX 5. The GNU Assembler has not been updated to support AIX 6 or d689 2 a690 2AIX 7.1 added partial support for DWARF debugging, but full support d695 2 a696 2
AIX 5.3 TL10, AIX 6.1 TL05 and AIX 7.1 TL00 introduced an AIX d704 2 a705 2
Building libstdc++.a requires a fix for an AIX Assembler bug d709 3 a711 3
‘libstdc++’ in GCC 3.4 increments the major version number of the shared object and GCC installation places the libstdc++.a d715 3 a717 3 versions of the ‘libstdc++’ shared object needs to be available to the AIX runtime loader. The GCC 3.1 ‘libstdc++.so.4’, if present, and GCC 3.3 ‘libstdc++.so.5’ shared objects can be d719 2 a720 8 the ‘F_LOADONLY’ flag in the shared object for each multilib libstdc++.a installed:
Extract the shared objects from the currently installed libstdc++.a archive:
d722 5 a726 1% ar -x libstdc++.a libstdc++.so.4 libstdc++.so.5Enable the ‘F_LOADONLY’ flag so that the shared object will be d728 8 a735 12
% strip -e libstdc++.so.4 libstdc++.so.5Archive the runtime-only shared object in the GCC 3.4 libstdc++.a archive:
% ar -q libstdc++.a libstdc++.so.4 libstdc++.so.5Eventually, the --with-aix-soname=svr4 d738 2 a739 2
Linking executables and shared libraries may produce warnings of d745 2 a746 2
AIX 4.3 utilizes a “large format” archive to support both 32-bit and d748 1 a748 1 to parse archive libraries did not handle the new format correctly. d751 1 a751 1 with AIX 4.3.1 should work for a 32-bit environment. The -g d755 3 a757 3
Some versions of the AIX binder (linker) can fail with a relocation overflow severe error when the -bbigtoc option is used to link d763 2 a764 2
The AIX 4.3.2.1 linker (bos.rte.bind_cmds Level 4.3.2.1) will dump core d769 2 a770 2
The initial assembler shipped with AIX 4.3.0 generates incorrect object d775 2 a776 2
AIX provides National Language Support (NLS). Compilers and assemblers d778 1 a778 1 formats including floating-point numbers (e.g., ‘.’ vs ‘,’ for d781 10 a790 9 expects. If one encounters this problem, set the
LANGenvironment variable to ‘C’ or ‘En_US’.A default can be specified with the -mcpu=cpu_type switch and using the configure option --with-cpu-cpu_type.
iq2000-*-elf
d793 6 a798 5
lm32-*-elf
Lattice Mico32 processor. d800 6 a805 5
lm32-*-uclinux
Lattice Mico32 processor. d807 6 a812 5
m32c-*-elf
Renesas M32C processor. d814 6 a819 5
m32r-*-elf
Renesas M32R processor. d821 5 a825 4
m68k-*-*
d827 2 a828 2 ‘m68k-*-elf*’, ‘m68k-*-rtems’, ‘m68k-*-uclinux’ and ‘m68k-*-linux’ d831 3 a833 3 --with-arch=m68k toconfigure. Alternatively, you can omit the M680x0 libraries by passing --with-arch=cf toconfigure. These targets default to 5206 or 5475 code as d835 4 a838 4 configured with --with-arch=cf and 68020 code otherwise.The ‘m68k-*-netbsd’ and ‘m68k-*-openbsd’ targets also support the --with-arch d840 14 a853 13 --with-arch=cf and 68020 code otherwise.
You can override the default processors listed above by configuring with --with-cpu=target. This target can either be a -mcpu argument or one of the following values: ‘m68000’, ‘m68010’, ‘m68020’, ‘m68030’, ‘m68040’, ‘m68060’, ‘m68020-40’ and ‘m68020-60’.
GCC requires at least binutils version 2.17 on these targets.
m68k-*-uclinux
d855 1 a855 1 ‘m68k-linux-gnu’ ABI rather than the ‘m68k-elf’ ABI. d858 6 a863 5
mep-*-elf
Toshiba Media embedded Processor. d865 6 a870 5
microblaze-*-elf
Xilinx MicroBlaze processor. d872 5 a876 4
mips-*-*
d878 1 a878 1 sections for all it’s [sic] sectons [sic]”, don’t worry about it. This d882 2 a883 2It would be nice to extend GAS to produce the gp tables, but they are d885 2 a886 2
The libstdc++ atomic locking routines for MIPS targets requires MIPS II d888 3 a890 3 make ‘mips*-*-*’ use the generic implementation instead. You can also configure for ‘mipsel-elf’ as a workaround. The ‘mips*-*-linux*’ target continues to use the MIPS II routines. More a891 1
d893 6 a898 4The built-in
__sync_*functions are available on MIPS II and later systems and others that support the ‘ll’, ‘sc’ and ‘sync’ instructions. This can be overridden by passing --with-llsc or --without-llsc when configuring GCC. d900 4 a903 4 missing, the default for ‘mips*-*-linux*’ targets is --with-llsc. The --with-llsc and --without-llsc configure options may be overridden at compile time by passing the -mllsc or -mno-llsc options to d905 3 a907 3MIPS systems check for division by zero (unless -mno-check-zero-division is passed to the compiler) by d912 2 a913 2 the use of break, use the --with-divide=breaks
configureoption when configuring GCC. The default is to d915 2 a916 2The assembler from GNU binutils 2.17 and earlier has a bug in the way d920 1 a920 1 runtime linker stubs in very large programs, like libgcj.so, to d923 5 a927 4
mips-sgi-irix5
d929 5 a933 4
mips-sgi-irix6
d937 5 a941 4
moxie-*-elf
d943 6 a948 5
msp430-*-elf
TI MSP430 processor. d950 5 a954 4
nds32le-*-elf
d956 5 a960 4
nds32be-*-elf
d962 5 a966 4
nvptx-*-none
d968 3 a970 3Instead of GNU binutils, you will need to install nvptx-tools. d972 4 a975 4 --with-build-time-tools=[install-nvptx-tools]/nvptx-none/bin.
A nvptx port of newlib is available at nvptx-newlib. d977 1 a977 1 symbolic link to nvptx-newlib’s newlib directory to the d979 12 a990 11
Use the --disable-sjlj-exceptions and --enable-newlib-io-long-long options when configuring.
powerpc-*-*
You can specify a default version for the -mcpu=cpu_type switch by using the configure option --with-cpu-cpu_type.
You will need d993 5 a997 4
powerpc-*-darwin*
d999 2 a1000 2Pre-installed versions of Mac OS X may not include any developer tools, d1004 2 a1005 2
This version of GCC requires at least cctools-590.36. The d1009 5 a1013 4
powerpc-*-elf
d1015 5 a1019 4
powerpc*-*-linux-gnu*
d1021 5 a1025 4
powerpc-*-netbsd*
d1027 5 a1031 4
powerpc-*-eabisim
d1034 5 a1038 4
powerpc-*-eabi
d1040 5 a1044 4
powerpcle-*-elf
d1046 5 a1050 4
powerpcle-*-eabisim
d1053 5 a1057 4
powerpcle-*-eabi
d1059 6 a1064 5
rl78-*-elf
The Renesas RL78 processor. d1066 5 a1070 4
rx-*-elf
d1074 5 a1078 4
s390-*-linux*
d1080 5 a1084 4
s390x-*-linux*
d1086 5 a1090 4
s390x-ibm-tpf*
d1093 9 a1101 4
*-*-solaris2*
d1105 2 a1106 2Sun does not ship a C compiler with Solaris 2 before Solaris 10, though d1108 1 a1108 1 11, GCC 3.4.3 is available as
/usr/sfw/bin/gcc. Solaris 11 d1110 1 a1110 1/usr/gcc/4.5/bin/gccor similar. Alternatively, d1113 3 a1115 3The Solaris 2
/bin/shwill often fail to configure ‘libstdc++-v3’, ‘boehm-gc’ or ‘libjava’. We therefore a1116 5d1118 4 a1121 1% CONFIG_SHELL=/bin/ksh % export CONFIG_SHELLand proceed as described in the configure instructions. d1123 3 a1125 3
srcdir/configure.Solaris 10 comes with a number of optional OS packages. Some of these d1130 1 a1130 1 the packages that GCC needs are installed. d1132 2 a1133 2 the
pkginfocommand. To add an optional package, use thepkgaddcommand. For further details, see the Solaris 10 d1135 2 a1136 2Starting with Solaris 11, the package management has changed, so you d1139 4 a1142 4 packages is done with the
pkgcommand now.Trying to use the linker and other tools in /usr/ucb to install GCC has been observed to cause trouble. d1144 8 a1151 8 /usr/ucb from your
PATH.The build process works more smoothly with the legacy Sun tools so, if you have /usr/xpg4/bin in your
PATH, we recommend that you place /usr/bin before /usr/xpg4/bin for the duration of the build.We recommend the use of the Solaris assembler or the GNU assembler, in conjunction with the Solaris linker. The GNU
asd1153 3 a1155 3 /usr/sfw/bin/gas), and Solaris 11, from GNU binutils 2.19 or newer (also in /usr/bin/gas and /usr/gnu/bin/as), are known to work. d1160 5 a1164 4 combination GNUas+ Sunldshould reasonably work, the reverse combination Sunas+ GNUldmay fail to build or cause memory corruption at runtime in some cases for C++ programs. GNUldusually works as well, although the version included in d1167 8 a1174 8 features, so better stay with Solarisld. To use the LTO linker plugin (-fuse-linker-plugin) with GNUld, GNU binutils must be configured with --enable-largefile.To enable symbol versioning in ‘libstdc++’ with the Solaris linker, you need to have any version of GNU
c++filt, which is part of GNU binutils. ‘libstdc++’ symbol versioning will be disabled if no appropriate version is found. Solarisc++filtfrom the Solaris d1176 2 a1177 2GNU
makeversion 3.81 or later is required to build libjava d1179 4 a1182 4Sun bug 4927647 sometimes causes random spurious testsuite failures related to missing diagnostic output. This bug doesn’t affect GCC itself, rather it is a kernel bug triggered by the
expectd1184 1 a1184 1 causes theexpectprogram to miss anticipated output, extra d1186 5 a1190 4
sparc*-*-*
d1194 2 a1195 2Newer versions of the GNU Multiple Precision Library (GMP), the MPFR d1200 5 a1204 4
sparc-sun-solaris2*
d1206 1 a1206 1 produced are smaller than the ones produced using Sun’s native tools; d1209 2 a1210 2Starting with Solaris 7, the operating system is capable of executing d1212 1 a1212 1 this; the -m64 option enables 64-bit code generation. d1214 1 a1214 1 should try the -mtune=ultrasparc option instead, which produces d1217 2 a1218 2
When configuring the GNU Multiple Precision Library (GMP), the MPFR d1220 2 a1221 2 target triplet must be specified as the
buildparameter on the configure line. This target triplet can be obtained by invoking./config.guessin the toplevel source directory of GCC (and d1223 7 a1229 8% ./configure --build=sparc-sun-solaris2.9 --prefix=xxx
sparc-sun-solaris2.10
d1232 9 a1240 11ld: fatal: relocation error: R_SPARC_TLS_LE_HIX22: file /var/tmp//ccamPA1v.o: symbol <unknown>: bad symbol type SECT: symbol type must be TLSThis bug is fixed in Sun patch 118683-03 or later.
sparc-*-linux*
a1244 1 d1246 4 a1249 3
sparc64-*-solaris2*
d1252 1 a1252 1 as thebuildparameter on the configure line. For example d1254 13 a1266 13% ./configure --build=sparc64-sun-solaris2.9 --prefix=xxx
sparcv9-*-solaris2*
This is a synonym for ‘sparc64-*-solaris2*’.
c6x-*-*
d1268 5 a1272 4
tilegx-*-linux*
d1275 5 a1279 4
tilegxbe-*-linux*
d1282 5 a1286 4
tilepro-*-linux*
d1289 6 a1294 5
visium-*-elf
CDS VISIUMcore processor. d1296 5 a1300 4
*-*-vxworks*
d1302 2 a1303 2 very recent VxWorks 5.5 (aka Tornado 2.2) release, and only on PowerPC. We welcome patches for other architectures supported by VxWorks 5.5. d1308 12 a1319 12VxWorks comes with an older version of GCC installed in $WIND_BASE/host; we recommend you do not overwrite it. Choose an installation prefix entirely outside $WIND_BASE. Before running
configure, create the directories prefix and prefix/bin. Link or copy the appropriate assembler, linker, etc. into prefix/bin, and set your PATH to include that directory while running bothconfigureandmake.You must give
configurethe --with-headers=$WIND_BASE/target/h switch so that it can d1321 4 a1324 4 target only, you must also specify --target=target.configurewill attempt to create the directory prefix/target/sys-include and copy files into it; make sure the user runningconfigurehas sufficient privilege d1326 3 a1328 3GCC’s exception handling runtime requires a special “configlette” module, contrib/gthr_supp_vxw_5x.c. Follow the instructions in d1331 5 a1335 4
x86_64-*-*, amd64-*-*
d1337 1 a1337 1 (amd64-*-* is an alias for x86_64-*-*) on GNU/Linux, FreeBSD and NetBSD. d1339 6 a1344 5 both 64-bit x86-64 and 32-bit x86 code (via the -m32 switch).
x86_64-*-solaris2.1[0-9]*
d1346 1 a1346 1 processor (‘amd64-*-*’ is an alias for ‘x86_64-*-*’) on d1349 1 a1349 1 can generate 64-bit x86-64 code with the -m64 switch. Since d1351 9 a1359 8 can generate 32-bit code with -m32. To configure and build this way, you have to provide all support libraries like libgmp as 64-bit code, configure with --target=x86_64-pc-solaris2.1x and ‘CC=gcc -m64’.
xtensa*-*-elf
d1361 1 a1361 1 ‘newlib’ C library. It uses ELF but does not support shared d1365 3 a1367 3The Xtensa configuration information must be specified prior to building GCC. The include/xtensa-config.h header d1372 5 a1376 4
xtensa*-*-linux*
d1380 1 a1380 1 -fpic or -fPIC options are used. In other d1382 7 a1388 5 ‘xtensa*-*-elf’ target.
Microsoft Windows
a1389 2Intel 16-bit versions
d1392 2 a1393 2However, the 32-bit port has limited support for Microsoft d1395 3 a1397 3
Intel 32-bit versions
a1401 11d1403 13 a1415 2
- Cygwin *-*-cygwin: Cygwin provides a user-space Linux API emulation layer in the Win32 subsystem.
- Interix *-*-interix: The Interix subsystem provides native support for POSIX.
- MinGW *-*-mingw32: MinGW is a native GCC port for the Win32 subsystem that provides a subset of POSIX.
- MKS i386-pc-mks: NuTCracker from MKS. See http://www.mkssoftware.com/ for more information.
Intel 64-bit versions
d1417 1 a1417 1 runtime library, available from http://mingw-w64.sourceforge.net/. d1419 5 a1423 5Presently Windows for Itanium is not supported.
Windows CE
d1426 3 a1428 3Other Windows Platforms
d1430 2 a1431 2GCC no longer supports the Windows POSIX subsystem. However, it does d1433 4 a1436 4
Old target names including *-*-winnt and *-*-windowsnt are no longer used.
PW32 (i386-pc-pw32) support was never completed, and the project seems to d1438 7 a1444 6
UWIN support has been removed due to a lack of maintenance.
*-*-cygwin
d1447 5 a1451 5GCC will build under Cygwin without modification; it does not build with Microsoft’s C++ compiler and there are no plans to make it do so.
The Cygwin native compiler can be configured to target any 32-bit x86 d1456 5 a1460 4
*-*-interix
d1465 6 a1470 5
*-*-mingw32
GCC will build with and support only MinGW runtime 3.12 and later. d1473 5 a1477 4
Older systems
d1482 2 a1483 2Starting with GCC 3.1, each release has a list of “obsoleted” systems. d1485 1 a1485 1
configurewill fail unless the --enable-obsolete d1488 2 a1489 2Support for old systems as hosts for GCC can cause problems if the d1496 2 a1497 3 old-releases directory on the GCC mirror sites. Header bugs may generally be avoided using
fixincludes, but bugs or deficiencies in libraries and the d1499 2 a1500 2Support for older systems as targets for cross-compilation is less d1508 3 a1510 3
For some systems, old versions of GNU binutils may also be useful, and are available from pub/binutils/old-releases on d1512 2 a1513 2
Some of the information on specific systems above relates to d1517 5 a1521 4
all ELF targets (SVR4, Solaris 2, etc.)
a1525 1 d1527 1 a1527 2
a1528 5
d1530 5 a1535 2 @ 1.7.2.2 log @Sync with HEAD @ text @d1 3 a3 10Host/Target specific installation notes for GCC Host/Target specific installation notes for GCC
Please read this document carefully before installing the GNU Compiler Collection on your machine. a59 4Note that this list of install notes is not a list of supported hosts or targets. Not all supported hosts and targets are listed here, only the ones that require host-specific or target-specific information have to. d61 1 a61 78
- aarch64*-*-*
- alpha*-*-*
- alpha*-dec-osf5.1
- amd64-*-solaris2.10
- arm-*-eabi
- avr
- Blackfin
- DOS
- *-*-freebsd*
- h8300-hms
- hppa*-hp-hpux*
- hppa*-hp-hpux10
- hppa*-hp-hpux11
- *-*-linux-gnu
- i?86-*-linux*
- i?86-*-solaris2.10
- ia64-*-linux
- ia64-*-hpux*
- *-ibm-aix*
- iq2000-*-elf
- lm32-*-elf
- lm32-*-uclinux
- m32c-*-elf
- m32r-*-elf
- m68k-*-*
- m68k-uclinux
- microblaze-*-elf
- mips-*-*
- mips-sgi-irix5
- mips-sgi-irix6
- nds32le-*-elf
- nds32be-*-elf
- nvptx-*-none
- powerpc*-*-*
- powerpc-*-darwin*
- powerpc-*-elf
- powerpc*-*-linux-gnu*
- powerpc-*-netbsd*
- powerpc-*-eabisim
- powerpc-*-eabi
- powerpcle-*-elf
- powerpcle-*-eabisim
- powerpcle-*-eabi
- riscv32-*-elf
- riscv32-*-linux
- riscv64-*-elf
- riscv64-*-linux
- s390-*-linux*
- s390x-*-linux*
- s390x-ibm-tpf*
- *-*-solaris2*
- sparc*-*-*
- sparc-sun-solaris2*
- sparc-sun-solaris2.10
- sparc-*-linux*
- sparc64-*-solaris2*
- sparcv9-*-solaris2*
- c6x-*-*
- tilegx-*-linux*
- tilegxbe-*-linux*
- tilepro-*-linux*
- visium-*-elf
- *-*-vxworks*
- x86_64-*-* amd64-*-*
- x86_64-*-solaris2.1[0-9]*
- xtensa*-*-elf
- xtensa*-*-linux*
- Microsoft Windows
- *-*-cygwin
- *-*-mingw32
- OS/2
- Older systems
d63 2 a64 2
- all ELF targets (SVR4, Solaris 2, etc.)
a65 1aarch64*-*-*
a66 3Binutils pre 2.24 does not have support for selecting -mabi and does not support ILP32. If it is used to build GCC 4.9 or later, GCC will not support option -mabi=ilp32. a67 9
To enable a workaround for the Cortex-A53 erratum number 835769 by default (for all CPUs regardless of -mcpu option given) at configure time use the --enable-fix-cortex-a53-835769 option. This will enable the fix by default and can be explicitly disabled during compilation by passing the -mno-fix-cortex-a53-835769 option. Conversely, --disable-fix-cortex-a53-835769 will disable the workaround by default. The workaround is disabled by default if neither of --enable-fix-cortex-a53-835769 or --disable-fix-cortex-a53-835769 is given at configure time. a68 10
To enable a workaround for the Cortex-A53 erratum number 843419 by default (for all CPUs regardless of -mcpu option given) at configure time use the --enable-fix-cortex-a53-843419 option. This workaround is applied at link time. Enabling the workaround will cause GCC to pass the relevant option to the linker. It can be explicitly disabled during compilation by passing the -mno-fix-cortex-a53-843419 option. Conversely, --disable-fix-cortex-a53-843419 will disable the workaround by default. The workaround is disabled by default if neither of --enable-fix-cortex-a53-843419 or --disable-fix-cortex-a53-843419 is given at configure time. a69 1
a70 1alpha*-*-*
a71 4This section contains general configuration information for all alpha-based platforms using ELF (in particular, ignore this section for DEC OSF/1, Digital UNIX and Tru64 UNIX). In addition to reading this section, please read all other sections that match your target. a72 4
We require binutils 2.11.2 or newer. Previous binutils releases had a number of problems with DWARF 2 debugging information, not the least of which is incorrect linking of shared libraries. a73 1
a74 1alpha*-dec-osf5.1
a75 3Systems using processors that implement the DEC Alpha architecture and are running the DEC/Compaq/HP Unix (DEC OSF/1, Digital UNIX, or Compaq/HP Tru64 UNIX) operating system, for example the DEC Alpha AXP systems. a76 4
Support for Tru64 UNIX V5.1 has been removed in GCC 4.8. As of GCC 4.6, support for Tru64 UNIX V4.0 and V5.0 has been removed. As of GCC 3.2, versions before
alpha*-dec-osf4are no longer supported. (These are the versions which identify themselves as DEC OSF/1.) a77 1
a78 1amd64-*-solaris2.1[0-9]*
a79 1This is a synonym for ‘x86_64-*-solaris2.1[0-9]*’. a80 1
a81 1arc-*-elf32
a82 3Use ‘configure --target=arc-elf32 --with-cpu=cpu --enable-languages="c,c++"’ to configure GCC, with cpu being one of ‘arc600’, ‘arc601’, or ‘arc700’. a83 1
a84 1arc-linux-uclibc
a85 1Use ‘configure --target=arc-linux-uclibc --with-cpu=arc700 --enable-languages="c,c++"’ to configure GCC. a86 1
a87 1arm-*-eabi
d89 5 a93 1ARM-family processors. d95 168 a262 1
Building the Ada frontend commonly fails (an infinite loop executing d265 4 a268 5
avr
d270 1 a270 1 applications. There are no standard Unix configurations. d273 4 a276 4Use ‘configure --target=avr --enable-languages="c"’ to configure GCC.
Further installation notes and other useful information about AVR tools d278 19 a296 16
The following error:
Error: register requiredindicates that you should upgrade to a newer version of the binutils.
Blackfin
The Blackfin processor, an Analog Devices DSP. d298 7 a304 8
More information, and a version of binutils with support for this processor, is available at https://blackfin.uclinux.org
CR16
d307 1 d309 11 a319 12See “CR16 Options” in the main manual for a list of CR16-specific options.
Use ‘configure --target=cr16-elf --enable-languages=c,c++’ to configure GCC for building a CR16 elf cross-compiler.
Use ‘configure --target=cr16-uclinux --enable-languages=c,c++’ to configure GCC for building a CR16 uclinux cross-compiler.
CRIS
d322 2 a323 2See “CRIS Options” in the main manual d325 11 a335 7
There are a few different CRIS targets:
cris-axis-elf- Mainly for monolithic embedded systems. Includes a multilib for the ‘v10’ core used in ‘ETRAX 100 LX’.
cris-axis-linux-gnu- A GNU/Linux port for the CRIS architecture, currently targeting ‘ETRAX 100 LX’ by default. d338 4 a341 1
Pre-packaged tools can be obtained from d345 4 a348 5
DOS
d350 2 a351 2You cannot install GCC by itself on MSDOS; it will not compile under d355 5 a359 6
epiphany-*-elf
Adapteva Epiphany. d361 4 a364 5
*-*-freebsd*
d368 2 a369 2In order to better utilize FreeBSD base system functionality and match d374 1 a374 1 libgcc_s.so.1 and boehm-gc (on FreeBSD 7 or later) is enabled d376 4 a379 4
We support FreeBSD using the ELF file format with DWARF 2 debugging for all CPU architectures. You may use -gstabs instead of -g, if you really want the old debugging format. There are d383 1 a383 1 GCC. In particular, --enable-threads is now configured by d389 2 a390 2
The version of binutils installed in /usr/bin probably works d392 1 a392 1 binutils and/or the version found in /usr/ports/devel/binutils has d394 8 a401 9 results. However, it is currently known that boehm-gc may not configure properly on FreeBSD prior to the FreeBSD 7.0 release with GNU binutils after 2.16.1.
ft32-*-elf
The FT32 processor. d403 4 a406 5
h8300-hms
d408 4 a411 4Please have a look at the binaries page.
The calling convention and structure layout has changed in release 2.6. d415 4 a418 5
hppa*-hp-hpux*
d420 2 a421 2We require using gas/binutils on all hppa platforms. Version 2.19 or d423 7 a429 7
It may be helpful to configure GCC with the --with-gnu-as and --with-as=... options to ensure that GCC can find GAS.
The HP assembler should not be used with GCC. It is rarely tested and may not work. It shouldn't be used with any languages other than C due to its d431 2 a432 2
Specifically, -g does not work (HP-UX uses a peculiar debugging d436 3 a438 3 ‘make all-host all-target’ after getting the failure from ‘make’.
Various GCC features are not supported. For example, it does not support weak d442 2 a443 2
There are two default scheduling models for instructions. These are d445 1 a445 1 architecture specified for the target machine when configuring. d447 3 a449 3 the target is a ‘hppa1*’ machine.
The PROCESSOR_8000 model is not well suited to older processors. Thus, d454 3 a456 3
As of GCC 4.0, GCC uses the UNIX 95 namespace for HP-UX 10.10 through 11.00, and the UNIX 98 namespace for HP-UX 11.11 and later. d460 3 a462 3 in a number of ways. With HP cc, UNIX_STD can be set to ‘95’ or ‘98’. Another way is to add an appropriate set of predefines to CC. The description for the munix= option contains d464 6 a469 7
More specific information to ‘hppa*-hp-hpux*’ targets follows.
hppa*-hp-hpux10
d472 2 a473 2The C++ ABI has changed incompatibly in GCC 4.0. COMDAT subspaces are d477 4 a480 5
hppa*-hp-hpux11
d483 4 a486 4The libffi library haven't been ported to 64-bit HP-UX and doesn't build.
Refer to binaries for information about obtaining d488 1 a488 1 to build the Ada language as it cannot be bootstrapped using C. Ada is d490 3 a492 3
Starting with GCC 3.4 an ISO C compiler is required to bootstrap. The bundled compiler supports only traditional C; you will need either HP's d494 2 a495 2
It is possible to build GCC 3.3 starting with the bundled HP compiler, d497 7 a503 3 build later versions.
There are several possible approaches to building the distribution. d506 1 a506 1 first using the HP tools, then build binutils, then rebuild GCC. d509 2 a510 2
On 64-bit capable systems, there are two distinct targets. Different d512 3 a514 3 the same system. The ‘hppa[1-2]*-hp-hpux11*’ target generates code for the 32-bit PA-RISC runtime architecture and uses the HP linker. The ‘hppa64-hp-hpux11*’ target generates 64-bit code for the d516 11 a526 11
The script config.guess now selects the target type based on the compiler detected during configuration. You must define PATH or CC so that configure finds an appropriate compiler for the initial bootstrap. When CC is used, the definition should contain the options that are needed whenever CC is used.
Specifically, options that determine the runtime architecture must be in CC to correctly select the target for the build. It is also convenient to place many other compiler options in CC. For example, CC="cc -Ac +DA2.0W -Wp,-H16376 -D_CLASSIC_TYPES -D_HPUX_SOURCE" d528 2 a529 2 64-bit K&R/bundled mode. The +DA2.0W option will result in the automatic selection of the ‘hppa64-hp-hpux11*’ target. The d533 4 a536 4 -Ac option. These defines aren't necessary with -Ae.
It is best to explicitly configure the ‘hppa64-hp-hpux11*’ target with the --with-ld=... option. This overrides the standard d539 1 a539 1 result, it's not possible to switch linkers in the middle of a GCC build. d542 2 a543 2
A recent linker patch must be installed for the correct operation of d547 1 a547 1
PHSS_24304, might be usable but it hasn't been tested. These d550 2 a551 2The patches are necessary for the support of weak symbols on the d554 1 a554 1 to HP-UX 11, there are bugs in the linker support for secondary symbols. d558 2 a559 2
GCC 3.3 uses the ELF DT_INIT_ARRAY and DT_FINI_ARRAY capabilities to d561 1 a561 1 uses the linker +init and +fini options for the same d564 1 a564 1 problem on the 64-bit port resulting from HP's non-standard use of d566 3 a568 3
Although the HP and GNU linkers are both supported for the ‘hppa64-hp-hpux11*’ target, it is strongly recommended that the d570 3 a572 3
At this time, the GNU linker does not support the creation of long branch stubs. As a result, it cannot successfully link binaries d575 5 a579 5 with -static, and with dwarf2 unwind and exception support. It also doesn't provide stubs for internal calls to global functions in shared libraries, so these calls cannot be overloaded.
The HP dynamic loader does not support GNU symbol versioning, so symbol d581 8 a588 9 versioning with --disable-symvers when using GNU ld.
POSIX threads are the default. The optional DCE thread library is not supported, so --enable-threads=dce does not work.
*-*-linux-gnu
d592 5 a596 6
i?86-*-linux*
As of GCC 3.3, binutils 2.13.1 or later is required for this platform. d598 2 a599 2
If you receive Signal 11 errors when building on GNU/Linux, then it is d602 4 a605 5
i?86-*-solaris2.10
d607 5 a611 5 with GCC 4.7, there is also a 64-bit ‘amd64-*-solaris2.1[0-9]*’ or ‘x86_64-*-solaris2.1[0-9]*’ configuration that corresponds to ‘sparcv9-sun-solaris2*’.It is recommended that you configure GCC to use the GNU assembler. The d613 3 a615 3 /usr/sfw/bin/gas), and Solaris 11, from GNU binutils 2.19 or newer (also available as /usr/bin/gas and /usr/gnu/bin/as), work fine. Please note that the current d619 4 a622 5 versions of the Solaris assembler in /usr/ccs/bin/as work almost as well, though.
For linking, the Solaris linker, is preferred. If you want to use the GNU d624 1 a624 1 10, from GNU binutils 2.15 (in /usr/sfw/bin/gld), cannot be used, d626 1 a626 1 in /usr/gnu/bin/ld and /usr/bin/gld), works, as does the d628 9 a636 11
To use GNU as, configure with the options --with-gnu-as --with-as=/usr/sfw/bin/gas. It may be necessary to configure with --without-gnu-ld --with-ld=/usr/ccs/bin/ld to guarantee use of Sun ld.
ia64-*-linux
d639 3 a641 3If you are using the installed system libunwind library with --with-system-libunwind, then you must use libunwind 0.98 or d643 2 a644 2
None of the following versions of GCC has an ABI that is compatible d647 3 a649 3 3.1, 3.0.2, 3.0.1, 3.0, Red Hat 2.96, and Trillian 000717. This primarily affects C++ programs and programs that create shared libraries. GCC 3.1 or later is recommended for compiling linux, the kernel. d652 4 a655 5
ia64-*-hpux*
d658 6 a663 6 the option --with-gnu-as may be necessary.The GCC libunwind library has not been ported to HPUX. This means that for GCC versions 3.2.3 and earlier, --enable-libunwind-exceptions is required to build GCC. For GCC 3.3 and later, this is the default. For gcc 3.4.3 and later, --enable-libunwind-exceptions is d665 6 a670 7
*-ibm-aix*
Support for AIX version 3 and older was discontinued in GCC 3.4. d672 2 a673 2
“out of memory” bootstrap failures may indicate a problem with d675 3 a677 3 /etc/security/limits system configuration file.
GCC 4.9 and above require a C++ compiler for bootstrap. IBM VAC++ / xlC d680 2 a681 2
GCC can bootstrap with recent versions of IBM XLC, but bootstrapping d685 5 d691 2 a692 5
% LDR_CNTRL=MAXDATA=0x50000000 % export LDR_CNTRLOne can start with a pre-compiled version of GCC to build from sources. One may delete GCC's “fixed” header files when starting d694 8 d703 2 a704 7
To speed up the configuration phases of bootstrapping and installing GCC, one may use GNU Bash instead of AIX /bin/sh, e.g.,
% CONFIG_SHELL=/opt/freeware/bin/bash % export CONFIG_SHELLand then proceed as described in the build instructions, where we strongly recommend specifying an absolute path d706 2 a707 2
Because GCC on AIX is built as a 32-bit executable by default, d711 2 a712 2
Errors involving
allocawhen building GCC generally are due d715 5 a719 5 the build, the native AIX compiler must be invoked as cc (not xlc). Once configure has been informed of xlc, one needs to use ‘make distclean’ to remove the configure cache files and ensure that CC environment variable does not provide a definition that will confuse configure. d722 2 a723 2The native as and ld are recommended for d726 1 a726 1 AIX 5. The GNU Assembler has not been updated to support AIX 6 or d728 2 a729 2
AIX 7.1 added partial support for DWARF debugging, but full support d734 2 a735 2
AIX 5.3 TL10, AIX 6.1 TL05 and AIX 7.1 TL00 introduced an AIX d743 2 a744 2
Building libstdc++.a requires a fix for an AIX Assembler bug d748 3 a750 3
‘libstdc++’ in GCC 3.4 increments the major version number of the shared object and GCC installation places the libstdc++.a d754 3 a756 3 versions of the ‘libstdc++’ shared object needs to be available to the AIX runtime loader. The GCC 3.1 ‘libstdc++.so.4’, if present, and GCC 3.3 ‘libstdc++.so.5’ shared objects can be d758 8 a765 2 the ‘F_LOADONLY’ flag in the shared object for each multilib libstdc++.a installed: d767 1 a767 5
Extract the shared objects from the currently installed libstdc++.a archive:
% ar -x libstdc++.a libstdc++.so.4 libstdc++.so.5Enable the ‘F_LOADONLY’ flag so that the shared object will be d769 12 a780 8
% strip -e libstdc++.so.4 libstdc++.so.5Archive the runtime-only shared object in the GCC 3.4 libstdc++.a archive:
% ar -q libstdc++.a libstdc++.so.4 libstdc++.so.5Eventually, the --with-aix-soname=svr4 d783 2 a784 2
Linking executables and shared libraries may produce warnings of d790 2 a791 2
AIX 4.3 utilizes a “large format” archive to support both 32-bit and d793 1 a793 1 to parse archive libraries did not handle the new format correctly. d796 1 a796 1 with AIX 4.3.1 should work for a 32-bit environment. The -g d800 3 a802 3
Some versions of the AIX binder (linker) can fail with a relocation overflow severe error when the -bbigtoc option is used to link d808 2 a809 2
The AIX 4.3.2.1 linker (bos.rte.bind_cmds Level 4.3.2.1) will dump core d814 2 a815 2
The initial assembler shipped with AIX 4.3.0 generates incorrect object d820 2 a821 2
AIX provides National Language Support (NLS). Compilers and assemblers d823 1 a823 1 formats including floating-point numbers (e.g., ‘.’ vs ‘,’ for d826 9 a834 10 expects. If one encounters this problem, set the LANG environment variable to ‘C’ or ‘En_US’.
A default can be specified with the -mcpu=cpu_type switch and using the configure option --with-cpu-cpu_type.
iq2000-*-elf
d837 5 a841 6
lm32-*-elf
Lattice Mico32 processor. d843 5 a847 6
lm32-*-uclinux
Lattice Mico32 processor. d849 5 a853 6
m32c-*-elf
Renesas M32C processor. d855 5 a859 6
m32r-*-elf
Renesas M32R processor. d861 4 a864 5
m68k-*-*
d866 2 a867 2 ‘m68k-*-elf*’, ‘m68k-*-rtems’, ‘m68k-*-uclinux’ and ‘m68k-*-linux’ d870 3 a872 3 --with-arch=m68k to configure. Alternatively, you can omit the M680x0 libraries by passing --with-arch=cf to configure. These targets default to 5206 or 5475 code as d874 4 a877 4 configured with --with-arch=cf and 68020 code otherwise.The ‘m68k-*-netbsd’ and ‘m68k-*-openbsd’ targets also support the --with-arch d879 13 a891 14 --with-arch=cf and 68020 code otherwise.
You can override the default processors listed above by configuring with --with-cpu=target. This target can either be a -mcpu argument or one of the following values: ‘m68000’, ‘m68010’, ‘m68020’, ‘m68030’, ‘m68040’, ‘m68060’, ‘m68020-40’ and ‘m68020-60’.
GCC requires at least binutils version 2.17 on these targets.
m68k-*-uclinux
d893 1 a893 1 ‘m68k-linux-gnu’ ABI rather than the ‘m68k-elf’ ABI. d896 11 a906 6
microblaze-*-elf
Xilinx MicroBlaze processor. d908 4 a911 5
mips-*-*
d913 1 a913 1 sections for all it's [sic] sectons [sic]”, don't worry about it. This d917 2 a918 2It would be nice to extend GAS to produce the gp tables, but they are d920 2 a921 2
The libstdc++ atomic locking routines for MIPS targets requires MIPS II d923 3 a925 3 make ‘mips*-*-*’ use the generic implementation instead. You can also configure for ‘mipsel-elf’ as a workaround. The ‘mips*-*-linux*’ target continues to use the MIPS II routines. More d927 1 d929 4 a932 6
The built-in
__sync_*functions are available on MIPS II and later systems and others that support the ‘ll’, ‘sc’ and ‘sync’ instructions. This can be overridden by passing --with-llsc or --without-llsc when configuring GCC. d934 4 a937 4 missing, the default for ‘mips*-*-linux*’ targets is --with-llsc. The --with-llsc and --without-llsc configure options may be overridden at compile time by passing the -mllsc or -mno-llsc options to d939 3 a941 3MIPS systems check for division by zero (unless -mno-check-zero-division is passed to the compiler) by d946 2 a947 2 the use of break, use the --with-divide=breaks configure option when configuring GCC. The default is to d949 12 a960 5
mips-sgi-irix5
d962 4 a965 5
mips-sgi-irix6
d969 4 a972 5
moxie-*-elf
d974 5 a978 6
msp430-*-elf
TI MSP430 processor. d980 4 a983 5
nds32le-*-elf
d985 4 a988 5
nds32be-*-elf
d990 4 a993 5
nvptx-*-none
d995 3 a997 3Instead of GNU binutils, you will need to install nvptx-tools. d999 4 a1002 4 --with-build-time-tools=[install-nvptx-tools]/nvptx-none/bin.
A nvptx port of newlib is available at nvptx-newlib. d1004 1 a1004 1 symbolic link to nvptx-newlib's newlib directory to the d1006 17 a1022 17
Use the --disable-sjlj-exceptions and --enable-newlib-io-long-long options when configuring.
powerpc-*-*
You can specify a default version for the -mcpu=cpu_type switch by using the configure option --with-cpu-cpu_type.
You will need GNU binutils 2.15 or newer.
powerpc-*-darwin*
d1024 2 a1025 2Pre-installed versions of Mac OS X may not include any developer tools, d1028 3 a1030 3 https://opensource.apple.com.
This version of GCC requires at least cctools-590.36. The d1034 4 a1037 5
powerpc-*-elf
d1039 4 a1042 5
powerpc*-*-linux-gnu*
d1044 4 a1047 5
powerpc-*-netbsd*
d1049 4 a1052 5
powerpc-*-eabisim
d1055 4 a1058 5
powerpc-*-eabi
d1060 4 a1063 5
powerpcle-*-elf
d1065 4 a1068 5
powerpcle-*-eabisim
d1071 4 a1074 5
powerpcle-*-eabi
d1076 5 a1080 6
rl78-*-elf
The Renesas RL78 processor. d1082 11 a1092 45
riscv32-*-elf
The RISC-V RV32 instruction set. This configuration is intended for embedded systems. This (and all other RISC-V) targets are supported upstream as of the binutils 2.28 release.
riscv32-*-linux
The RISC-V RV32 instruction set running GNU/Linux. This (and all other RISC-V) targets are supported upstream as of the binutils 2.28 release.
riscv64-*-elf
The RISC-V RV64 instruction set. This configuration is intended for embedded systems. This (and all other RISC-V) targets are supported upstream as of the binutils 2.28 release.
riscv64-*-linux
The RISC-V RV64 instruction set running GNU/Linux. This (and all other RISC-V) targets are supported upstream as of the binutils 2.28 release.
rx-*-elf
The Renesas RX processor.
s390-*-linux*
d1094 4 a1097 5
s390x-*-linux*
d1099 4 a1102 5
s390x-ibm-tpf*
d1105 4 a1108 9
*-*-solaris2*
d1112 2 a1113 2Sun does not ship a C compiler with Solaris 2 before Solaris 10, though d1115 1 a1115 1 11, GCC 3.4.3 is available as /usr/sfw/bin/gcc. Solaris 11 d1117 1 a1117 1 /usr/gcc/4.5/bin/gcc or similar. Alternatively, d1120 9 d1130 1 a1130 8
The Solaris 2 /bin/sh will often fail to configure ‘libstdc++-v3’or ‘boehm-gc’. We therefore recommend using the following initial sequence of commands
% CONFIG_SHELL=/bin/ksh % export CONFIG_SHELLand proceed as described in the configure instructions. d1132 3 a1134 3 srcdir/configure.
Solaris 10 comes with a number of optional OS packages. Some of these d1139 1 a1139 1 the packages that GCC needs are installed. d1141 2 a1142 2 the pkginfo command. To add an optional package, use the pkgadd command. For further details, see the Solaris 10 d1144 2 a1145 2
Starting with Solaris 11, the package management has changed, so you d1148 4 a1151 4 packages is done with the pkg command now.
Trying to use the linker and other tools in /usr/ucb to install GCC has been observed to cause trouble. d1153 8 a1160 8 /usr/ucb from your PATH.
The build process works more smoothly with the legacy Sun tools so, if you have /usr/xpg4/bin in your PATH, we recommend that you place /usr/bin before /usr/xpg4/bin for the duration of the build.
We recommend the use of the Solaris assembler or the GNU assembler, in conjunction with the Solaris linker. The GNU as d1162 3 a1164 3 /usr/sfw/bin/gas), and Solaris 11, from GNU binutils 2.19 or newer (also in /usr/bin/gas and /usr/gnu/bin/as), are known to work. d1169 4 a1172 5 combination GNU as + Sun ld should reasonably work, the reverse combination Sun as + GNU ld may fail to build or cause memory corruption at runtime in some cases for C++ programs. GNU ld usually works as well, although the version included in d1175 8 a1182 8 features, so better stay with Solaris ld. To use the LTO linker plugin (-fuse-linker-plugin) with GNU ld, GNU binutils must be configured with --enable-largefile.
To enable symbol versioning in ‘libstdc++’ with the Solaris linker, you need to have any version of GNU c++filt, which is part of GNU binutils. ‘libstdc++’ symbol versioning will be disabled if no appropriate version is found. Solaris c++filt from the Solaris d1184 7 a1190 4
Sun bug 4927647 sometimes causes random spurious testsuite failures related to missing diagnostic output. This bug doesn't affect GCC itself, rather it is a kernel bug triggered by the expect d1192 1 a1192 1 causes the expect program to miss anticipated output, extra d1194 4 a1197 5
sparc*-*-*
d1201 2 a1202 2Newer versions of the GNU Multiple Precision Library (GMP), the MPFR d1207 4 a1210 5
sparc-sun-solaris2*
d1212 1 a1212 1 produced are smaller than the ones produced using Sun's native tools; d1215 2 a1216 2Starting with Solaris 7, the operating system is capable of executing d1218 1 a1218 1 this; the -m64 option enables 64-bit code generation. d1220 1 a1220 1 should try the -mtune=ultrasparc option instead, which produces d1223 2 a1224 2
When configuring the GNU Multiple Precision Library (GMP), the MPFR d1226 2 a1227 2 target triplet must be specified as the build parameter on the configure line. This target triplet can be obtained by invoking ./config.guess in the toplevel source directory of GCC (and d1229 8 a1236 7
% ./configure --build=sparc-sun-solaris2.9 --prefix=xxx
sparc-sun-solaris2.10
d1239 20 a1258 14ld: fatal: relocation error: R_SPARC_TLS_LE_HIX22: file /var/tmp//ccamPA1v.o: symbol <unknown>: bad symbol type SECT: symbol type must be TLSThis bug is fixed in Sun patch 118683-03 or later.
sparc-*-linux*
sparc64-*-solaris2*
d1261 1 a1261 1 as the build parameter on the configure line. For example d1263 13 a1275 13% ./configure --build=sparc64-sun-solaris2.9 --prefix=xxx
sparcv9-*-solaris2*
This is a synonym for ‘sparc64-*-solaris2*’.
c6x-*-*
d1277 4 a1280 5
tilegx-*-linux*
d1283 4 a1286 5
tilegxbe-*-linux*
d1289 4 a1292 5
tilepro-*-linux*
d1295 5 a1299 6
visium-*-elf
CDS VISIUMcore processor. d1301 4 a1304 5
*-*-vxworks*
d1306 2 a1307 2 very recent VxWorks 5.5 (aka Tornado 2.2) release, and only on PowerPC. We welcome patches for other architectures supported by VxWorks 5.5. d1312 12 a1323 12VxWorks comes with an older version of GCC installed in $WIND_BASE/host; we recommend you do not overwrite it. Choose an installation prefix entirely outside $WIND_BASE. Before running configure, create the directories prefix and prefix/bin. Link or copy the appropriate assembler, linker, etc. into prefix/bin, and set your PATH to include that directory while running both configure and make.
You must give configure the --with-headers=$WIND_BASE/target/h switch so that it can d1325 4 a1328 4 target only, you must also specify --target=target. configure will attempt to create the directory prefix/target/sys-include and copy files into it; make sure the user running configure has sufficient privilege d1330 3 a1332 3
GCC's exception handling runtime requires a special “configlette” module, contrib/gthr_supp_vxw_5x.c. Follow the instructions in d1335 4 a1338 5
x86_64-*-*, amd64-*-*
d1340 1 a1340 1 (amd64-*-* is an alias for x86_64-*-*) on GNU/Linux, FreeBSD and NetBSD. d1342 5 a1346 6 both 64-bit x86-64 and 32-bit x86 code (via the -m32 switch).
x86_64-*-solaris2.1[0-9]*
d1348 1 a1348 1 processor (‘amd64-*-*’ is an alias for ‘x86_64-*-*’) on d1351 1 a1351 1 can generate 64-bit x86-64 code with the -m64 switch. Since d1353 8 a1360 9 can generate 32-bit code with -m32. To configure and build this way, you have to provide all support libraries like libgmp as 64-bit code, configure with --target=x86_64-pc-solaris2.1x and ‘CC=gcc -m64’.
xtensa*-*-elf
d1362 1 a1362 1 ‘newlib’ C library. It uses ELF but does not support shared d1366 3 a1368 3The Xtensa configuration information must be specified prior to building GCC. The include/xtensa-config.h header d1373 4 a1376 5
xtensa*-*-linux*
d1380 1 a1380 1 -fpic or -fPIC options are used. In other d1382 5 a1386 7 ‘xtensa*-*-elf’ target.
Microsoft Windows
Intel 16-bit versions
d1388 2 d1392 2 a1393 2However, the 32-bit port has limited support for Microsoft d1395 3 a1397 3
Intel 32-bit versions
d1402 11 d1414 2 a1415 11
- Cygwin *-*-cygwin: Cygwin provides a user-space Linux API emulation layer in the Win32 subsystem.
- MinGW *-*-mingw32: MinGW is a native GCC port for the Win32 subsystem that provides a subset of POSIX.
- MKS i386-pc-mks: NuTCracker from MKS. See http://www.mkssoftware.com/ for more information.
Intel 64-bit versions
d1417 1 a1417 1 runtime library, available from http://mingw-w64.org/doku.php. d1419 5 a1423 5Presently Windows for Itanium is not supported.
Windows CE
d1426 3 a1428 3Other Windows Platforms
d1430 2 a1431 2GCC no longer supports the Windows POSIX subsystem. However, it does d1433 4 a1436 4
Old target names including *-*-winnt and *-*-windowsnt are no longer used.
PW32 (i386-pc-pw32) support was never completed, and the project seems to d1438 6 a1443 7
UWIN support has been removed due to a lack of maintenance.
*-*-cygwin
d1446 5 a1450 5GCC will build under Cygwin without modification; it does not build with Microsoft's C++ compiler and there are no plans to make it do so.
The Cygwin native compiler can be configured to target any 32-bit x86 d1455 13 a1467 6
*-*-mingw32
GCC will build with and support only MinGW runtime 3.12 and later. d1470 4 a1473 5
Older systems
d1478 2 a1479 2Starting with GCC 3.1, each release has a list of “obsoleted” systems. d1481 1 a1481 1 configure will fail unless the --enable-obsolete d1484 2 a1485 2
Support for old systems as hosts for GCC can cause problems if the d1492 3 a1494 2 old-releases directory on the GCC mirror sites. Header bugs may generally be avoided using fixincludes, but bugs or deficiencies in libraries and the d1496 2 a1497 2
Support for older systems as targets for cross-compilation is less d1505 6 a1510 6
For some systems, old versions of GNU binutils may also be useful, and are available from pub/binutils/old-releases on sourceware.org mirror sites.
Some of the information on specific systems above relates to d1514 4 a1517 5
all ELF targets (SVR4, Solaris 2, etc.)
d1522 1 d1524 2 a1525 1
d1527 5 a1532 5 d1534 2 @ 1.6 log @merge GCC 5.5.0. this does not include updated man/info pages (yet). @ text @d1 10 a10 3Installing GCC d47 4 a50 33 d52 76 d129 2 a130 5Installing GCC
d132 1 d134 3 d138 9 d148 10 d159 1 d161 1 d163 4 d168 4 d173 1 d175 1 d177 3 d181 4 d186 1 d188 1 d190 1 d192 1 d194 1 d196 3 d200 1 d202 1 d204 1 d206 1 d208 1 a208 5 a209 162Please read this document carefully before installing the GNU Compiler Collection on your machine.
Note that this list of install notes is not a list of supported hosts or targets. Not all supported hosts and targets are listed here, only the ones that require host-specific or target-specific information have to.
- aarch64*-*-*
- alpha*-*-*
- alpha*-dec-osf5.1
- amd64-*-solaris2.10
- arm-*-eabi
- avr
- Blackfin
- DOS
- *-*-freebsd*
- h8300-hms
- hppa*-hp-hpux*
- hppa*-hp-hpux10
- hppa*-hp-hpux11
- *-*-linux-gnu
- i?86-*-linux*
- i?86-*-solaris2.10
- ia64-*-linux
- ia64-*-hpux*
- *-ibm-aix*
- iq2000-*-elf
- lm32-*-elf
- lm32-*-uclinux
- m32c-*-elf
- m32r-*-elf
- m68k-*-*
- m68k-uclinux
- mep-*-elf
- microblaze-*-elf
- mips-*-*
- mips-sgi-irix5
- mips-sgi-irix6
- nds32le-*-elf
- nds32be-*-elf
- nvptx-*-none
- powerpc*-*-*
- powerpc-*-darwin*
- powerpc-*-elf
- powerpc*-*-linux-gnu*
- powerpc-*-netbsd*
- powerpc-*-eabisim
- powerpc-*-eabi
- powerpcle-*-elf
- powerpcle-*-eabisim
- powerpcle-*-eabi
- s390-*-linux*
- s390x-*-linux*
- s390x-ibm-tpf*
- *-*-solaris2*
- sparc*-*-*
- sparc-sun-solaris2*
- sparc-sun-solaris2.10
- sparc-*-linux*
- sparc64-*-solaris2*
- sparcv9-*-solaris2*
- c6x-*-*
- tilegx-*-linux*
- tilegxbe-*-linux*
- tilepro-*-linux*
- visium-*-elf
- *-*-vxworks*
- x86_64-*-*, amd64-*-*
- x86_64-*-solaris2.1[0-9]*
- xtensa*-*-elf
- xtensa*-*-linux*
- Microsoft Windows
- *-*-cygwin
- *-*-interix
- *-*-mingw32
- OS/2
- Older systems
- all ELF targets (SVR4, Solaris 2, etc.)
aarch64*-*-*
Binutils pre 2.24 does not have support for selecting -mabi and does not support ILP32. If it is used to build GCC 4.9 or later, GCC will not support option -mabi=ilp32.
To enable a workaround for the Cortex-A53 erratum number 835769 by default (for all CPUs regardless of -mcpu option given) at configure time use the --enable-fix-cortex-a53-835769 option. This will enable the fix by default and can be explicitly disabled during compilation by passing the -mno-fix-cortex-a53-835769 option. Conversely, --disable-fix-cortex-a53-835769 will disable the workaround by default. The workaround is disabled by default if neither of --enable-fix-cortex-a53-835769 or --disable-fix-cortex-a53-835769 is given at configure time.
To enable a workaround for the Cortex-A53 erratum number 843419 by default (for all CPUs regardless of -mcpu option given) at configure time use the --enable-fix-cortex-a53-843419 option. This workaround is applied at link time. Enabling the workaround will cause GCC to pass the relevant option to the linker. It can be explicitly disabled during compilation by passing the -mno-fix-cortex-a53-843419 option. Conversely, --disable-fix-cortex-a53-843419 will disable the workaround by default. The workaround is disabled by default if neither of --enable-fix-cortex-a53-843419 or --disable-fix-cortex-a53-843419 is given at configure time.
alpha*-*-*
This section contains general configuration information for all alpha-based platforms using ELF (in particular, ignore this section for DEC OSF/1, Digital UNIX and Tru64 UNIX). In addition to reading this section, please read all other sections that match your target.
We require binutils 2.11.2 or newer. Previous binutils releases had a number of problems with DWARF 2 debugging information, not the least of which is incorrect linking of shared libraries.
alpha*-dec-osf5.1
Systems using processors that implement the DEC Alpha architecture and are running the DEC/Compaq/HP Unix (DEC OSF/1, Digital UNIX, or Compaq/HP Tru64 UNIX) operating system, for example the DEC Alpha AXP systems.
Support for Tru64 UNIX V5.1 has been removed in GCC 4.8. As of GCC 4.6, support for Tru64 UNIX V4.0 and V5.0 has been removed. As of GCC 3.2, versions before
alpha*-dec-osf4are no longer supported. (These are the versions which identify themselves as DEC OSF/1.)
amd64-*-solaris2.1[0-9]*
This is a synonym for ‘x86_64-*-solaris2.1[0-9]*’.
arc-*-elf32
Use ‘configure --target=arc-elf32 --with-cpu=cpu --enable-languages="c,c++"’ to configure GCC, with cpu being one of ‘arc600’, ‘arc601’, or ‘arc700’.
arc-linux-uclibc
Use ‘configure --target=arc-linux-uclibc --with-cpu=arc700 --enable-languages="c,c++"’ to configure GCC.
arm-*-eabi
d214 9 a222 4
avr
d224 1 a224 1 applications. There are no standard Unix configurations. d227 4 a230 4Use ‘configure --target=avr --enable-languages="c"’ to configure GCC.
Further installation notes and other useful information about AVR tools d232 18 a249 19
We strongly recommend using binutils 2.13 or newer.
The following error:
Error: register requiredindicates that you should upgrade to a newer version of the binutils.
Blackfin
The Blackfin processor, an Analog Devices DSP. d251 2 a252 2
More information, and a version of binutils with support for this processor, d254 5 a258 4
CR16
a260 1 d262 12 a273 11See “CR16 Options” in the main manual for a list of CR16-specific options.
Use ‘configure --target=cr16-elf --enable-languages=c,c++’ to configure GCC for building a CR16 elf cross-compiler.
Use ‘configure --target=cr16-uclinux --enable-languages=c,c++’ to configure GCC for building a CR16 uclinux cross-compiler.
CRIS
d276 2 a277 2See “CRIS Options” in the main manual d279 7 a285 11
There are a few different CRIS targets:
cris-axis-elfMainly for monolithic embedded systems. Includes a multilib for the ‘v10’ core used in ‘ETRAX 100 LX’.
cris-axis-linux-gnu- d288 1 a288 1
A GNU/Linux port for the CRIS architecture, currently targeting ‘ETRAX 100 LX’ by default.
For
cris-axis-elfyou need binutils 2.11 d290 2 a291 2Pre-packaged tools can be obtained from d295 5 a299 4
DOS
d301 2 a302 2You cannot install GCC by itself on MSDOS; it will not compile under d306 6 a311 5
epiphany-*-elf
Adapteva Epiphany. d313 5 a317 4
*-*-freebsd*
d321 2 a322 2In order to better utilize FreeBSD base system functionality and match d327 1 a327 1 libgcc_s.so.1 and boehm-gc (on FreeBSD 7 or later) is enabled d329 4 a332 4
We support FreeBSD using the ELF file format with DWARF 2 debugging for all CPU architectures. You may use -gstabs instead of -g, if you really want the old debugging format. There are d336 1 a336 1 GCC. In particular, --enable-threads is now configured by d342 2 a343 2
The version of binutils installed in /usr/bin probably works d345 1 a345 1 binutils and/or the version found in /usr/ports/devel/binutils has d350 12 a361 4
h8300-hms
d363 4 a366 4Please have a look at the binaries page.
The calling convention and structure layout has changed in release 2.6. d370 5 a374 4
hppa*-hp-hpux*
d376 2 a377 2We require using gas/binutils on all hppa platforms. Version 2.19 or d379 7 a385 7
It may be helpful to configure GCC with the --with-gnu-as and --with-as=… options to ensure that GCC can find GAS.
The HP assembler should not be used with GCC. It is rarely tested and may not work. It shouldn’t be used with any languages other than C due to its d387 2 a388 2
Specifically, -g does not work (HP-UX uses a peculiar debugging d392 3 a394 3 ‘make all-host all-target’ after getting the failure from ‘make’.
Various GCC features are not supported. For example, it does not support weak d398 2 a399 2
There are two default scheduling models for instructions. These are d401 1 a401 1 architecture specified for the target machine when configuring. d403 3 a405 3 the target is a ‘hppa1*’ machine.
The PROCESSOR_8000 model is not well suited to older processors. Thus, d410 3 a412 3
As of GCC 4.0, GCC uses the UNIX 95 namespace for HP-UX 10.10 through 11.00, and the UNIX 98 namespace for HP-UX 11.11 and later. d416 3 a418 3 in a number of ways. With HP cc,
UNIX_STDcan be set to ‘95’ or ‘98’. Another way is to add an appropriate set of predefines toCC. The description for the munix= option contains d420 7 a426 6More specific information to ‘hppa*-hp-hpux*’ targets follows.
hppa*-hp-hpux10
d429 2 a430 2The C++ ABI has changed incompatibly in GCC 4.0. COMDAT subspaces are d434 5 a438 4
hppa*-hp-hpux11
d441 4 a444 4The libffi and libjava libraries haven’t been ported to 64-bit HP-UX and don’t build.
Refer to binaries for information about obtaining d446 1 a446 1 to build the Ada language as it can’t be bootstrapped using C. Ada is d448 3 a450 3
Starting with GCC 3.4 an ISO C compiler is required to bootstrap. The bundled compiler supports only traditional C; you will need either HP’s d452 2 a453 2
It is possible to build GCC 3.3 starting with the bundled HP compiler, d456 1 a456 1 can’t be built with the HP bundled compiler. This problem can be d458 1 a458 1 --enable-languages="c,c++,f77,objc" option in your configure d460 2 a461 2
There are several possible approaches to building the distribution. d464 1 a464 1 first using the HP tools, then build binutils, then rebuild GCC. d467 2 a468 2
On 64-bit capable systems, there are two distinct targets. Different d470 3 a472 3 the same system. The ‘hppa[1-2]*-hp-hpux11*’ target generates code for the 32-bit PA-RISC runtime architecture and uses the HP linker. The ‘hppa64-hp-hpux11*’ target generates 64-bit code for the d474 11 a484 11
The script config.guess now selects the target type based on the compiler detected during configuration. You must define
PATHorCCso that configure finds an appropriate compiler for the initial bootstrap. WhenCCis used, the definition should contain the options that are needed wheneverCCis used.Specifically, options that determine the runtime architecture must be in
CCto correctly select the target for the build. It is also convenient to place many other compiler options inCC. For example,CC="cc -Ac +DA2.0W -Wp,-H16376 -D_CLASSIC_TYPES -D_HPUX_SOURCE"d486 2 a487 2 64-bit K&R/bundled mode. The +DA2.0W option will result in the automatic selection of the ‘hppa64-hp-hpux11*’ target. The d491 4 a494 4 -Ac option. These defines aren’t necessary with -Ae.It is best to explicitly configure the ‘hppa64-hp-hpux11*’ target with the --with-ld=… option. This overrides the standard d497 1 a497 1 result, it’s not possible to switch linkers in the middle of a GCC build. d500 2 a501 2
A recent linker patch must be installed for the correct operation of d505 1 a505 1
PHSS_24304, might be usable but it hasn’t been tested. These d508 2 a509 2The patches are necessary for the support of weak symbols on the d512 1 a512 1 to HP-UX 11, there are bugs in the linker support for secondary symbols. d516 2 a517 2
GCC 3.3 uses the ELF DT_INIT_ARRAY and DT_FINI_ARRAY capabilities to d519 1 a519 1 uses the linker +init and +fini options for the same d522 1 a522 1 problem on the 64-bit port resulting from HP’s non-standard use of d524 3 a526 3
Although the HP and GNU linkers are both supported for the ‘hppa64-hp-hpux11*’ target, it is strongly recommended that the d528 3 a530 3
At this time, the GNU linker does not support the creation of long branch stubs. As a result, it can’t successfully link binaries d533 5 a537 5 with -static, and with dwarf2 unwind and exception support. It also doesn’t provide stubs for internal calls to global functions in shared libraries, so these calls can’t be overloaded.
The HP dynamic loader does not support GNU symbol versioning, so symbol d539 9 a547 8 versioning with --disable-symvers when using GNU ld.
POSIX threads are the default. The optional DCE thread library is not supported, so --enable-threads=dce does not work.
*-*-linux-gnu
d551 6 a556 5
i?86-*-linux*
As of GCC 3.3, binutils 2.13.1 or later is required for this platform. d558 2 a559 2
If you receive Signal 11 errors when building on GNU/Linux, then it is d562 5 a566 4
i?86-*-solaris2.10
d568 33 a600 25 with GCC 4.7, there is also a 64-bit ‘amd64-*-solaris2.1[0-9]*’ or ‘x86_64-*-solaris2.1[0-9]*’ configuration that corresponds to ‘sparcv9-sun-solaris2*’.It is recommended that you configure GCC to use the GNU assembler, in /usr/sfw/bin/gas. The versions included in Solaris 10, from GNU binutils 2.15, and Solaris 11, from GNU binutils 2.19, work fine, although the current version, from GNU binutils 2.22, is known to work, too. Recent versions of the Sun assembler in /usr/ccs/bin/as work almost as well, though.
For linking, the Sun linker, is preferred. If you want to use the GNU linker instead, which is available in /usr/sfw/bin/gld, note that due to a packaging bug the version in Solaris 10, from GNU binutils 2.15, cannot be used, while the version in Solaris 11, from GNU binutils 2.19, works, as does the latest version, from GNU binutils 2.22.
To use GNU
as, configure with the options --with-gnu-as --with-as=/usr/sfw/bin/gas. It may be necessary to configure with --without-gnu-ld --with-ld=/usr/ccs/bin/ld to guarantee use of Sunld.
ia64-*-linux
d603 3 a605 3If you are using the installed system libunwind library with --with-system-libunwind, then you must use libunwind 0.98 or d607 2 a608 2
None of the following versions of GCC has an ABI that is compatible d611 3 a613 3 3.1, 3.0.2, 3.0.1, 3.0, Red Hat 2.96, and Trillian 000717. This primarily affects C++ programs and programs that create shared libraries. GCC 3.1 or later is recommended for compiling linux, the kernel. d616 5 a620 4
ia64-*-hpux*
d623 6 a628 6 the option --with-gnu-as may be necessary.The GCC libunwind library has not been ported to HPUX. This means that for GCC versions 3.2.3 and earlier, --enable-libunwind-exceptions is required to build GCC. For GCC 3.3 and later, this is the default. For gcc 3.4.3 and later, --enable-libunwind-exceptions is d630 7 a636 6
*-ibm-aix*
Support for AIX version 3 and older was discontinued in GCC 3.4. d638 2 a639 2
“out of memory” bootstrap failures may indicate a problem with d641 7 a647 3 /etc/security/limits system configuration file.
GCC can bootstrap with recent versions of IBM XLC, but bootstrapping a650 5
d652 5 a656 2% LDR_CNTRL=MAXDATA=0x50000000 % export LDR_CNTRLOne can start with a pre-compiled version of GCC to build from sources. One may delete GCC’s “fixed” header files when starting a657 8
To speed up the configuration phases of bootstrapping and installing GCC, one may use GNU Bash instead of AIX
/bin/sh, e.g.,d659 7 a665 2% CONFIG_SHELL=/opt/freeware/bin/bash % export CONFIG_SHELLand then proceed as described in the build instructions, where we strongly recommend specifying an absolute path d667 2 a668 2
Because GCC on AIX is built as a 32-bit executable by default, d672 2 a673 2
Errors involving
allocawhen building GCC generally are due d676 5 a680 5 the build, the native AIX compiler must be invoked ascc(notxlc). Onceconfigurehas been informed ofxlc, one needs to use ‘make distclean’ to remove the configure cache files and ensure thatCCenvironment variable does not provide a definition that will confuseconfigure. d683 2 a684 2The native
asandldare recommended for d687 1 a687 1 AIX 5. The GNU Assembler has not been updated to support AIX 6 or d689 8 a696 2AIX 5.3 TL10, AIX 6.1 TL05 and AIX 7.1 TL00 introduced an AIX d704 2 a705 2
Building libstdc++.a requires a fix for an AIX Assembler bug d709 3 a711 3
‘libstdc++’ in GCC 3.4 increments the major version number of the shared object and GCC installation places the libstdc++.a d715 3 a717 3 versions of the ‘libstdc++’ shared object needs to be available to the AIX runtime loader. The GCC 3.1 ‘libstdc++.so.4’, if present, and GCC 3.3 ‘libstdc++.so.5’ shared objects can be d719 2 a720 8 the ‘F_LOADONLY’ flag in the shared object for each multilib libstdc++.a installed:
Extract the shared objects from the currently installed libstdc++.a archive:
d722 5 a726 1% ar -x libstdc++.a libstdc++.so.4 libstdc++.so.5Enable the ‘F_LOADONLY’ flag so that the shared object will be d728 8 a735 12
% strip -e libstdc++.so.4 libstdc++.so.5Archive the runtime-only shared object in the GCC 3.4 libstdc++.a archive:
% ar -q libstdc++.a libstdc++.so.4 libstdc++.so.5Eventually, the --with-aix-soname=svr4 d738 2 a739 2
Linking executables and shared libraries may produce warnings of d745 2 a746 2
AIX 4.3 utilizes a “large format” archive to support both 32-bit and d748 1 a748 1 to parse archive libraries did not handle the new format correctly. d751 1 a751 1 with AIX 4.3.1 should work for a 32-bit environment. The -g d755 3 a757 3
Some versions of the AIX binder (linker) can fail with a relocation overflow severe error when the -bbigtoc option is used to link d763 2 a764 2
The AIX 4.3.2.1 linker (bos.rte.bind_cmds Level 4.3.2.1) will dump core d769 2 a770 2
The initial assembler shipped with AIX 4.3.0 generates incorrect object d775 2 a776 2
AIX provides National Language Support (NLS). Compilers and assemblers d778 1 a778 1 formats including floating-point numbers (e.g., ‘.’ vs ‘,’ for d781 10 a790 9 expects. If one encounters this problem, set the
LANGenvironment variable to ‘C’ or ‘En_US’.A default can be specified with the -mcpu=cpu_type switch and using the configure option --with-cpu-cpu_type.
iq2000-*-elf
d793 6 a798 5
lm32-*-elf
Lattice Mico32 processor. d800 6 a805 5
lm32-*-uclinux
Lattice Mico32 processor. d807 6 a812 5
m32c-*-elf
Renesas M32C processor. d814 6 a819 5
m32r-*-elf
Renesas M32R processor. d821 5 a825 4
m68k-*-*
d827 2 a828 2 ‘m68k-*-elf*’, ‘m68k-*-rtems’, ‘m68k-*-uclinux’ and ‘m68k-*-linux’ d831 3 a833 3 --with-arch=m68k toconfigure. Alternatively, you can omit the M680x0 libraries by passing --with-arch=cf toconfigure. These targets default to 5206 or 5475 code as d835 4 a838 4 configured with --with-arch=cf and 68020 code otherwise.The ‘m68k-*-netbsd’ and ‘m68k-*-openbsd’ targets also support the --with-arch d840 14 a853 13 --with-arch=cf and 68020 code otherwise.
You can override the default processors listed above by configuring with --with-cpu=target. This target can either be a -mcpu argument or one of the following values: ‘m68000’, ‘m68010’, ‘m68020’, ‘m68030’, ‘m68040’, ‘m68060’, ‘m68020-40’ and ‘m68020-60’.
GCC requires at least binutils version 2.17 on these targets.
m68k-*-uclinux
d855 1 a855 1 ‘m68k-linux-gnu’ ABI rather than the ‘m68k-elf’ ABI. d858 6 a863 5
mep-*-elf
Toshiba Media embedded Processor. d865 6 a870 5
microblaze-*-elf
Xilinx MicroBlaze processor. d872 5 a876 4
mips-*-*
d878 1 a878 1 sections for all it’s [sic] sectons [sic]”, don’t worry about it. This d882 2 a883 2It would be nice to extend GAS to produce the gp tables, but they are d885 2 a886 2
The libstdc++ atomic locking routines for MIPS targets requires MIPS II d888 3 a890 3 make ‘mips*-*-*’ use the generic implementation instead. You can also configure for ‘mipsel-elf’ as a workaround. The ‘mips*-*-linux*’ target continues to use the MIPS II routines. More a891 1
d893 6 a898 4The built-in
__sync_*functions are available on MIPS II and later systems and others that support the ‘ll’, ‘sc’ and ‘sync’ instructions. This can be overridden by passing --with-llsc or --without-llsc when configuring GCC. d900 4 a903 4 missing, the default for ‘mips*-*-linux*’ targets is --with-llsc. The --with-llsc and --without-llsc configure options may be overridden at compile time by passing the -mllsc or -mno-llsc options to d905 3 a907 3MIPS systems check for division by zero (unless -mno-check-zero-division is passed to the compiler) by d912 2 a913 2 the use of break, use the --with-divide=breaks
configureoption when configuring GCC. The default is to d915 2 a916 2The assembler from GNU binutils 2.17 and earlier has a bug in the way d920 1 a920 1 runtime linker stubs in very large programs, like libgcj.so, to d923 5 a927 4
mips-sgi-irix5
d929 5 a933 4
mips-sgi-irix6
d937 5 a941 4
moxie-*-elf
d943 6 a948 5
msp430-*-elf
TI MSP430 processor. d950 5 a954 4
nds32le-*-elf
d956 5 a960 4
nds32be-*-elf
d962 5 a966 4
nvptx-*-none
d968 3 a970 3Instead of GNU binutils, you will need to install nvptx-tools. d972 4 a975 4 --with-build-time-tools=[install-nvptx-tools]/nvptx-none/bin.
A nvptx port of newlib is available at nvptx-newlib. d977 1 a977 1 symbolic link to nvptx-newlib’s newlib directory to the d979 12 a990 11
Use the --disable-sjlj-exceptions and --enable-newlib-io-long-long options when configuring.
powerpc-*-*
You can specify a default version for the -mcpu=cpu_type switch by using the configure option --with-cpu-cpu_type.
You will need d993 5 a997 4
powerpc-*-darwin*
d999 2 a1000 2Pre-installed versions of Mac OS X may not include any developer tools, d1004 2 a1005 2
This version of GCC requires at least cctools-590.36. The d1009 5 a1013 4
powerpc-*-elf
d1015 5 a1019 4
powerpc*-*-linux-gnu*
d1021 5 a1025 4
powerpc-*-netbsd*
d1027 5 a1031 4
powerpc-*-eabisim
d1034 5 a1038 4
powerpc-*-eabi
d1040 5 a1044 4
powerpcle-*-elf
d1046 5 a1050 4
powerpcle-*-eabisim
d1053 5 a1057 4
powerpcle-*-eabi
d1059 6 a1064 5
rl78-*-elf
The Renesas RL78 processor. d1066 5 a1070 4
rx-*-elf
d1074 5 a1078 4
s390-*-linux*
d1080 5 a1084 4
s390x-*-linux*
d1086 5 a1090 4
s390x-ibm-tpf*
d1093 9 a1101 4
*-*-solaris2*
d1105 2 a1106 2Sun does not ship a C compiler with Solaris 2 before Solaris 10, though d1108 3 a1110 2 11, GCC 3.4.3 is available as
/usr/sfw/bin/gcc. Solaris 11 also provides GCC 4.5.2 as/usr/gcc/4.5/bin/gcc. Alternatively, d1113 3 a1115 3The Solaris 2
/bin/shwill often fail to configure ‘libstdc++-v3’, ‘boehm-gc’ or ‘libjava’. We therefore a1116 5d1118 4 a1121 1% CONFIG_SHELL=/bin/ksh % export CONFIG_SHELLand proceed as described in the configure instructions. d1123 3 a1125 3
srcdir/configure.Solaris 2 comes with a number of optional OS packages. Some of these d1129 5 a1133 6 optional packages when installing Solaris 2, you will need to verify that the packages that GCC needs are installed.
To check whether an optional package is installed, use the
pkginfocommand. To add an optional package, use thepkgaddcommand. For further details, see the Solaris 2 d1135 8 a1142 3Trying to use the linker and other tools in /usr/ucb to install GCC has been observed to cause trouble. d1144 21 a1164 17 /usr/ucb from your
PATH.The build process works more smoothly with the legacy Sun tools so, if you have /usr/xpg4/bin in your
PATH, we recommend that you place /usr/bin before /usr/xpg4/bin for the duration of the build.We recommend the use of the Sun assembler or the GNU assembler, in conjunction with the Sun linker. The GNU
asversions included in Solaris 10, from GNU binutils 2.15, and Solaris 11, from GNU binutils 2.19, are known to work. They can be found in /usr/sfw/bin/gas. Current versions of GNU binutils (2.22) are known to work as well. Note that your mileage may vary if you use a combination of the GNU tools and the Sun tools: while the combination GNUas+ Sunldshould reasonably work, the reverse combination Sunas+ GNUldmay fail to build or cause memory corruption at runtime in some cases for C++ programs. GNUldusually works as well, although the version included in d1166 17 a1182 22 version (2.22) is known to work, but generally lacks platform specific features, so better stay with Sunld. To use the LTO linker plugin (-fuse-linker-plugin) with GNUld, GNU binutils must be configured with --enable-largefile.To enable symbol versioning in ‘libstdc++’ with the Sun linker, you need to have any version of GNU
c++filt, which is part of GNU binutils. ‘libstdc++’ symbol versioning will be disabled if no appropriate version is found. Sunc++filtfrom the Sun Studio compilers does not work.GNU
makeversion 3.81 or later is required to build libjava with the Sun linker.Sun bug 4296832 turns up when compiling X11 headers with GCC 2.95 or newer:
g++will complain that types are missing. These headers assume that omitting the type meansint; this assumption worked for C90 but is wrong for C++, and is now wrong for C99 also.Sun bug 4927647 sometimes causes random spurious testsuite failures related to missing diagnostic output. This bug doesn’t affect GCC itself, rather it is a kernel bug triggered by the
expectd1184 1 a1184 1 causes theexpectprogram to miss anticipated output, extra d1186 5 a1190 4
sparc*-*-*
d1194 2 a1195 2Newer versions of the GNU Multiple Precision Library (GMP), the MPFR d1200 5 a1204 4
sparc-sun-solaris2*
d1206 1 a1206 1 produced are smaller than the ones produced using Sun’s native tools; d1209 2 a1210 2Starting with Solaris 7, the operating system is capable of executing d1212 1 a1212 1 this; the -m64 option enables 64-bit code generation. d1214 1 a1214 1 should try the -mtune=ultrasparc option instead, which produces d1217 2 a1218 35
When configuring on a Solaris 7 or later system that is running a kernel that supports only 32-bit binaries, one must configure with --disable-multilib, since we will not be able to build the 64-bit target libraries.
GCC 3.3 and GCC 3.4 trigger code generation bugs in earlier versions of the GNU compiler (especially GCC 3.0.x versions), which lead to the miscompilation of the stage1 compiler and the subsequent failure of the bootstrap process. A workaround is to use GCC 3.2.3 as an intermediary stage, i.e. to bootstrap that compiler with the base compiler and then use it to bootstrap the final compiler.
GCC 3.4 triggers a code generation bug in versions 5.4 (Sun ONE Studio 7) and 5.5 (Sun ONE Studio 8) of the Sun compiler, which causes a bootstrap failure in form of a miscompilation of the stage1 compiler by the Sun compiler. This is Sun bug 4974440. This is fixed with patch 112760-07.
GCC 3.4 changed the default debugging format from Stabs to DWARF-2 for 32-bit code on Solaris 7 and later. If you use the Sun assembler, this change apparently runs afoul of Sun bug 4910101 (which is referenced as an x86-only problem by Sun, probably because they do not use DWARF-2). A symptom of the problem is that you cannot compile C++ programs like
groff1.19.1 without getting messages similar to the following:ld: warning: relocation error: R_SPARC_UA32: … external symbolic relocation against non-allocatable section .debug_info cannot be processed at runtime: relocation ignored.To work around this problem, compile with -gstabs+ instead of plain -g.
When configuring the GNU Multiple Precision Library (GMP), the MPFR d1220 2 a1221 2 target triplet must be specified as the
buildparameter on the configure line. This target triplet can be obtained by invoking./config.guessin the toplevel source directory of GCC (and d1223 7 a1229 8% ./configure --build=sparc-sun-solaris2.9 --prefix=xxx
sparc-sun-solaris2.10
d1232 9 a1240 11ld: fatal: relocation error: R_SPARC_TLS_LE_HIX22: file /var/tmp//ccamPA1v.o: symbol <unknown>: bad symbol type SECT: symbol type must be TLSThis bug is fixed in Sun patch 118683-03 or later.
sparc-*-linux*
a1244 1 d1246 4 a1249 3
sparc64-*-solaris2*
d1252 1 a1252 1 as thebuildparameter on the configure line. For example d1254 13 a1266 23% ./configure --build=sparc64-sun-solaris2.9 --prefix=xxxThe following compiler flags must be specified in the configure step in order to bootstrap this target with the Sun compiler:
% CC="cc -xarch=v9 -xildoff" srcdir/configure [options] [target]-xarch=v9 specifies the SPARC-V9 architecture to the Sun toolchain and -xildoff turns off the incremental linker.
sparcv9-*-solaris2*
This is a synonym for ‘sparc64-*-solaris2*’.
c6x-*-*
d1268 5 a1272 4
tilegx-*-linux*
d1275 5 a1279 4
tilegxbe-*-linux*
d1282 5 a1286 4
tilepro-*-linux*
d1289 6 a1294 5
visium-*-elf
CDS VISIUMcore processor. d1296 5 a1300 4
*-*-vxworks*
d1302 2 a1303 2 very recent VxWorks 5.5 (aka Tornado 2.2) release, and only on PowerPC. We welcome patches for other architectures supported by VxWorks 5.5. d1308 12 a1319 12VxWorks comes with an older version of GCC installed in $WIND_BASE/host; we recommend you do not overwrite it. Choose an installation prefix entirely outside $WIND_BASE. Before running
configure, create the directories prefix and prefix/bin. Link or copy the appropriate assembler, linker, etc. into prefix/bin, and set your PATH to include that directory while running bothconfigureandmake.You must give
configurethe --with-headers=$WIND_BASE/target/h switch so that it can d1321 4 a1324 4 target only, you must also specify --target=target.configurewill attempt to create the directory prefix/target/sys-include and copy files into it; make sure the user runningconfigurehas sufficient privilege d1326 3 a1328 3GCC’s exception handling runtime requires a special “configlette” module, contrib/gthr_supp_vxw_5x.c. Follow the instructions in d1331 5 a1335 4
x86_64-*-*, amd64-*-*
d1337 1 a1337 1 (amd64-*-* is an alias for x86_64-*-*) on GNU/Linux, FreeBSD and NetBSD. d1339 6 a1344 5 both 64-bit x86-64 and 32-bit x86 code (via the -m32 switch).
x86_64-*-solaris2.1[0-9]*
d1346 1 a1346 1 processor (‘amd64-*-*’ is an alias for ‘x86_64-*-*’) on d1349 11 a1359 10 can generate 64-bit x86-64 code with the -m64 switch. Since GCC 4.7, there is also configuration that defaults to 64-bit code, but can generate 32-bit code with -m32. To configure and build this way, you have to provide all support libraries like libgmp as 64-bit code, configure with --target=x86_64-pc-solaris2.1x and ‘CC=gcc -m64’.
xtensa*-*-elf
d1361 1 a1361 1 ‘newlib’ C library. It uses ELF but does not support shared d1365 3 a1367 3The Xtensa configuration information must be specified prior to building GCC. The include/xtensa-config.h header d1372 5 a1376 4
xtensa*-*-linux*
d1380 1 a1380 1 -fpic or -fPIC options are used. In other d1382 7 a1388 5 ‘xtensa*-*-elf’ target.
Microsoft Windows
a1389 2Intel 16-bit versions
d1392 2 a1393 2However, the 32-bit port has limited support for Microsoft d1395 3 a1397 3
Intel 32-bit versions
a1401 11d1403 13 a1415 2
- Cygwin *-*-cygwin: Cygwin provides a user-space Linux API emulation layer in the Win32 subsystem.
- Interix *-*-interix: The Interix subsystem provides native support for POSIX.
- MinGW *-*-mingw32: MinGW is a native GCC port for the Win32 subsystem that provides a subset of POSIX.
- MKS i386-pc-mks: NuTCracker from MKS. See http://www.mkssoftware.com/ for more information.
Intel 64-bit versions
d1417 1 a1417 1 runtime library, available from http://mingw-w64.sourceforge.net/. d1419 5 a1423 5Presently Windows for Itanium is not supported.
Windows CE
d1426 3 a1428 3Other Windows Platforms
d1430 2 a1431 2GCC no longer supports the Windows POSIX subsystem. However, it does d1433 4 a1436 4
Old target names including *-*-winnt and *-*-windowsnt are no longer used.
PW32 (i386-pc-pw32) support was never completed, and the project seems to d1438 7 a1444 6
UWIN support has been removed due to a lack of maintenance.
*-*-cygwin
d1447 5 a1451 5GCC will build under Cygwin without modification; it does not build with Microsoft’s C++ compiler and there are no plans to make it do so.
The Cygwin native compiler can be configured to target any 32-bit x86 d1456 5 a1460 4
*-*-interix
d1465 6 a1470 5
*-*-mingw32
GCC will build with and support only MinGW runtime 3.12 and later. d1473 5 a1477 4
Older systems
d1482 2 a1483 2Starting with GCC 3.1, each release has a list of “obsoleted” systems. d1485 1 a1485 1
configurewill fail unless the --enable-obsolete d1488 2 a1489 2Support for old systems as hosts for GCC can cause problems if the d1496 2 a1497 3 old-releases directory on the GCC mirror sites. Header bugs may generally be avoided using
fixincludes, but bugs or deficiencies in libraries and the d1499 2 a1500 2Support for older systems as targets for cross-compilation is less d1508 3 a1510 3
For some systems, old versions of GNU binutils may also be useful, and are available from pub/binutils/old-releases on d1512 2 a1513 2
Some of the information on specific systems above relates to d1517 5 a1521 4
all ELF targets (SVR4, Solaris 2, etc.)
a1525 1 d1527 1 a1527 2
a1528 5
d1530 5 a1535 2 @ 1.5 log @merge GCC 5.3. round 1. this probably won't work :-) libsanitizer likely needs to be re-ported, though i've done most of the updating we'll need i think already. @ text @d1 3 a3 10Host/Target specific installation notes for GCC a61 5Host/Target specific installation notes for GCC
Please read this document carefully before installing the GNU Compiler Collection on your machine. d63 23 a85 4Note that this list of install notes is not a list of supported hosts or targets. Not all supported hosts and targets are listed here, only the ones that require host-specific or target-specific information have to. a86 76
- aarch64*-*-*
- alpha*-*-*
- alpha*-dec-osf5.1
- amd64-*-solaris2.10
- arm-*-eabi
- avr
- Blackfin
- DOS
- *-*-freebsd*
- h8300-hms
- hppa*-hp-hpux*
- hppa*-hp-hpux10
- hppa*-hp-hpux11
- *-*-linux-gnu
- i?86-*-linux*
- i?86-*-solaris2.10
- ia64-*-linux
- ia64-*-hpux*
- *-ibm-aix*
- iq2000-*-elf
- lm32-*-elf
- lm32-*-uclinux
- m32c-*-elf
- m32r-*-elf
- m68k-*-*
- m68k-uclinux
- mep-*-elf
- microblaze-*-elf
- mips-*-*
- mips-sgi-irix5
- mips-sgi-irix6
- nds32le-*-elf
- nds32be-*-elf
- nvptx-*-none
- powerpc*-*-*
- powerpc-*-darwin*
- powerpc-*-elf
- powerpc*-*-linux-gnu*
- powerpc-*-netbsd*
- powerpc-*-eabisim
- powerpc-*-eabi
- powerpcle-*-elf
- powerpcle-*-eabisim
- powerpcle-*-eabi
- s390-*-linux*
- s390x-*-linux*
- s390x-ibm-tpf*
- *-*-solaris2*
- sparc*-*-*
- sparc-sun-solaris2*
- sparc-sun-solaris2.10
- sparc-*-linux*
- sparc64-*-solaris2*
- sparcv9-*-solaris2*
- c6x-*-*
- tilegx-*-linux*
- tilegxbe-*-linux*
- tilepro-*-linux*
- visium-*-elf
- *-*-vxworks*
- x86_64-*-* amd64-*-*
- x86_64-*-solaris2.1[0-9]*
- xtensa*-*-elf
- xtensa*-*-linux*
- Microsoft Windows
- *-*-cygwin
- *-*-interix
- *-*-mingw32
- OS/2
- Older systems
a87 2
- all ELF targets (SVR4, Solaris 2, etc.)
d89 5 a93 1aarch64*-*-*
d95 91 a185 1Binutils pre 2.24 does not have support for selecting -mabi and d187 3 a189 3 not support option -mabi=ilp32.
To enable a workaround for the Cortex-A53 erratum number 835769 by default d191 1 a191 1 --enable-fix-cortex-a53-835769 option. This will enable the fix by d193 2 a194 2 -mno-fix-cortex-a53-835769 option. Conversely, --disable-fix-cortex-a53-835769 will disable the workaround by d196 4 a199 4 --enable-fix-cortex-a53-835769 or --disable-fix-cortex-a53-835769 is given at configure time.
To enable a workaround for the Cortex-A53 erratum number 843419 by default d201 1 a201 1 --enable-fix-cortex-a53-843419 option. This workaround is applied at d204 2 a205 2 -mno-fix-cortex-a53-843419 option. Conversely, --disable-fix-cortex-a53-843419 will disable the workaround by default. d207 6 a212 7 --enable-fix-cortex-a53-843419 or --disable-fix-cortex-a53-843419 is given at configure time.
alpha*-*-*
d217 2 a218 2We require binutils 2.11.2 or newer. d222 4 a225 5
alpha*-dec-osf5.1
d229 2 a230 2Support for Tru64 UNIX V5.1 has been removed in GCC 4.8. As of GCC 4.6, d234 23 a256 25
amd64-*-solaris2.1[0-9]*
This is a synonym for ‘x86_64-*-solaris2.1[0-9]*’.
arc-*-elf32
Use ‘configure --target=arc-elf32 --with-cpu=cpu --enable-languages="c,c++"’ to configure GCC, with cpu being one of ‘arc600’, ‘arc601’, or ‘arc700’.
arc-linux-uclibc
Use ‘configure --target=arc-linux-uclibc --with-cpu=arc700 --enable-languages="c,c++"’ to configure GCC.
arm-*-eabi
d261 4 a264 5
avr
d266 1 a266 1 applications. There are no standard Unix configurations. d269 4 a272 4Use ‘configure --target=avr --enable-languages="c"’ to configure GCC.
Further installation notes and other useful information about AVR tools d274 19 a292 18
We strongly recommend using binutils 2.13 or newer.
The following error:
Error: register requiredindicates that you should upgrade to a newer version of the binutils.
Blackfin
The Blackfin processor, an Analog Devices DSP. d294 2 a295 2
More information, and a version of binutils with support for this processor, d297 4 a300 5
CR16
d303 1 d305 11 a315 12See “CR16 Options” in the main manual for a list of CR16-specific options.
Use ‘configure --target=cr16-elf --enable-languages=c,c++’ to configure GCC for building a CR16 elf cross-compiler.
Use ‘configure --target=cr16-uclinux --enable-languages=c,c++’ to configure GCC for building a CR16 uclinux cross-compiler.
CRIS
d318 2 a319 2See “CRIS Options” in the main manual d321 11 a331 7
There are a few different CRIS targets:
cris-axis-elf- Mainly for monolithic embedded systems. Includes a multilib for the ‘v10’ core used in ‘ETRAX 100 LX’.
cris-axis-linux-gnu- A GNU/Linux port for the CRIS architecture, currently targeting ‘ETRAX 100 LX’ by default. d334 1 a334 1
For
cris-axis-elfyou need binutils 2.11 d336 2 a337 2Pre-packaged tools can be obtained from d341 4 a344 5
DOS
d346 2 a347 2You cannot install GCC by itself on MSDOS; it will not compile under d351 5 a355 6
epiphany-*-elf
Adapteva Epiphany. d357 4 a360 5
*-*-freebsd*
d364 2 a365 2In order to better utilize FreeBSD base system functionality and match d370 1 a370 1 libgcc_s.so.1 and boehm-gc (on FreeBSD 7 or later) is enabled d372 4 a375 4
We support FreeBSD using the ELF file format with DWARF 2 debugging for all CPU architectures. You may use -gstabs instead of -g, if you really want the old debugging format. There are d379 1 a379 1 GCC. In particular, --enable-threads is now configured by d385 2 a386 2
The version of binutils installed in /usr/bin probably works d388 1 a388 1 binutils and/or the version found in /usr/ports/devel/binutils has d393 4 a396 5
h8300-hms
d398 4 a401 4Please have a look at the binaries page.
The calling convention and structure layout has changed in release 2.6. d405 4 a408 5
hppa*-hp-hpux*
d410 2 a411 2We require using gas/binutils on all hppa platforms. Version 2.19 or d413 7 a419 7
It may be helpful to configure GCC with the --with-gnu-as and --with-as=... options to ensure that GCC can find GAS.
The HP assembler should not be used with GCC. It is rarely tested and may not work. It shouldn't be used with any languages other than C due to its d421 2 a422 2
Specifically, -g does not work (HP-UX uses a peculiar debugging d426 3 a428 3 ‘make all-host all-target’ after getting the failure from ‘make’.
Various GCC features are not supported. For example, it does not support weak d432 2 a433 2
There are two default scheduling models for instructions. These are d435 1 a435 1 architecture specified for the target machine when configuring. d437 3 a439 3 the target is a ‘hppa1*’ machine.
The PROCESSOR_8000 model is not well suited to older processors. Thus, d444 3 a446 3
As of GCC 4.0, GCC uses the UNIX 95 namespace for HP-UX 10.10 through 11.00, and the UNIX 98 namespace for HP-UX 11.11 and later. d450 3 a452 3 in a number of ways. With HP cc, UNIX_STD can be set to ‘95’ or ‘98’. Another way is to add an appropriate set of predefines to CC. The description for the munix= option contains d454 6 a459 7
More specific information to ‘hppa*-hp-hpux*’ targets follows.
hppa*-hp-hpux10
d462 2 a463 2The C++ ABI has changed incompatibly in GCC 4.0. COMDAT subspaces are d467 4 a470 5
hppa*-hp-hpux11
d473 4 a476 4The libffi and libjava libraries haven't been ported to 64-bit HP-UX and don't build.
Refer to binaries for information about obtaining d478 1 a478 1 to build the Ada language as it can't be bootstrapped using C. Ada is d480 3 a482 3
Starting with GCC 3.4 an ISO C compiler is required to bootstrap. The bundled compiler supports only traditional C; you will need either HP's d484 2 a485 2
It is possible to build GCC 3.3 starting with the bundled HP compiler, d488 1 a488 1 can't be built with the HP bundled compiler. This problem can be d490 1 a490 1 --enable-languages="c,c++,f77,objc" option in your configure d492 2 a493 2
There are several possible approaches to building the distribution. d496 1 a496 1 first using the HP tools, then build binutils, then rebuild GCC. d499 2 a500 2
On 64-bit capable systems, there are two distinct targets. Different d502 3 a504 3 the same system. The ‘hppa[1-2]*-hp-hpux11*’ target generates code for the 32-bit PA-RISC runtime architecture and uses the HP linker. The ‘hppa64-hp-hpux11*’ target generates 64-bit code for the d506 11 a516 11
The script config.guess now selects the target type based on the compiler detected during configuration. You must define PATH or CC so that configure finds an appropriate compiler for the initial bootstrap. When CC is used, the definition should contain the options that are needed whenever CC is used.
Specifically, options that determine the runtime architecture must be in CC to correctly select the target for the build. It is also convenient to place many other compiler options in CC. For example, CC="cc -Ac +DA2.0W -Wp,-H16376 -D_CLASSIC_TYPES -D_HPUX_SOURCE" d518 2 a519 2 64-bit K&R/bundled mode. The +DA2.0W option will result in the automatic selection of the ‘hppa64-hp-hpux11*’ target. The d523 4 a526 4 -Ac option. These defines aren't necessary with -Ae.
It is best to explicitly configure the ‘hppa64-hp-hpux11*’ target with the --with-ld=... option. This overrides the standard d529 1 a529 1 result, it's not possible to switch linkers in the middle of a GCC build. d532 2 a533 2
A recent linker patch must be installed for the correct operation of d537 1 a537 1
PHSS_24304, might be usable but it hasn't been tested. These d540 2 a541 2The patches are necessary for the support of weak symbols on the d544 1 a544 1 to HP-UX 11, there are bugs in the linker support for secondary symbols. d548 2 a549 2
GCC 3.3 uses the ELF DT_INIT_ARRAY and DT_FINI_ARRAY capabilities to d551 1 a551 1 uses the linker +init and +fini options for the same d554 1 a554 1 problem on the 64-bit port resulting from HP's non-standard use of d556 3 a558 3
Although the HP and GNU linkers are both supported for the ‘hppa64-hp-hpux11*’ target, it is strongly recommended that the d560 3 a562 3
At this time, the GNU linker does not support the creation of long branch stubs. As a result, it can't successfully link binaries d565 5 a569 5 with -static, and with dwarf2 unwind and exception support. It also doesn't provide stubs for internal calls to global functions in shared libraries, so these calls can't be overloaded.
The HP dynamic loader does not support GNU symbol versioning, so symbol d571 8 a578 9 versioning with --disable-symvers when using GNU ld.
POSIX threads are the default. The optional DCE thread library is not supported, so --enable-threads=dce does not work.
*-*-linux-gnu
d582 5 a586 6
i?86-*-linux*
As of GCC 3.3, binutils 2.13.1 or later is required for this platform. d588 2 a589 2
If you receive Signal 11 errors when building on GNU/Linux, then it is d592 4 a595 5
i?86-*-solaris2.10
d597 6 a602 6 with GCC 4.7, there is also a 64-bit ‘amd64-*-solaris2.1[0-9]*’ or ‘x86_64-*-solaris2.1[0-9]*’ configuration that corresponds to ‘sparcv9-sun-solaris2*’.It is recommended that you configure GCC to use the GNU assembler, in /usr/sfw/bin/gas. The versions included in Solaris 10, from GNU d606 4 a609 5 /usr/ccs/bin/as work almost as well, though.
For linking, the Sun linker, is preferred. If you want to use the GNU linker instead, which is available in /usr/sfw/bin/gld, note that d613 9 a621 11
To use GNU as, configure with the options --with-gnu-as --with-as=/usr/sfw/bin/gas. It may be necessary to configure with --without-gnu-ld --with-ld=/usr/ccs/bin/ld to guarantee use of Sun ld.
ia64-*-linux
d624 3 a626 3If you are using the installed system libunwind library with --with-system-libunwind, then you must use libunwind 0.98 or d628 2 a629 2
None of the following versions of GCC has an ABI that is compatible d632 3 a634 3 3.1, 3.0.2, 3.0.1, 3.0, Red Hat 2.96, and Trillian 000717. This primarily affects C++ programs and programs that create shared libraries. GCC 3.1 or later is recommended for compiling linux, the kernel. d637 4 a640 5
ia64-*-hpux*
d643 6 a648 6 the option --with-gnu-as may be necessary.The GCC libunwind library has not been ported to HPUX. This means that for GCC versions 3.2.3 and earlier, --enable-libunwind-exceptions is required to build GCC. For GCC 3.3 and later, this is the default. For gcc 3.4.3 and later, --enable-libunwind-exceptions is d650 6 a655 7
*-ibm-aix*
Support for AIX version 3 and older was discontinued in GCC 3.4. d657 2 a658 2
“out of memory” bootstrap failures may indicate a problem with d660 3 a662 3 /etc/security/limits system configuration file.
GCC can bootstrap with recent versions of IBM XLC, but bootstrapping d666 5 d672 2 a673 5
% LDR_CNTRL=MAXDATA=0x50000000 % export LDR_CNTRLOne can start with a pre-compiled version of GCC to build from sources. One may delete GCC's “fixed” header files when starting d675 8 d684 2 a685 7
To speed up the configuration phases of bootstrapping and installing GCC, one may use GNU Bash instead of AIX /bin/sh, e.g.,
% CONFIG_SHELL=/opt/freeware/bin/bash % export CONFIG_SHELLand then proceed as described in the build instructions, where we strongly recommend specifying an absolute path d687 2 a688 2
Because GCC on AIX is built as a 32-bit executable by default, d692 2 a693 2
Errors involving
allocawhen building GCC generally are due d696 5 a700 5 the build, the native AIX compiler must be invoked as cc (not xlc). Once configure has been informed of xlc, one needs to use ‘make distclean’ to remove the configure cache files and ensure that CC environment variable does not provide a definition that will confuse configure. d703 2 a704 2The native as and ld are recommended for d707 1 a707 1 AIX 5. The GNU Assembler has not been updated to support AIX 6 or d709 2 a710 2
AIX 5.3 TL10, AIX 6.1 TL05 and AIX 7.1 TL00 introduced an AIX d718 2 a719 2
Building libstdc++.a requires a fix for an AIX Assembler bug d723 3 a725 3
‘libstdc++’ in GCC 3.4 increments the major version number of the shared object and GCC installation places the libstdc++.a d729 3 a731 3 versions of the ‘libstdc++’ shared object needs to be available to the AIX runtime loader. The GCC 3.1 ‘libstdc++.so.4’, if present, and GCC 3.3 ‘libstdc++.so.5’ shared objects can be d733 8 a740 2 the ‘F_LOADONLY’ flag in the shared object for each multilib libstdc++.a installed: d742 1 a742 5
Extract the shared objects from the currently installed libstdc++.a archive:
% ar -x libstdc++.a libstdc++.so.4 libstdc++.so.5Enable the ‘F_LOADONLY’ flag so that the shared object will be d744 12 a755 8
% strip -e libstdc++.so.4 libstdc++.so.5Archive the runtime-only shared object in the GCC 3.4 libstdc++.a archive:
% ar -q libstdc++.a libstdc++.so.4 libstdc++.so.5Eventually, the --with-aix-soname=svr4 d758 2 a759 2
Linking executables and shared libraries may produce warnings of d765 2 a766 2
AIX 4.3 utilizes a “large format” archive to support both 32-bit and d768 1 a768 1 to parse archive libraries did not handle the new format correctly. d771 1 a771 1 with AIX 4.3.1 should work for a 32-bit environment. The -g d775 3 a777 3
Some versions of the AIX binder (linker) can fail with a relocation overflow severe error when the -bbigtoc option is used to link d783 2 a784 2
The AIX 4.3.2.1 linker (bos.rte.bind_cmds Level 4.3.2.1) will dump core d789 2 a790 2
The initial assembler shipped with AIX 4.3.0 generates incorrect object d795 2 a796 2
AIX provides National Language Support (NLS). Compilers and assemblers d798 1 a798 1 formats including floating-point numbers (e.g., ‘.’ vs ‘,’ for d801 9 a809 10 expects. If one encounters this problem, set the LANG environment variable to ‘C’ or ‘En_US’.
A default can be specified with the -mcpu=cpu_type switch and using the configure option --with-cpu-cpu_type.
iq2000-*-elf
d812 5 a816 6
lm32-*-elf
Lattice Mico32 processor. d818 5 a822 6
lm32-*-uclinux
Lattice Mico32 processor. d824 5 a828 6
m32c-*-elf
Renesas M32C processor. d830 5 a834 6
m32r-*-elf
Renesas M32R processor. d836 4 a839 5
m68k-*-*
d841 2 a842 2 ‘m68k-*-elf*’, ‘m68k-*-rtems’, ‘m68k-*-uclinux’ and ‘m68k-*-linux’ d845 3 a847 3 --with-arch=m68k to configure. Alternatively, you can omit the M680x0 libraries by passing --with-arch=cf to configure. These targets default to 5206 or 5475 code as d849 4 a852 4 configured with --with-arch=cf and 68020 code otherwise.The ‘m68k-*-netbsd’ and ‘m68k-*-openbsd’ targets also support the --with-arch d854 13 a866 14 --with-arch=cf and 68020 code otherwise.
You can override the default processors listed above by configuring with --with-cpu=target. This target can either be a -mcpu argument or one of the following values: ‘m68000’, ‘m68010’, ‘m68020’, ‘m68030’, ‘m68040’, ‘m68060’, ‘m68020-40’ and ‘m68020-60’.
GCC requires at least binutils version 2.17 on these targets.
m68k-*-uclinux
d868 1 a868 1 ‘m68k-linux-gnu’ ABI rather than the ‘m68k-elf’ ABI. d871 5 a875 6
mep-*-elf
Toshiba Media embedded Processor. d877 5 a881 6
microblaze-*-elf
Xilinx MicroBlaze processor. d883 4 a886 5
mips-*-*
d888 1 a888 1 sections for all it's [sic] sectons [sic]”, don't worry about it. This d892 2 a893 2It would be nice to extend GAS to produce the gp tables, but they are d895 2 a896 2
The libstdc++ atomic locking routines for MIPS targets requires MIPS II d898 3 a900 3 make ‘mips*-*-*’ use the generic implementation instead. You can also configure for ‘mipsel-elf’ as a workaround. The ‘mips*-*-linux*’ target continues to use the MIPS II routines. More d902 1 d904 4 a907 6
The built-in
__sync_*functions are available on MIPS II and later systems and others that support the ‘ll’, ‘sc’ and ‘sync’ instructions. This can be overridden by passing --with-llsc or --without-llsc when configuring GCC. d909 4 a912 4 missing, the default for ‘mips*-*-linux*’ targets is --with-llsc. The --with-llsc and --without-llsc configure options may be overridden at compile time by passing the -mllsc or -mno-llsc options to d914 3 a916 3MIPS systems check for division by zero (unless -mno-check-zero-division is passed to the compiler) by d921 2 a922 2 the use of break, use the --with-divide=breaks configure option when configuring GCC. The default is to d924 2 a925 2
The assembler from GNU binutils 2.17 and earlier has a bug in the way d929 1 a929 1 runtime linker stubs in very large programs, like libgcj.so, to d932 4 a935 5
mips-sgi-irix5
d937 4 a940 5
mips-sgi-irix6
d944 4 a947 5
moxie-*-elf
d949 5 a953 6
msp430-*-elf
TI MSP430 processor. d955 4 a958 5
nds32le-*-elf
d960 4 a963 5
nds32be-*-elf
d965 4 a968 5
nvptx-*-none
d970 3 a972 3Instead of GNU binutils, you will need to install nvptx-tools. d974 4 a977 4 --with-build-time-tools=[install-nvptx-tools]/nvptx-none/bin.
A nvptx port of newlib is available at nvptx-newlib. d979 1 a979 1 symbolic link to nvptx-newlib's newlib directory to the d981 11 a991 12
Use the --disable-sjlj-exceptions and --enable-newlib-io-long-long options when configuring.
powerpc-*-*
You can specify a default version for the -mcpu=cpu_type switch by using the configure option --with-cpu-cpu_type.
You will need d994 4 a997 5
powerpc-*-darwin*
d999 2 a1000 2Pre-installed versions of Mac OS X may not include any developer tools, d1004 2 a1005 2
This version of GCC requires at least cctools-590.36. The d1009 4 a1012 5
powerpc-*-elf
d1014 4 a1017 5
powerpc*-*-linux-gnu*
d1019 4 a1022 5
powerpc-*-netbsd*
d1024 4 a1027 5
powerpc-*-eabisim
d1030 4 a1033 5
powerpc-*-eabi
d1035 4 a1038 5
powerpcle-*-elf
d1040 4 a1043 5
powerpcle-*-eabisim
d1046 4 a1049 5
powerpcle-*-eabi
d1051 5 a1055 6
rl78-*-elf
The Renesas RL78 processor. d1057 4 a1060 5
rx-*-elf
d1064 4 a1067 5
s390-*-linux*
d1069 4 a1072 5
s390x-*-linux*
d1074 4 a1077 5
s390x-ibm-tpf*
d1080 5 a1084 10
*-*-solaris2*
Support for Solaris 9 has been removed in GCC 4.10. Support for Solaris d1087 2 a1088 2
Sun does not ship a C compiler with Solaris 2 before Solaris 10, though d1090 2 a1091 2 11, GCC 3.4.3 is available as /usr/sfw/bin/gcc. Solaris 11 also provides GCC 4.5.2 as /usr/gcc/4.5/bin/gcc. Alternatively, d1094 3 a1096 3
The Solaris 2 /bin/sh will often fail to configure ‘libstdc++-v3’, ‘boehm-gc’ or ‘libjava’. We therefore d1098 5 d1104 1 a1104 4
% CONFIG_SHELL=/bin/ksh % export CONFIG_SHELLand proceed as described in the configure instructions. d1106 3 a1108 3 srcdir/configure.
Solaris 2 comes with a number of optional OS packages. Some of these d1114 4 a1117 4
To check whether an optional package is installed, use the pkginfo command. To add an optional package, use the pkgadd command. For further details, see the Solaris 2 d1119 3 a1121 3
Trying to use the linker and other tools in /usr/ucb to install GCC has been observed to cause trouble. d1123 8 a1130 8 /usr/ucb from your PATH.
The build process works more smoothly with the legacy Sun tools so, if you have /usr/xpg4/bin in your PATH, we recommend that you place /usr/bin before /usr/xpg4/bin for the duration of the build.
We recommend the use of the Sun assembler or the GNU assembler, in conjunction with the Sun linker. The GNU as d1133 1 a1133 1 /usr/sfw/bin/gas. Current versions of GNU binutils (2.22) d1136 4 a1139 5 combination GNU as + Sun ld should reasonably work, the reverse combination Sun as + GNU ld may fail to build or cause memory corruption at runtime in some cases for C++ programs. GNU ld usually works as well, although the version included in d1142 8 a1149 8 features, so better stay with Sun ld. To use the LTO linker plugin (-fuse-linker-plugin) with GNU ld, GNU binutils must be configured with --enable-largefile.
To enable symbol versioning in ‘libstdc++’ with Sun ld, you need to have any version of GNU c++filt, which is part of GNU binutils. ‘libstdc++’ symbol versioning will be disabled if no appropriate version is found. Sun c++filt from the Sun Studio d1151 6 a1156 3
Sun bug 4296832 turns up when compiling X11 headers with GCC 2.95 or newer: g++ will complain that types are missing. These headers d1159 4 a1162 4
Sun bug 4927647 sometimes causes random spurious testsuite failures related to missing diagnostic output. This bug doesn't affect GCC itself, rather it is a kernel bug triggered by the expect d1164 1 a1164 1 causes the expect program to miss anticipated output, extra d1166 4 a1169 5
sparc*-*-*
d1173 2 a1174 2Newer versions of the GNU Multiple Precision Library (GMP), the MPFR d1179 4 a1182 5
sparc-sun-solaris2*
d1184 1 a1184 1 produced are smaller than the ones produced using Sun's native tools; d1187 2 a1188 2Starting with Solaris 7, the operating system is capable of executing d1190 1 a1190 1 this; the -m64 option enables 64-bit code generation. d1192 1 a1192 1 should try the -mtune=ultrasparc option instead, which produces d1195 2 a1196 2
When configuring on a Solaris 7 or later system that is running a kernel d1198 1 a1198 1 --disable-multilib, since we will not be able to build the d1200 2 a1201 2
GCC 3.3 and GCC 3.4 trigger code generation bugs in earlier versions of d1207 2 a1208 2
GCC 3.4 triggers a code generation bug in versions 5.4 (Sun ONE Studio 7) d1212 2 a1213 2
GCC 3.4 changed the default debugging format from Stabs to DWARF-2 for d1216 1 a1216 1 an x86-only problem by Sun, probably because they do not use DWARF-2). d1218 12 a1229 10 groff 1.19.1 without getting messages similar to the following:
ld: warning: relocation error: R_SPARC_UA32: ... external symbolic relocation against non-allocatable section .debug_info cannot be processed at runtime: relocation ignored.To work around this problem, compile with -gstabs+ instead of plain -g.
When configuring the GNU Multiple Precision Library (GMP), the MPFR d1231 2 a1232 2 target triplet must be specified as the build parameter on the configure line. This target triplet can be obtained by invoking ./config.guess in the toplevel source directory of GCC (and d1234 8 a1241 7
% ./configure --build=sparc-sun-solaris2.9 --prefix=xxx
sparc-sun-solaris2.10
d1244 11 a1254 9ld: fatal: relocation error: R_SPARC_TLS_LE_HIX22: file /var/tmp//ccamPA1v.o: symbol <unknown>: bad symbol type SECT: symbol type must be TLSThis bug is fixed in Sun patch 118683-03 or later.
sparc-*-linux*
d1259 1 d1261 3 a1263 4
sparc64-*-solaris2*
d1266 1 a1266 1 as the build parameter on the configure line. For example d1268 4 d1273 1 a1273 3% ./configure --build=sparc64-sun-solaris2.9 --prefix=xxxThe following compiler flags must be specified in the configure d1275 16 a1290 16
% CC="cc -xarch=v9 -xildoff" srcdir/configure [options] [target]-xarch=v9 specifies the SPARC-V9 architecture to the Sun toolchain and -xildoff turns off the incremental linker.
sparcv9-*-solaris2*
This is a synonym for ‘sparc64-*-solaris2*’.
c6x-*-*
d1292 4 a1295 5
tilegx-*-linux*
d1298 4 a1301 5
tilegxbe-*-linux*
d1304 4 a1307 5
tilepro-*-linux*
d1310 5 a1314 6
visium-*-elf
CDS VISIUMcore processor. d1316 4 a1319 5
*-*-vxworks*
d1321 2 a1322 2 very recent VxWorks 5.5 (aka Tornado 2.2) release, and only on PowerPC. We welcome patches for other architectures supported by VxWorks 5.5. d1327 12 a1338 12VxWorks comes with an older version of GCC installed in $WIND_BASE/host; we recommend you do not overwrite it. Choose an installation prefix entirely outside $WIND_BASE. Before running configure, create the directories prefix and prefix/bin. Link or copy the appropriate assembler, linker, etc. into prefix/bin, and set your PATH to include that directory while running both configure and make.
You must give configure the --with-headers=$WIND_BASE/target/h switch so that it can d1340 4 a1343 4 target only, you must also specify --target=target. configure will attempt to create the directory prefix/target/sys-include and copy files into it; make sure the user running configure has sufficient privilege d1345 3 a1347 3
GCC's exception handling runtime requires a special “configlette” module, contrib/gthr_supp_vxw_5x.c. Follow the instructions in d1350 4 a1353 5
x86_64-*-*, amd64-*-*
d1355 1 a1355 1 (amd64-*-* is an alias for x86_64-*-*) on GNU/Linux, FreeBSD and NetBSD. d1357 5 a1361 6 both 64-bit x86-64 and 32-bit x86 code (via the -m32 switch).
x86_64-*-solaris2.1[0-9]*
d1363 1 a1363 1 processor (‘amd64-*-*’ is an alias for ‘x86_64-*-*’) on d1366 1 a1366 1 can generate 64-bit x86-64 code with the -m64 switch. Since d1368 8 a1375 9 can generate 32-bit code with -m32. To configure and build this way, you have to provide all support libraries like libgmp as 64-bit code, configure with --target=x86_64-pc-solaris2.1x and ‘CC=gcc -m64’.
xtensa*-*-elf
d1377 1 a1377 1 ‘newlib’ C library. It uses ELF but does not support shared d1381 3 a1383 3The Xtensa configuration information must be specified prior to building GCC. The include/xtensa-config.h header d1388 4 a1391 5
xtensa*-*-linux*
d1395 1 a1395 1 -fpic or -fPIC options are used. In other d1397 5 a1401 7 ‘xtensa*-*-elf’ target.
Microsoft Windows
Intel 16-bit versions
d1403 2 d1407 2 a1408 2However, the 32-bit port has limited support for Microsoft d1410 3 a1412 3
Intel 32-bit versions
d1417 11 d1429 2 a1430 13
- Cygwin *-*-cygwin: Cygwin provides a user-space Linux API emulation layer in the Win32 subsystem.
- Interix *-*-interix: The Interix subsystem provides native support for POSIX.
- MinGW *-*-mingw32: MinGW is a native GCC port for the Win32 subsystem that provides a subset of POSIX.
- MKS i386-pc-mks: NuTCracker from MKS. See http://www.mkssoftware.com/ for more information.
Intel 64-bit versions
d1432 1 a1432 1 runtime library, available from http://mingw-w64.sourceforge.net/. d1434 5 a1438 5Presently Windows for Itanium is not supported.
Windows CE
d1441 3 a1443 3Other Windows Platforms
d1445 2 a1446 2GCC no longer supports the Windows POSIX subsystem. However, it does d1448 4 a1451 4
Old target names including *-*-winnt and *-*-windowsnt are no longer used.
PW32 (i386-pc-pw32) support was never completed, and the project seems to d1453 6 a1458 7
UWIN support has been removed due to a lack of maintenance.
*-*-cygwin
d1461 5 a1465 5GCC will build under Cygwin without modification; it does not build with Microsoft's C++ compiler and there are no plans to make it do so.
The Cygwin native compiler can be configured to target any 32-bit x86 d1470 4 a1473 5
*-*-interix
d1478 5 a1482 6
*-*-mingw32
GCC will build with and support only MinGW runtime 3.12 and later. d1485 4 a1488 5
Older systems
d1493 2 a1494 2Starting with GCC 3.1, each release has a list of “obsoleted” systems. d1496 1 a1496 1 configure will fail unless the --enable-obsolete d1499 2 a1500 2
Support for old systems as hosts for GCC can cause problems if the d1507 3 a1509 2 old-releases directory on the GCC mirror sites. Header bugs may generally be avoided using fixincludes, but bugs or deficiencies in libraries and the d1511 2 a1512 2
Support for older systems as targets for cross-compilation is less d1520 3 a1522 3
For some systems, old versions of GNU binutils may also be useful, and are available from pub/binutils/old-releases on d1524 2 a1525 2
Some of the information on specific systems above relates to d1529 4 a1532 5
all ELF targets (SVR4, Solaris 2, etc.)
d1537 1 d1539 2 a1540 1
d1542 5 a1547 5 d1549 2 @ 1.5.8.1 log @Pull up the gcc 5.5 import and assorted fixes, requested by mrg in ticket #381: external/gpl3/gcc/dist/fixincludes/tests/base/iso/stdlib_c99.h up to 1.1.1.1 external/gpl3/gcc/dist/gcc/config/arm/t-phoenix up to 1.1.1.1 external/gpl3/gcc/dist/gcc/config/phoenix.h up to 1.1.1.1 external/gpl3/gcc/dist/gcc/config/aarch64/aarch64-freebsd.h up to 1.1.1.1 external/gpl3/gcc/dist/gcc/config/aarch64/t-aarch64-freebsd up to 1.1.1.1 external/gpl3/gcc/dist/gcc/doc/gcov-dump.1 up to 1.1.1.1 external/gpl3/gcc/dist/gcc/doc/gcov-dump.texi up to 1.1.1.1 external/gpl3/gcc/dist/libstdc++-v3/include/experimental/lfts_config.h up to 1.1.1.1 external/gpl3/gcc/dist/gcc/config/i386/pcommitintrin.h delete external/gpl3/gcc/dist/gcc/config/i386/stringop.opt delete external/gpl3/gcc/lib/libgcc/Makefile.wrapper delete external/gpl3/gcc/dist/ChangeLog up to 1.1.1.10 external/gpl3/gcc/dist/LAST_UPDATED up to 1.9 external/gpl3/gcc/dist/MD5SUMS up to 1.9 external/gpl3/gcc/dist/NEWS up to 1.7 external/gpl3/gcc/dist/config.sub up to 1.11 external/gpl3/gcc/dist/configure up to 1.11 external/gpl3/gcc/dist/configure.ac up to 1.10 external/gpl3/gcc/dist/INSTALL/binaries.html up to 1.5 external/gpl3/gcc/dist/INSTALL/build.html up to 1.6 external/gpl3/gcc/dist/INSTALL/configure.html up to 1.6 external/gpl3/gcc/dist/INSTALL/download.html up to 1.5 external/gpl3/gcc/dist/INSTALL/finalinstall.html up to 1.5 external/gpl3/gcc/dist/INSTALL/gfdl.html up to 1.5 external/gpl3/gcc/dist/INSTALL/index.html up to 1.5 external/gpl3/gcc/dist/INSTALL/old.html up to 1.5 external/gpl3/gcc/dist/INSTALL/prerequisites.html up to 1.6 external/gpl3/gcc/dist/INSTALL/specific.html up to 1.6 external/gpl3/gcc/dist/INSTALL/test.html up to 1.5 external/gpl3/gcc/dist/config/ChangeLog up to 1.1.1.10 external/gpl3/gcc/dist/contrib/ChangeLog up to 1.1.1.10 external/gpl3/gcc/dist/contrib/gcc_update up to 1.1.1.4 external/gpl3/gcc/dist/contrib/reghunt/ChangeLog up to 1.1.1.9 external/gpl3/gcc/dist/contrib/regression/ChangeLog up to 1.1.1.9 external/gpl3/gcc/dist/fixincludes/ChangeLog up to 1.1.1.9 external/gpl3/gcc/dist/fixincludes/fixincl.x up to 1.1.1.6 external/gpl3/gcc/dist/fixincludes/inclhack.def up to 1.1.1.6 external/gpl3/gcc/dist/fixincludes/tests/base/math.h up to 1.1.1.3 external/gpl3/gcc/dist/fixincludes/tests/base/stdio.h up to 1.1.1.5 external/gpl3/gcc/dist/fixincludes/tests/base/stdlib.h up to 1.1.1.3 external/gpl3/gcc/dist/fixincludes/tests/base/iso/stdio_iso.h up to 1.1.1.2 external/gpl3/gcc/dist/gcc/BASE-VER up to 1.1.1.8 external/gpl3/gcc/dist/gcc/ChangeLog up to 1.15 external/gpl3/gcc/dist/gcc/DATESTAMP up to 1.1.1.11 external/gpl3/gcc/dist/gcc/Makefile.in up to 1.14 external/gpl3/gcc/dist/gcc/asan.c up to 1.1.1.3 external/gpl3/gcc/dist/gcc/auto-profile.c up to 1.3 external/gpl3/gcc/dist/gcc/bb-reorder.c up to 1.1.1.6 external/gpl3/gcc/dist/gcc/builtins.c up to 1.10 external/gpl3/gcc/dist/gcc/calls.c up to 1.1.1.6 external/gpl3/gcc/dist/gcc/cgraph.c up to 1.1.1.5 external/gpl3/gcc/dist/gcc/cgraph.h up to 1.1.1.5 external/gpl3/gcc/dist/gcc/cgraphclones.c up to 1.1.1.4 external/gpl3/gcc/dist/gcc/cgraphunit.c up to 1.1.1.6 external/gpl3/gcc/dist/gcc/combine.c up to 1.1.1.8 external/gpl3/gcc/dist/gcc/common.opt up to 1.6 external/gpl3/gcc/dist/gcc/config.gcc up to 1.37 external/gpl3/gcc/dist/gcc/coverage.c up to 1.1.1.4 external/gpl3/gcc/dist/gcc/coverage.h up to 1.1.1.4 external/gpl3/gcc/dist/gcc/cselib.c up to 1.1.1.5 external/gpl3/gcc/dist/gcc/data-streamer-in.c up to 1.1.1.3 external/gpl3/gcc/dist/gcc/data-streamer-out.c up to 1.1.1.3 external/gpl3/gcc/dist/gcc/diagnostic.c up to 1.4 external/gpl3/gcc/dist/gcc/dwarf2out.c up to 1.8 external/gpl3/gcc/dist/gcc/explow.c up to 1.1.1.4 external/gpl3/gcc/dist/gcc/expmed.c up to 1.1.1.4 external/gpl3/gcc/dist/gcc/expr.c up to 1.10 external/gpl3/gcc/dist/gcc/fold-const.c up to 1.1.1.11 external/gpl3/gcc/dist/gcc/function.c up to 1.1.1.7 external/gpl3/gcc/dist/gcc/function.h up to 1.1.1.4 external/gpl3/gcc/dist/gcc/fwprop.c up to 1.1.1.5 external/gpl3/gcc/dist/gcc/gcc.c up to 1.15 external/gpl3/gcc/dist/gcc/gcov-dump.c up to 1.1.1.5 external/gpl3/gcc/dist/gcc/gcov-io.c up to 1.1.1.4 external/gpl3/gcc/dist/gcc/gcov-tool.c up to 1.1.1.2 external/gpl3/gcc/dist/gcc/gcov.c up to 1.1.1.5 external/gpl3/gcc/dist/gcc/gcse.c up to 1.1.1.5 external/gpl3/gcc/dist/gcc/gengtype-lex.c up to 1.7 external/gpl3/gcc/dist/gcc/genmatch.c up to 1.1.1.2 external/gpl3/gcc/dist/gcc/gimple-fold.c up to 1.1.1.5 external/gpl3/gcc/dist/gcc/gimple-ssa-strength-reduction.c up to 1.1.1.5 external/gpl3/gcc/dist/gcc/gimplify.c up to 1.1.1.7 external/gpl3/gcc/dist/gcc/graphite-isl-ast-to-gimple.c up to 1.3 external/gpl3/gcc/dist/gcc/incpath.c up to 1.1.1.4 external/gpl3/gcc/dist/gcc/internal-fn.c up to 1.1.1.3 external/gpl3/gcc/dist/gcc/ipa-comdats.c up to 1.1.1.2 external/gpl3/gcc/dist/gcc/ipa-cp.c up to 1.1.1.8 external/gpl3/gcc/dist/gcc/ipa-devirt.c up to 1.1.1.3 external/gpl3/gcc/dist/gcc/ipa-icf-gimple.c up to 1.1.1.2 external/gpl3/gcc/dist/gcc/ipa-icf-gimple.h up to 1.1.1.2 external/gpl3/gcc/dist/gcc/ipa-icf.c up to 1.1.1.3 external/gpl3/gcc/dist/gcc/ipa-icf.h up to 1.1.1.2 external/gpl3/gcc/dist/gcc/ipa-inline-transform.c up to 1.1.1.3 external/gpl3/gcc/dist/gcc/ipa-polymorphic-call.c up to 1.1.1.3 external/gpl3/gcc/dist/gcc/ipa-prop.c up to 1.1.1.7 external/gpl3/gcc/dist/gcc/ipa-pure-const.c up to 1.1.1.5 external/gpl3/gcc/dist/gcc/ipa-split.c up to 1.1.1.4 external/gpl3/gcc/dist/gcc/ipa-visibility.c up to 1.1.1.2 external/gpl3/gcc/dist/gcc/ira-build.c up to 1.1.1.4 external/gpl3/gcc/dist/gcc/ira-costs.c up to 1.1.1.4 external/gpl3/gcc/dist/gcc/ira-int.h up to 1.1.1.4 external/gpl3/gcc/dist/gcc/ira-lives.c up to 1.1.1.4 external/gpl3/gcc/dist/gcc/loop-doloop.c up to 1.1.1.5 external/gpl3/gcc/dist/gcc/loop-invariant.c up to 1.1.1.4 external/gpl3/gcc/dist/gcc/lra-constraints.c up to 1.1.1.5 external/gpl3/gcc/dist/gcc/lra-remat.c up to 1.1.1.3 external/gpl3/gcc/dist/gcc/lto-cgraph.c up to 1.1.1.4 external/gpl3/gcc/dist/gcc/lto-streamer.h up to 1.1.1.5 external/gpl3/gcc/dist/gcc/match.pd up to 1.1.1.3 external/gpl3/gcc/dist/gcc/omp-low.c up to 1.1.1.8 external/gpl3/gcc/dist/gcc/params.def up to 1.1.1.5 external/gpl3/gcc/dist/gcc/postreload.c up to 1.1.1.5 external/gpl3/gcc/dist/gcc/pretty-print.c up to 1.1.1.4 external/gpl3/gcc/dist/gcc/real.c up to 1.1.1.5 external/gpl3/gcc/dist/gcc/ree.c up to 1.1.1.4 external/gpl3/gcc/dist/gcc/rtl.h up to 1.1.1.6 external/gpl3/gcc/dist/gcc/sel-sched.c up to 1.1.1.6 external/gpl3/gcc/dist/gcc/simplify-rtx.c up to 1.1.1.4 external/gpl3/gcc/dist/gcc/system.h up to 1.6 external/gpl3/gcc/dist/gcc/toplev.c up to 1.2 external/gpl3/gcc/dist/gcc/tree-call-cdce.c up to 1.1.1.4 external/gpl3/gcc/dist/gcc/tree-cfg.c up to 1.8 external/gpl3/gcc/dist/gcc/tree-chkp-opt.c up to 1.1.1.2 external/gpl3/gcc/dist/gcc/tree-chkp.c up to 1.1.1.2 external/gpl3/gcc/dist/gcc/tree-chrec.c up to 1.1.1.5 external/gpl3/gcc/dist/gcc/tree-data-ref.c up to 1.1.1.7 external/gpl3/gcc/dist/gcc/tree-eh.c up to 1.1.1.7 external/gpl3/gcc/dist/gcc/tree-inline.c up to 1.1.1.7 external/gpl3/gcc/dist/gcc/tree-inline.h up to 1.1.1.4 external/gpl3/gcc/dist/gcc/tree-loop-distribution.c up to 1.1.1.4 external/gpl3/gcc/dist/gcc/tree-nested.c up to 1.1.1.4 external/gpl3/gcc/dist/gcc/tree-predcom.c up to 1.1.1.5 external/gpl3/gcc/dist/gcc/tree-profile.c up to 1.1.1.4 external/gpl3/gcc/dist/gcc/tree-ssa-ccp.c up to 1.8 external/gpl3/gcc/dist/gcc/tree-ssa-loop-im.c up to 1.1.1.5 external/gpl3/gcc/dist/gcc/tree-ssa-loop-ivopts.c up to 1.1.1.5 external/gpl3/gcc/dist/gcc/tree-ssa-loop-prefetch.c up to 1.1.1.4 external/gpl3/gcc/dist/gcc/tree-ssa-math-opts.c up to 1.1.1.7 external/gpl3/gcc/dist/gcc/tree-ssa-pre.c up to 1.1.1.5 external/gpl3/gcc/dist/gcc/tree-ssa-reassoc.c up to 1.1.1.7 external/gpl3/gcc/dist/gcc/tree-ssa-sccvn.c up to 1.1.1.7 external/gpl3/gcc/dist/gcc/tree-ssa-strlen.c up to 1.1.1.4 external/gpl3/gcc/dist/gcc/tree-ssa-structalias.c up to 1.1.1.6 external/gpl3/gcc/dist/gcc/tree-ssa-tail-merge.c up to 1.1.1.6 external/gpl3/gcc/dist/gcc/tree-ssa-threadedge.c up to 1.1.1.4 external/gpl3/gcc/dist/gcc/tree-ssa-uninit.c up to 1.1.1.5 external/gpl3/gcc/dist/gcc/tree-ssa.c up to 1.1.1.5 external/gpl3/gcc/dist/gcc/tree-vect-data-refs.c up to 1.1.1.9 external/gpl3/gcc/dist/gcc/tree-vect-loop-manip.c up to 1.1.1.5 external/gpl3/gcc/dist/gcc/tree-vrp.c up to 1.1.1.7 external/gpl3/gcc/dist/gcc/tsan.c up to 1.1.1.4 external/gpl3/gcc/dist/gcc/ubsan.c up to 1.1.1.3 external/gpl3/gcc/dist/gcc/value-prof.c up to 1.1.1.4 external/gpl3/gcc/dist/gcc/c/ChangeLog up to 1.1.1.8 external/gpl3/gcc/dist/gcc/c/c-decl.c up to 1.1.1.5 external/gpl3/gcc/dist/gcc/c/c-objc-common.c up to 1.1.1.3 external/gpl3/gcc/dist/gcc/c/c-parser.c up to 1.1.1.5 external/gpl3/gcc/dist/gcc/c/c-typeck.c up to 1.1.1.7 external/gpl3/gcc/dist/gcc/c-family/ChangeLog up to 1.1.1.7 external/gpl3/gcc/dist/gcc/c-family/c-ada-spec.c up to 1.1.1.3 external/gpl3/gcc/dist/gcc/c-family/c-common.c up to 1.1.1.6 external/gpl3/gcc/dist/gcc/c-family/c-cppbuiltin.c up to 1.1.1.3 external/gpl3/gcc/dist/gcc/c-family/c-gimplify.c up to 1.1.1.3 external/gpl3/gcc/dist/gcc/c-family/c-omp.c up to 1.1.1.3 external/gpl3/gcc/dist/gcc/c-family/c-opts.c up to 1.5 external/gpl3/gcc/dist/gcc/common/config/i386/i386-common.c up to 1.1.1.3 external/gpl3/gcc/dist/gcc/config/aarch64/aarch64-simd.md up to 1.1.1.4 external/gpl3/gcc/dist/gcc/config/aarch64/aarch64.c up to 1.1.1.8 external/gpl3/gcc/dist/gcc/config/aarch64/aarch64.md up to 1.1.1.6 external/gpl3/gcc/dist/gcc/config/arm/arm-builtins.c up to 1.1.1.3 external/gpl3/gcc/dist/gcc/config/arm/arm-protos.h up to 1.1.1.5 external/gpl3/gcc/dist/gcc/config/arm/arm.c up to 1.4 external/gpl3/gcc/dist/gcc/config/arm/arm.h up to 1.15 external/gpl3/gcc/dist/gcc/config/arm/arm.md up to 1.12 external/gpl3/gcc/dist/gcc/config/arm/freebsd.h up to 1.4 external/gpl3/gcc/dist/gcc/config/arm/neon.md up to 1.1.1.5 external/gpl3/gcc/dist/gcc/config/avr/avr.c up to 1.1.1.7 external/gpl3/gcc/dist/gcc/config/avr/avr.md up to 1.1.1.7 external/gpl3/gcc/dist/gcc/config/avr/avr.opt up to 1.1.1.4 external/gpl3/gcc/dist/gcc/config/avr/gen-avr-mmcu-specs.c up to 1.1.1.2 external/gpl3/gcc/dist/gcc/config/avr/gen-avr-mmcu-texi.c up to 1.1.1.3 external/gpl3/gcc/dist/gcc/config/i386/avx2intrin.h up to 1.1.1.4 external/gpl3/gcc/dist/gcc/config/i386/avx512bwintrin.h up to 1.1.1.2 external/gpl3/gcc/dist/gcc/config/i386/avx512dqintrin.h up to 1.1.1.2 external/gpl3/gcc/dist/gcc/config/i386/avx512fintrin.h up to 1.1.1.2 external/gpl3/gcc/dist/gcc/config/i386/avx512ifmaintrin.h up to 1.1.1.2 external/gpl3/gcc/dist/gcc/config/i386/avx512ifmavlintrin.h up to 1.1.1.2 external/gpl3/gcc/dist/gcc/config/i386/avx512pfintrin.h up to 1.1.1.2 external/gpl3/gcc/dist/gcc/config/i386/avx512vbmiintrin.h up to 1.1.1.2 external/gpl3/gcc/dist/gcc/config/i386/avx512vbmivlintrin.h up to 1.1.1.2 external/gpl3/gcc/dist/gcc/config/i386/avx512vlbwintrin.h up to 1.1.1.2 external/gpl3/gcc/dist/gcc/config/i386/avx512vldqintrin.h up to 1.1.1.2 external/gpl3/gcc/dist/gcc/config/i386/avx512vlintrin.h up to 1.1.1.2 external/gpl3/gcc/dist/gcc/config/i386/cpuid.h up to 1.4 external/gpl3/gcc/dist/gcc/config/i386/driver-i386.c up to 1.7 external/gpl3/gcc/dist/gcc/config/i386/gmm_malloc.h up to 1.1.1.4 external/gpl3/gcc/dist/gcc/config/i386/i386-builtin-types.def up to 1.1.1.4 external/gpl3/gcc/dist/gcc/config/i386/i386-c.c up to 1.1.1.4 external/gpl3/gcc/dist/gcc/config/i386/i386.c up to 1.14 external/gpl3/gcc/dist/gcc/config/i386/i386.h up to 1.6 external/gpl3/gcc/dist/gcc/config/i386/i386.md up to 1.1.1.9 external/gpl3/gcc/dist/gcc/config/i386/i386.opt up to 1.1.1.4 external/gpl3/gcc/dist/gcc/config/i386/ia32intrin.h up to 1.1.1.4 external/gpl3/gcc/dist/gcc/config/i386/lwpintrin.h up to 1.1.1.4 external/gpl3/gcc/dist/gcc/config/i386/mmx.md up to 1.1.1.5 external/gpl3/gcc/dist/gcc/config/i386/pmm_malloc.h up to 1.4 external/gpl3/gcc/dist/gcc/config/i386/rdseedintrin.h up to 1.1.1.3 external/gpl3/gcc/dist/gcc/config/i386/rtmintrin.h up to 1.1.1.3 external/gpl3/gcc/dist/gcc/config/i386/sse.md up to 1.1.1.8 external/gpl3/gcc/dist/gcc/config/i386/x86-64.h up to 1.1.1.4 external/gpl3/gcc/dist/gcc/config/i386/x86intrin.h up to 1.1.1.4 external/gpl3/gcc/dist/gcc/config/nds32/nds32.md up to 1.1.1.2 external/gpl3/gcc/dist/gcc/config/pa/pa-64.h up to 1.1.1.4 external/gpl3/gcc/dist/gcc/config/pa/pa.h up to 1.7 external/gpl3/gcc/dist/gcc/config/rl78/rl78-expand.md up to 1.1.1.3 external/gpl3/gcc/dist/gcc/config/rl78/rl78-real.md up to 1.1.1.3 external/gpl3/gcc/dist/gcc/config/rl78/rl78-virt.md up to 1.1.1.3 external/gpl3/gcc/dist/gcc/config/rs6000/altivec.md up to 1.1.1.9 external/gpl3/gcc/dist/gcc/config/rs6000/dfp.md up to 1.1.1.5 external/gpl3/gcc/dist/gcc/config/rs6000/predicates.md up to 1.1.1.7 external/gpl3/gcc/dist/gcc/config/rs6000/rs6000-c.c up to 1.1.1.8 external/gpl3/gcc/dist/gcc/config/rs6000/rs6000.c up to 1.17 external/gpl3/gcc/dist/gcc/config/rs6000/rs6000.md up to 1.1.1.9 external/gpl3/gcc/dist/gcc/config/rs6000/rs6000.opt up to 1.1.1.6 external/gpl3/gcc/dist/gcc/config/rs6000/vector.md up to 1.1.1.6 external/gpl3/gcc/dist/gcc/config/rs6000/vsx.md up to 1.1.1.10 external/gpl3/gcc/dist/gcc/config/s390/s390-modes.def up to 1.1.1.4 external/gpl3/gcc/dist/gcc/config/s390/s390.c up to 1.1.1.8 external/gpl3/gcc/dist/gcc/config/s390/s390.md up to 1.1.1.6 external/gpl3/gcc/dist/gcc/config/s390/vx-builtins.md up to 1.1.1.3 external/gpl3/gcc/dist/gcc/config/sh/sh-mem.cc up to 1.1.1.2 external/gpl3/gcc/dist/gcc/config/sh/sh.c up to 1.9 external/gpl3/gcc/dist/gcc/config/sh/sh_treg_combine.cc up to 1.1.1.2 external/gpl3/gcc/dist/gcc/config/sparc/sparc.c up to 1.1.1.8 external/gpl3/gcc/dist/gcc/config/sparc/sparc.md up to 1.7 external/gpl3/gcc/dist/gcc/config/xtensa/xtensa.c up to 1.1.1.4 external/gpl3/gcc/dist/gcc/config/xtensa/xtensa.h up to 1.1.1.4 external/gpl3/gcc/dist/gcc/config/xtensa/xtensa.md up to 1.1.1.4 external/gpl3/gcc/dist/gcc/cp/ChangeLog up to 1.1.1.11 external/gpl3/gcc/dist/gcc/cp/call.c up to 1.1.1.8 external/gpl3/gcc/dist/gcc/cp/class.c up to 1.1.1.6 external/gpl3/gcc/dist/gcc/cp/constexpr.c up to 1.1.1.3 external/gpl3/gcc/dist/gcc/cp/cp-gimplify.c up to 1.1.1.4 external/gpl3/gcc/dist/gcc/cp/decl.c up to 1.1.1.8 external/gpl3/gcc/dist/gcc/cp/error.c up to 1.1.1.4 external/gpl3/gcc/dist/gcc/cp/init.c up to 1.1.1.6 external/gpl3/gcc/dist/gcc/cp/mangle.c up to 1.1.1.7 external/gpl3/gcc/dist/gcc/cp/name-lookup.c up to 1.1.1.6 external/gpl3/gcc/dist/gcc/cp/parser.c up to 1.1.1.10 external/gpl3/gcc/dist/gcc/cp/pt.c up to 1.1.1.8 external/gpl3/gcc/dist/gcc/cp/semantics.c up to 1.1.1.9 external/gpl3/gcc/dist/gcc/cp/tree.c up to 1.1.1.7 external/gpl3/gcc/dist/gcc/cp/typeck.c up to 1.1.1.9 external/gpl3/gcc/dist/gcc/doc/aot-compile.1 up to 1.7 external/gpl3/gcc/dist/gcc/doc/cppinternals.info up to 1.7 external/gpl3/gcc/dist/gcc/doc/extend.texi up to 1.1.1.8 external/gpl3/gcc/dist/gcc/doc/fsf-funding.7 up to 1.7 external/gpl3/gcc/dist/gcc/doc/gc-analyze.1 up to 1.7 external/gpl3/gcc/dist/gcc/doc/gcc.texi up to 1.1.1.5 external/gpl3/gcc/dist/gcc/doc/gccinstall.info up to 1.7 external/gpl3/gcc/dist/gcc/doc/gccint.info up to 1.7 external/gpl3/gcc/dist/gcc/doc/gcj-dbtool.1 up to 1.7 external/gpl3/gcc/dist/gcc/doc/gcj.1 up to 1.7 external/gpl3/gcc/dist/gcc/doc/gcj.info up to 1.7 external/gpl3/gcc/dist/gcc/doc/gcov-tool.1 up to 1.1.1.3 external/gpl3/gcc/dist/gcc/doc/gcov-tool.texi up to 1.1.1.2 external/gpl3/gcc/dist/gcc/doc/gcov.texi up to 1.6 external/gpl3/gcc/dist/gcc/doc/generic.texi up to 1.1.1.4 external/gpl3/gcc/dist/gcc/doc/gfdl.7 up to 1.7 external/gpl3/gcc/dist/gcc/doc/gfortran.1 up to 1.7 external/gpl3/gcc/dist/gcc/doc/gij.1 up to 1.7 external/gpl3/gcc/dist/gcc/doc/gpl.7 up to 1.7 external/gpl3/gcc/dist/gcc/doc/grmic.1 up to 1.7 external/gpl3/gcc/dist/gcc/doc/install.texi up to 1.1.1.8 external/gpl3/gcc/dist/gcc/doc/invoke.texi up to 1.12 external/gpl3/gcc/dist/gcc/doc/jcf-dump.1 up to 1.7 external/gpl3/gcc/dist/gcc/doc/jv-convert.1 up to 1.7 external/gpl3/gcc/dist/gcc/doc/lto.texi up to 1.1.1.3 external/gpl3/gcc/dist/gcc/doc/passes.texi up to 1.1.1.4 external/gpl3/gcc/dist/gcc/doc/rebuild-gcj-db.1 up to 1.7 external/gpl3/gcc/dist/gcc/doc/rtl.texi up to 1.1.1.4 external/gpl3/gcc/dist/gcc/jit/ChangeLog up to 1.1.1.3 external/gpl3/gcc/dist/gcc/lto/ChangeLog up to 1.1.1.9 external/gpl3/gcc/dist/gcc/lto/lto-lang.c up to 1.1.1.4 external/gpl3/gcc/dist/gcc/objc/ChangeLog up to 1.1.1.9 external/gpl3/gcc/dist/gcc/objcp/ChangeLog up to 1.1.1.9 external/gpl3/gcc/dist/gnattools/ChangeLog up to 1.1.1.7 external/gpl3/gcc/dist/gotools/ChangeLog up to 1.1.1.3 external/gpl3/gcc/dist/include/ChangeLog up to 1.1.1.9 external/gpl3/gcc/dist/intl/ChangeLog up to 1.1.1.9 external/gpl3/gcc/dist/libbacktrace/ChangeLog up to 1.1.1.8 external/gpl3/gcc/dist/libcc1/ChangeLog up to 1.1.1.3 external/gpl3/gcc/dist/libcpp/ChangeLog up to 1.1.1.9 external/gpl3/gcc/dist/libcpp/line-map.c up to 1.1.1.6 external/gpl3/gcc/dist/libdecnumber/ChangeLog up to 1.1.1.9 external/gpl3/gcc/dist/libgcc/ChangeLog up to 1.1.1.11 external/gpl3/gcc/dist/libgcc/config.host up to 1.16 external/gpl3/gcc/dist/libgcc/libgcc2.c up to 1.1.1.4 external/gpl3/gcc/dist/libgcc/libgcov-driver.c up to 1.1.1.2 external/gpl3/gcc/dist/libgcc/unwind-c.c up to 1.1.1.3 external/gpl3/gcc/dist/libgcc/config/aarch64/linux-unwind.h up to 1.1.1.3 external/gpl3/gcc/dist/libgcc/config/alpha/linux-unwind.h up to 1.1.1.3 external/gpl3/gcc/dist/libgcc/config/arm/unwind-arm.c up to 1.1.1.3 external/gpl3/gcc/dist/libgcc/config/arm/unwind-arm.h up to 1.1.1.3 external/gpl3/gcc/dist/libgcc/config/bfin/linux-unwind.h up to 1.1.1.3 external/gpl3/gcc/dist/libgcc/config/i386/linux-unwind.h up to 1.1.1.3 external/gpl3/gcc/dist/libgcc/config/libbid/ChangeLog up to 1.1.1.9 external/gpl3/gcc/dist/libgcc/config/m68k/linux-unwind.h up to 1.1.1.3 external/gpl3/gcc/dist/libgcc/config/nios2/linux-unwind.h up to 1.1.1.2 external/gpl3/gcc/dist/libgcc/config/pa/linux-unwind.h up to 1.1.1.4 external/gpl3/gcc/dist/libgcc/config/rs6000/t-crtstuff up to 1.1.1.2 external/gpl3/gcc/dist/libgcc/config/sh/linux-unwind.h up to 1.1.1.3 external/gpl3/gcc/dist/libgcc/config/sparc/lb1spc.S up to 1.1.1.2 external/gpl3/gcc/dist/libgcc/config/tilepro/linux-unwind.h up to 1.1.1.3 external/gpl3/gcc/dist/libgcc/config/xtensa/ieee754-df.S up to 1.1.1.3 external/gpl3/gcc/dist/libgcc/config/xtensa/ieee754-sf.S up to 1.1.1.3 external/gpl3/gcc/dist/libgcc/config/xtensa/linux-unwind.h up to 1.1.1.3 external/gpl3/gcc/dist/libgcc/config/xtensa/t-elf up to 1.1.1.2 external/gpl3/gcc/dist/libgcc/config/xtensa/t-linux up to 1.1.1.2 external/gpl3/gcc/dist/libgcc/config/xtensa/t-windowed up to 1.1.1.2 external/gpl3/gcc/dist/libgcc/config/xtensa/unwind-dw2-xtensa.c up to 1.4 external/gpl3/gcc/dist/libgomp/ChangeLog up to 1.1.1.9 external/gpl3/gcc/dist/libgomp/env.c up to 1.1.1.4 external/gpl3/gcc/dist/libgomp/hashtab.h up to 1.1.1.2 external/gpl3/gcc/dist/libgomp/libgomp.info up to 1.7 external/gpl3/gcc/dist/libiberty/ChangeLog up to 1.1.1.9 external/gpl3/gcc/dist/libiberty/cp-demangle.c up to 1.1.1.5 external/gpl3/gcc/dist/libiberty/vprintf-support.c up to 1.2 external/gpl3/gcc/dist/libitm/ChangeLog up to 1.1.1.7 external/gpl3/gcc/dist/libitm/libitm.info up to 1.1.1.6 external/gpl3/gcc/dist/libobjc/ChangeLog up to 1.1.1.10 external/gpl3/gcc/dist/libsanitizer/ChangeLog up to 1.1.1.7 external/gpl3/gcc/dist/libsanitizer/asan/asan_globals.cc up to 1.1.1.3 external/gpl3/gcc/dist/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc up to 1.5 external/gpl3/gcc/dist/libsanitizer/sanitizer_common/sanitizer_linux.cc up to 1.9 external/gpl3/gcc/dist/libsanitizer/sanitizer_common/sanitizer_linux.h up to 1.3 external/gpl3/gcc/dist/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc up to 1.6 external/gpl3/gcc/dist/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h up to 1.10 external/gpl3/gcc/dist/libsanitizer/sanitizer_common/sanitizer_procmaps_netbsd.cc up to 1.3 external/gpl3/gcc/dist/libsanitizer/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc up to 1.1.1.2 external/gpl3/gcc/dist/libsanitizer/tsan/tsan_platform_linux.cc up to 1.3 external/gpl3/gcc/dist/libsanitizer/tsan/tsan_rtl.cc up to 1.1.1.3 external/gpl3/gcc/dist/libssp/ChangeLog up to 1.1.1.9 external/gpl3/gcc/dist/libstdc++-v3/ChangeLog up to 1.1.1.11 external/gpl3/gcc/dist/libstdc++-v3/acinclude.m4 up to 1.4 external/gpl3/gcc/dist/libstdc++-v3/config.h.in up to 1.1.1.4 external/gpl3/gcc/dist/libstdc++-v3/configure up to 1.8 external/gpl3/gcc/dist/libstdc++-v3/config/abi/pre/gnu-versioned-namespace.ver up to 1.1.1.4 external/gpl3/gcc/dist/libstdc++-v3/config/io/basic_file_stdio.cc up to 1.1.1.4 external/gpl3/gcc/dist/libstdc++-v3/config/os/mingw32-w64/error_constants.h up to 1.1.1.3 external/gpl3/gcc/dist/libstdc++-v3/doc/doxygen/mainpage.html up to 1.1.1.2 external/gpl3/gcc/dist/libstdc++-v3/doc/html/api.html up to 1.1.1.4 external/gpl3/gcc/dist/libstdc++-v3/doc/html/faq.html up to 1.1.1.5 external/gpl3/gcc/dist/libstdc++-v3/doc/html/ext/lwg-active.html up to 1.1.1.3 external/gpl3/gcc/dist/libstdc++-v3/doc/html/ext/lwg-closed.html up to 1.1.1.3 external/gpl3/gcc/dist/libstdc++-v3/doc/html/ext/lwg-defects.html up to 1.1.1.3 external/gpl3/gcc/dist/libstdc++-v3/doc/html/manual/abi.html up to 1.1.1.6 external/gpl3/gcc/dist/libstdc++-v3/doc/html/manual/bugs.html up to 1.1.1.4 external/gpl3/gcc/dist/libstdc++-v3/doc/html/manual/ext_demangling.html up to 1.1.1.3 external/gpl3/gcc/dist/libstdc++-v3/doc/html/manual/memory.html up to 1.1.1.4 external/gpl3/gcc/dist/libstdc++-v3/doc/html/manual/mt_allocator_impl.html up to 1.1.1.2 external/gpl3/gcc/dist/libstdc++-v3/doc/html/manual/source_code_style.html up to 1.1.1.3 external/gpl3/gcc/dist/libstdc++-v3/doc/html/manual/source_organization.html up to 1.1.1.3 external/gpl3/gcc/dist/libstdc++-v3/doc/html/manual/status.html up to 1.1.1.6 external/gpl3/gcc/dist/libstdc++-v3/doc/xml/api.xml up to 1.1.1.4 external/gpl3/gcc/dist/libstdc++-v3/doc/xml/faq.xml up to 1.1.1.5 external/gpl3/gcc/dist/libstdc++-v3/doc/xml/manual/abi.xml up to 1.1.1.5 external/gpl3/gcc/dist/libstdc++-v3/doc/xml/manual/allocator.xml up to 1.1.1.4 external/gpl3/gcc/dist/libstdc++-v3/doc/xml/manual/appendix_contributing.xml up to 1.1.1.4 external/gpl3/gcc/dist/libstdc++-v3/doc/xml/manual/extensions.xml up to 1.1.1.5 external/gpl3/gcc/dist/libstdc++-v3/doc/xml/manual/intro.xml up to 1.1.1.4 external/gpl3/gcc/dist/libstdc++-v3/doc/xml/manual/mt_allocator.xml up to 1.1.1.3 external/gpl3/gcc/dist/libstdc++-v3/doc/xml/manual/status_cxx2011.xml up to 1.1.1.5 external/gpl3/gcc/dist/libstdc++-v3/doc/xml/manual/status_cxx2014.xml up to 1.1.1.3 external/gpl3/gcc/dist/libstdc++-v3/include/Makefile.am up to 1.1.1.5 external/gpl3/gcc/dist/libstdc++-v3/include/Makefile.in up to 1.1.1.5 external/gpl3/gcc/dist/libstdc++-v3/include/bits/allocator.h up to 1.1.1.4 external/gpl3/gcc/dist/libstdc++-v3/include/bits/basic_ios.h up to 1.1.1.4 external/gpl3/gcc/dist/libstdc++-v3/include/bits/basic_string.h up to 1.1.1.5 external/gpl3/gcc/dist/libstdc++-v3/include/bits/basic_string.tcc up to 1.1.1.4 external/gpl3/gcc/dist/libstdc++-v3/include/bits/c++config up to 1.1.1.5 external/gpl3/gcc/dist/libstdc++-v3/include/bits/hashtable.h up to 1.1.1.4 external/gpl3/gcc/dist/libstdc++-v3/include/bits/ios_base.h up to 1.1.1.4 external/gpl3/gcc/dist/libstdc++-v3/include/bits/istream.tcc up to 1.1.1.4 external/gpl3/gcc/dist/libstdc++-v3/include/bits/list.tcc up to 1.1.1.4 external/gpl3/gcc/dist/libstdc++-v3/include/bits/locale_classes.h up to 1.1.1.4 external/gpl3/gcc/dist/libstdc++-v3/include/bits/locale_conv.h up to 1.1.1.2 external/gpl3/gcc/dist/libstdc++-v3/include/bits/mask_array.h up to 1.1.1.4 external/gpl3/gcc/dist/libstdc++-v3/include/bits/predefined_ops.h up to 1.1.1.2 external/gpl3/gcc/dist/libstdc++-v3/include/bits/regex.h up to 1.1.1.3 external/gpl3/gcc/dist/libstdc++-v3/include/bits/regex.tcc up to 1.1.1.2 external/gpl3/gcc/dist/libstdc++-v3/include/bits/regex_compiler.h up to 1.1.1.3 external/gpl3/gcc/dist/libstdc++-v3/include/bits/shared_ptr_base.h up to 1.1.1.6 external/gpl3/gcc/dist/libstdc++-v3/include/bits/slice_array.h up to 1.1.1.4 external/gpl3/gcc/dist/libstdc++-v3/include/bits/sstream.tcc up to 1.1.1.4 external/gpl3/gcc/dist/libstdc++-v3/include/bits/stl_iterator.h up to 1.1.1.4 external/gpl3/gcc/dist/libstdc++-v3/include/bits/stl_map.h up to 1.1.1.4 external/gpl3/gcc/dist/libstdc++-v3/include/bits/stl_multimap.h up to 1.1.1.4 external/gpl3/gcc/dist/libstdc++-v3/include/bits/stl_multiset.h up to 1.1.1.4 external/gpl3/gcc/dist/libstdc++-v3/include/bits/stl_set.h up to 1.1.1.4 external/gpl3/gcc/dist/libstdc++-v3/include/bits/stl_stack.h up to 1.1.1.4 external/gpl3/gcc/dist/libstdc++-v3/include/bits/stl_tree.h up to 1.1.1.5 external/gpl3/gcc/dist/libstdc++-v3/include/bits/uniform_int_dist.h up to 1.1.1.2 external/gpl3/gcc/dist/libstdc++-v3/include/bits/unique_ptr.h up to 1.1.1.4 external/gpl3/gcc/dist/libstdc++-v3/include/c_global/cmath up to 1.1.1.5 external/gpl3/gcc/dist/libstdc++-v3/include/debug/safe_iterator.h up to 1.1.1.4 external/gpl3/gcc/dist/libstdc++-v3/include/debug/string up to 1.1.1.4 external/gpl3/gcc/dist/libstdc++-v3/include/experimental/algorithm up to 1.1.1.2 external/gpl3/gcc/dist/libstdc++-v3/include/experimental/any up to 1.1.1.2 external/gpl3/gcc/dist/libstdc++-v3/include/experimental/chrono up to 1.1.1.2 external/gpl3/gcc/dist/libstdc++-v3/include/experimental/fs_dir.h up to 1.1.1.3 external/gpl3/gcc/dist/libstdc++-v3/include/experimental/fs_fwd.h up to 1.1.1.3 external/gpl3/gcc/dist/libstdc++-v3/include/experimental/fs_ops.h up to 1.1.1.3 external/gpl3/gcc/dist/libstdc++-v3/include/experimental/fs_path.h up to 1.1.1.3 external/gpl3/gcc/dist/libstdc++-v3/include/experimental/functional up to 1.1.1.2 external/gpl3/gcc/dist/libstdc++-v3/include/experimental/optional up to 1.1.1.3 external/gpl3/gcc/dist/libstdc++-v3/include/experimental/ratio up to 1.1.1.2 external/gpl3/gcc/dist/libstdc++-v3/include/experimental/string_view up to 1.1.1.3 external/gpl3/gcc/dist/libstdc++-v3/include/experimental/string_view.tcc up to 1.1.1.3 external/gpl3/gcc/dist/libstdc++-v3/include/experimental/system_error up to 1.1.1.2 external/gpl3/gcc/dist/libstdc++-v3/include/experimental/tuple up to 1.1.1.3 external/gpl3/gcc/dist/libstdc++-v3/include/experimental/type_traits up to 1.1.1.2 external/gpl3/gcc/dist/libstdc++-v3/include/ext/new_allocator.h up to 1.1.1.4 external/gpl3/gcc/dist/libstdc++-v3/include/ext/pointer.h up to 1.1.1.4 external/gpl3/gcc/dist/libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/binary_heap_.hpp up to 1.1.1.4 external/gpl3/gcc/dist/libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/insert_fn_imps.hpp up to 1.1.1.4 external/gpl3/gcc/dist/libstdc++-v3/include/std/atomic up to 1.1.1.4 external/gpl3/gcc/dist/libstdc++-v3/include/std/chrono up to 1.1.1.4 external/gpl3/gcc/dist/libstdc++-v3/include/std/complex up to 1.5 external/gpl3/gcc/dist/libstdc++-v3/include/std/functional up to 1.1.1.7 external/gpl3/gcc/dist/libstdc++-v3/include/std/istream up to 1.1.1.5 external/gpl3/gcc/dist/libstdc++-v3/include/std/scoped_allocator up to 1.1.1.4 external/gpl3/gcc/dist/libstdc++-v3/include/std/sstream up to 1.1.1.4 external/gpl3/gcc/dist/libstdc++-v3/include/std/thread up to 1.1.1.4 external/gpl3/gcc/dist/libstdc++-v3/include/std/tuple up to 1.1.1.6 external/gpl3/gcc/dist/libstdc++-v3/include/std/utility up to 1.1.1.4 external/gpl3/gcc/dist/libstdc++-v3/include/tr1/cmath up to 1.1.1.4 external/gpl3/gcc/dist/libstdc++-v3/libsupc++/cxxabi.h up to 1.1.1.4 external/gpl3/gcc/dist/libstdc++-v3/python/libstdcxx/v6/printers.py up to 1.1.1.5 external/gpl3/gcc/dist/libstdc++-v3/python/libstdcxx/v6/xmethods.py up to 1.1.1.2 external/gpl3/gcc/dist/libstdc++-v3/src/c++11/codecvt.cc up to 1.1.1.3 external/gpl3/gcc/dist/libstdc++-v3/src/c++11/cxx11-shim_facets.cc up to 1.1.1.2 external/gpl3/gcc/dist/libstdc++-v3/src/c++11/shared_ptr.cc up to 1.1.1.3 external/gpl3/gcc/dist/libstdc++-v3/src/filesystem/Makefile.in up to 1.1.1.2 external/gpl3/gcc/dist/libstdc++-v3/src/filesystem/dir.cc up to 1.1.1.2 external/gpl3/gcc/dist/libstdc++-v3/src/filesystem/ops.cc up to 1.1.1.3 external/gpl3/gcc/dist/lto-plugin/ChangeLog up to 1.1.1.9 external/gpl3/gcc/dist/lto-plugin/lto-plugin.c up to 1.1.1.4 external/gpl3/gcc/dist/maintainer-scripts/ChangeLog up to 1.1.1.10 external/gpl3/gcc/lib/libasan/Makefile up to 1.18 external/gpl3/gcc/lib/libgcc/arch/i386/defs.mk up to 1.5 external/gpl3/gcc/lib/libgcc/arch/m68000/defs.mk up to 1.7 external/gpl3/gcc/lib/libgcc/arch/x86_64/defs.mk up to 1.4 external/gpl3/gcc/lib/libgcc/libgcc/Makefile up to 1.28 external/gpl3/gcc/lib/libgcc/libgcov/arch/alpha/gcov-iov.h up to 1.10 external/gpl3/gcc/lib/libgcc/libgcov/arch/arm/gcov-iov.h up to 1.10 external/gpl3/gcc/lib/libgcc/libgcov/arch/armeb/gcov-iov.h up to 1.10 external/gpl3/gcc/lib/libgcc/libgcov/arch/earm/gcov-iov.h up to 1.10 external/gpl3/gcc/lib/libgcc/libgcov/arch/earmeb/gcov-iov.h up to 1.9 external/gpl3/gcc/lib/libgcc/libgcov/arch/earmhf/gcov-iov.h up to 1.9 external/gpl3/gcc/lib/libgcc/libgcov/arch/earmhfeb/gcov-iov.h up to 1.9 external/gpl3/gcc/lib/libgcc/libgcov/arch/earmv4/gcov-iov.h up to 1.9 external/gpl3/gcc/lib/libgcc/libgcov/arch/earmv4eb/gcov-iov.h up to 1.9 external/gpl3/gcc/lib/libgcc/libgcov/arch/earmv6/gcov-iov.h up to 1.9 external/gpl3/gcc/lib/libgcc/libgcov/arch/earmv6eb/gcov-iov.h up to 1.9 external/gpl3/gcc/lib/libgcc/libgcov/arch/earmv6hf/gcov-iov.h up to 1.9 external/gpl3/gcc/lib/libgcc/libgcov/arch/earmv6hfeb/gcov-iov.h up to 1.9 external/gpl3/gcc/lib/libgcc/libgcov/arch/earmv7/gcov-iov.h up to 1.9 external/gpl3/gcc/lib/libgcc/libgcov/arch/earmv7eb/gcov-iov.h up to 1.9 external/gpl3/gcc/lib/libgcc/libgcov/arch/earmv7hf/gcov-iov.h up to 1.9 external/gpl3/gcc/lib/libgcc/libgcov/arch/earmv7hfeb/gcov-iov.h up to 1.9 external/gpl3/gcc/lib/libgcc/libgcov/arch/hppa/gcov-iov.h up to 1.10 external/gpl3/gcc/lib/libgcc/libgcov/arch/i386/gcov-iov.h up to 1.10 external/gpl3/gcc/lib/libgcc/libgcov/arch/ia64/gcov-iov.h up to 1.5 external/gpl3/gcc/lib/libgcc/libgcov/arch/m68000/gcov-iov.h up to 1.9 external/gpl3/gcc/lib/libgcc/libgcov/arch/m68k/gcov-iov.h up to 1.10 external/gpl3/gcc/lib/libgcc/libgcov/arch/mips64eb/gcov-iov.h up to 1.10 external/gpl3/gcc/lib/libgcc/libgcov/arch/mips64el/gcov-iov.h up to 1.10 external/gpl3/gcc/lib/libgcc/libgcov/arch/mipseb/gcov-iov.h up to 1.10 external/gpl3/gcc/lib/libgcc/libgcov/arch/mipsel/gcov-iov.h up to 1.10 external/gpl3/gcc/lib/libgcc/libgcov/arch/powerpc/gcov-iov.h up to 1.10 external/gpl3/gcc/lib/libgcc/libgcov/arch/powerpc64/gcov-iov.h up to 1.6 external/gpl3/gcc/lib/libgcc/libgcov/arch/sh3eb/gcov-iov.h up to 1.10 external/gpl3/gcc/lib/libgcc/libgcov/arch/sh3el/gcov-iov.h up to 1.10 external/gpl3/gcc/lib/libgcc/libgcov/arch/sparc/gcov-iov.h up to 1.10 external/gpl3/gcc/lib/libgcc/libgcov/arch/sparc64/gcov-iov.h up to 1.10 external/gpl3/gcc/lib/libgcc/libgcov/arch/vax/gcov-iov.h up to 1.10 external/gpl3/gcc/lib/libgcc/libgcov/arch/x86_64/gcov-iov.h up to 1.10 external/gpl3/gcc/lib/libiberty/defs.mk up to 1.14 external/gpl3/gcc/lib/libiberty/arch/ia64/config.h up to 1.6 external/gpl3/gcc/lib/liblto_plugin/Makefile up to 1.9 external/gpl3/gcc/lib/libstdc++-v3/Makefile up to 1.28 external/gpl3/gcc/lib/libstdc++-v3/arch/alpha/c++config.h up to 1.21 external/gpl3/gcc/lib/libstdc++-v3/arch/alpha/defs.mk up to 1.5 external/gpl3/gcc/lib/libstdc++-v3/arch/alpha/gstdint.h up to 1.14 external/gpl3/gcc/lib/libstdc++-v3/arch/arm/c++config.h up to 1.23 external/gpl3/gcc/lib/libstdc++-v3/arch/arm/defs.mk up to 1.5 external/gpl3/gcc/lib/libstdc++-v3/arch/arm/gstdint.h up to 1.14 external/gpl3/gcc/lib/libstdc++-v3/arch/armeb/c++config.h up to 1.23 external/gpl3/gcc/lib/libstdc++-v3/arch/armeb/defs.mk up to 1.5 external/gpl3/gcc/lib/libstdc++-v3/arch/armeb/gstdint.h up to 1.15 external/gpl3/gcc/lib/libstdc++-v3/arch/coldfire/defs.mk up to 1.6 external/gpl3/gcc/lib/libstdc++-v3/arch/earm/c++config.h up to 1.21 external/gpl3/gcc/lib/libstdc++-v3/arch/earm/defs.mk up to 1.5 external/gpl3/gcc/lib/libstdc++-v3/arch/earm/gstdint.h up to 1.15 external/gpl3/gcc/lib/libstdc++-v3/arch/earmeb/c++config.h up to 1.19 external/gpl3/gcc/lib/libstdc++-v3/arch/earmeb/defs.mk up to 1.6 external/gpl3/gcc/lib/libstdc++-v3/arch/earmeb/gstdint.h up to 1.14 external/gpl3/gcc/lib/libstdc++-v3/arch/earmhf/c++config.h up to 1.19 external/gpl3/gcc/lib/libstdc++-v3/arch/earmhf/defs.mk up to 1.7 external/gpl3/gcc/lib/libstdc++-v3/arch/earmhf/gstdint.h up to 1.14 external/gpl3/gcc/lib/libstdc++-v3/arch/earmhfeb/c++config.h up to 1.17 external/gpl3/gcc/lib/libstdc++-v3/arch/earmhfeb/defs.mk up to 1.5 external/gpl3/gcc/lib/libstdc++-v3/arch/earmhfeb/gstdint.h up to 1.14 external/gpl3/gcc/lib/libstdc++-v3/arch/earmv4/c++config.h up to 1.16 external/gpl3/gcc/lib/libstdc++-v3/arch/earmv4/defs.mk up to 1.5 external/gpl3/gcc/lib/libstdc++-v3/arch/earmv4/gstdint.h up to 1.14 external/gpl3/gcc/lib/libstdc++-v3/arch/earmv4eb/c++config.h up to 1.16 external/gpl3/gcc/lib/libstdc++-v3/arch/earmv4eb/defs.mk up to 1.5 external/gpl3/gcc/lib/libstdc++-v3/arch/earmv4eb/gstdint.h up to 1.14 external/gpl3/gcc/lib/libstdc++-v3/arch/earmv6/c++config.h up to 1.16 external/gpl3/gcc/lib/libstdc++-v3/arch/earmv6/defs.mk up to 1.5 external/gpl3/gcc/lib/libstdc++-v3/arch/earmv6/gstdint.h up to 1.14 external/gpl3/gcc/lib/libstdc++-v3/arch/earmv6eb/c++config.h up to 1.16 external/gpl3/gcc/lib/libstdc++-v3/arch/earmv6eb/defs.mk up to 1.5 external/gpl3/gcc/lib/libstdc++-v3/arch/earmv6eb/gstdint.h up to 1.13 external/gpl3/gcc/lib/libstdc++-v3/arch/earmv6hf/c++config.h up to 1.16 external/gpl3/gcc/lib/libstdc++-v3/arch/earmv6hf/defs.mk up to 1.5 external/gpl3/gcc/lib/libstdc++-v3/arch/earmv6hf/gstdint.h up to 1.13 external/gpl3/gcc/lib/libstdc++-v3/arch/earmv6hfeb/c++config.h up to 1.16 external/gpl3/gcc/lib/libstdc++-v3/arch/earmv6hfeb/defs.mk up to 1.5 external/gpl3/gcc/lib/libstdc++-v3/arch/earmv6hfeb/gstdint.h up to 1.13 external/gpl3/gcc/lib/libstdc++-v3/arch/earmv7/c++config.h up to 1.16 external/gpl3/gcc/lib/libstdc++-v3/arch/earmv7/defs.mk up to 1.5 external/gpl3/gcc/lib/libstdc++-v3/arch/earmv7/gstdint.h up to 1.13 external/gpl3/gcc/lib/libstdc++-v3/arch/earmv7eb/c++config.h up to 1.16 external/gpl3/gcc/lib/libstdc++-v3/arch/earmv7eb/defs.mk up to 1.5 external/gpl3/gcc/lib/libstdc++-v3/arch/earmv7eb/gstdint.h up to 1.13 external/gpl3/gcc/lib/libstdc++-v3/arch/earmv7hf/c++config.h up to 1.16 external/gpl3/gcc/lib/libstdc++-v3/arch/earmv7hf/defs.mk up to 1.5 external/gpl3/gcc/lib/libstdc++-v3/arch/earmv7hf/gstdint.h up to 1.13 external/gpl3/gcc/lib/libstdc++-v3/arch/earmv7hfeb/c++config.h up to 1.16 external/gpl3/gcc/lib/libstdc++-v3/arch/earmv7hfeb/defs.mk up to 1.5 external/gpl3/gcc/lib/libstdc++-v3/arch/earmv7hfeb/gstdint.h up to 1.13 external/gpl3/gcc/lib/libstdc++-v3/arch/hppa/c++config.h up to 1.21 external/gpl3/gcc/lib/libstdc++-v3/arch/hppa/defs.mk up to 1.5 external/gpl3/gcc/lib/libstdc++-v3/arch/hppa/gstdint.h up to 1.14 external/gpl3/gcc/lib/libstdc++-v3/arch/i386/c++config.h up to 1.22 external/gpl3/gcc/lib/libstdc++-v3/arch/i386/defs.mk up to 1.7 external/gpl3/gcc/lib/libstdc++-v3/arch/i386/gstdint.h up to 1.14 external/gpl3/gcc/lib/libstdc++-v3/arch/ia64/c++config.h up to 1.7 external/gpl3/gcc/lib/libstdc++-v3/arch/ia64/defs.mk up to 1.5 external/gpl3/gcc/lib/libstdc++-v3/arch/ia64/gstdint.h up to 1.5 external/gpl3/gcc/lib/libstdc++-v3/arch/m68000/c++config.h up to 1.16 external/gpl3/gcc/lib/libstdc++-v3/arch/m68000/defs.mk up to 1.7 external/gpl3/gcc/lib/libstdc++-v3/arch/m68000/gstdint.h up to 1.9 external/gpl3/gcc/lib/libstdc++-v3/arch/m68k/c++config.h up to 1.21 external/gpl3/gcc/lib/libstdc++-v3/arch/m68k/defs.mk up to 1.6 external/gpl3/gcc/lib/libstdc++-v3/arch/m68k/gstdint.h up to 1.12 external/gpl3/gcc/lib/libstdc++-v3/arch/mips64eb/c++config.h up to 1.21 external/gpl3/gcc/lib/libstdc++-v3/arch/mips64eb/defs.mk up to 1.6 external/gpl3/gcc/lib/libstdc++-v3/arch/mips64eb/gstdint.h up to 1.12 external/gpl3/gcc/lib/libstdc++-v3/arch/mips64el/c++config.h up to 1.20 external/gpl3/gcc/lib/libstdc++-v3/arch/mips64el/defs.mk up to 1.6 external/gpl3/gcc/lib/libstdc++-v3/arch/mips64el/gstdint.h up to 1.13 external/gpl3/gcc/lib/libstdc++-v3/arch/mipseb/c++config.h up to 1.23 external/gpl3/gcc/lib/libstdc++-v3/arch/mipseb/defs.mk up to 1.6 external/gpl3/gcc/lib/libstdc++-v3/arch/mipseb/gstdint.h up to 1.12 external/gpl3/gcc/lib/libstdc++-v3/arch/mipsel/c++config.h up to 1.21 external/gpl3/gcc/lib/libstdc++-v3/arch/mipsel/defs.mk up to 1.5 external/gpl3/gcc/lib/libstdc++-v3/arch/mipsel/gstdint.h up to 1.12 external/gpl3/gcc/lib/libstdc++-v3/arch/powerpc/c++config.h up to 1.22 external/gpl3/gcc/lib/libstdc++-v3/arch/powerpc/defs.mk up to 1.5 external/gpl3/gcc/lib/libstdc++-v3/arch/powerpc/gstdint.h up to 1.13 external/gpl3/gcc/lib/libstdc++-v3/arch/powerpc64/c++config.h up to 1.10 external/gpl3/gcc/lib/libstdc++-v3/arch/powerpc64/defs.mk up to 1.6 external/gpl3/gcc/lib/libstdc++-v3/arch/powerpc64/gstdint.h up to 1.7 external/gpl3/gcc/lib/libstdc++-v3/arch/sh3eb/c++config.h up to 1.21 external/gpl3/gcc/lib/libstdc++-v3/arch/sh3eb/defs.mk up to 1.7 external/gpl3/gcc/lib/libstdc++-v3/arch/sh3eb/gstdint.h up to 1.13 external/gpl3/gcc/lib/libstdc++-v3/arch/sh3el/c++config.h up to 1.23 external/gpl3/gcc/lib/libstdc++-v3/arch/sh3el/defs.mk up to 1.5 external/gpl3/gcc/lib/libstdc++-v3/arch/sh3el/gstdint.h up to 1.13 external/gpl3/gcc/lib/libstdc++-v3/arch/sparc/c++config.h up to 1.22 external/gpl3/gcc/lib/libstdc++-v3/arch/sparc/defs.mk up to 1.5 external/gpl3/gcc/lib/libstdc++-v3/arch/sparc/gstdint.h up to 1.13 external/gpl3/gcc/lib/libstdc++-v3/arch/sparc64/c++config.h up to 1.21 external/gpl3/gcc/lib/libstdc++-v3/arch/sparc64/defs.mk up to 1.6 external/gpl3/gcc/lib/libstdc++-v3/arch/sparc64/gstdint.h up to 1.13 external/gpl3/gcc/lib/libstdc++-v3/arch/vax/c++config.h up to 1.23 external/gpl3/gcc/lib/libstdc++-v3/arch/vax/defs.mk up to 1.7 external/gpl3/gcc/lib/libstdc++-v3/arch/vax/gstdint.h up to 1.13 external/gpl3/gcc/lib/libstdc++-v3/arch/x86_64/c++config.h up to 1.25 external/gpl3/gcc/lib/libstdc++-v3/arch/x86_64/defs.mk up to 1.7 external/gpl3/gcc/lib/libstdc++-v3/arch/x86_64/gstdint.h up to 1.15 external/gpl3/gcc/lib/libstdc++-v3/include/bits/Makefile up to 1.19 external/gpl3/gcc/lib/libubsan/Makefile up to 1.3 external/gpl3/gcc/usr.bin/Makefile.backend up to 1.6 external/gpl3/gcc/usr.bin/Makefile.inc up to 1.29 external/gpl3/gcc/usr.bin/backend/Makefile up to 1.39 external/gpl3/gcc/usr.bin/common/Makefile up to 1.5 external/gpl3/gcc/usr.bin/frontend/Makefile up to 1.11 external/gpl3/gcc/usr.bin/gcc/arch/alpha/bversion.h up to 1.8 external/gpl3/gcc/usr.bin/gcc/arch/alpha/configargs.h up to 1.23 external/gpl3/gcc/usr.bin/gcc/arch/alpha/defs.mk up to 1.10 external/gpl3/gcc/usr.bin/gcc/arch/alpha/plugin-version.h up to 1.11 external/gpl3/gcc/usr.bin/gcc/arch/arm/bversion.h up to 1.8 external/gpl3/gcc/usr.bin/gcc/arch/arm/configargs.h up to 1.26 external/gpl3/gcc/usr.bin/gcc/arch/arm/defs.mk up to 1.12 external/gpl3/gcc/usr.bin/gcc/arch/arm/plugin-version.h up to 1.11 external/gpl3/gcc/usr.bin/gcc/arch/armeb/bversion.h up to 1.8 external/gpl3/gcc/usr.bin/gcc/arch/armeb/configargs.h up to 1.27 external/gpl3/gcc/usr.bin/gcc/arch/armeb/defs.mk up to 1.12 external/gpl3/gcc/usr.bin/gcc/arch/armeb/plugin-version.h up to 1.11 external/gpl3/gcc/usr.bin/gcc/arch/earm/bversion.h up to 1.8 external/gpl3/gcc/usr.bin/gcc/arch/earm/configargs.h up to 1.24 external/gpl3/gcc/usr.bin/gcc/arch/earm/defs.mk up to 1.11 external/gpl3/gcc/usr.bin/gcc/arch/earm/plugin-version.h up to 1.11 external/gpl3/gcc/usr.bin/gcc/arch/earmeb/bversion.h up to 1.7 external/gpl3/gcc/usr.bin/gcc/arch/earmeb/configargs.h up to 1.20 external/gpl3/gcc/usr.bin/gcc/arch/earmeb/defs.mk up to 1.10 external/gpl3/gcc/usr.bin/gcc/arch/earmeb/plugin-version.h up to 1.10 external/gpl3/gcc/usr.bin/gcc/arch/earmhf/bversion.h up to 1.7 external/gpl3/gcc/usr.bin/gcc/arch/earmhf/configargs.h up to 1.21 external/gpl3/gcc/usr.bin/gcc/arch/earmhf/defs.mk up to 1.11 external/gpl3/gcc/usr.bin/gcc/arch/earmhf/plugin-version.h up to 1.10 external/gpl3/gcc/usr.bin/gcc/arch/earmhfeb/bversion.h up to 1.7 external/gpl3/gcc/usr.bin/gcc/arch/earmhfeb/configargs.h up to 1.19 external/gpl3/gcc/usr.bin/gcc/arch/earmhfeb/defs.mk up to 1.9 external/gpl3/gcc/usr.bin/gcc/arch/earmhfeb/plugin-version.h up to 1.10 external/gpl3/gcc/usr.bin/gcc/arch/earmv4/bversion.h up to 1.7 external/gpl3/gcc/usr.bin/gcc/arch/earmv4/configargs.h up to 1.18 external/gpl3/gcc/usr.bin/gcc/arch/earmv4/defs.mk up to 1.9 external/gpl3/gcc/usr.bin/gcc/arch/earmv4/plugin-version.h up to 1.10 external/gpl3/gcc/usr.bin/gcc/arch/earmv4eb/bversion.h up to 1.7 external/gpl3/gcc/usr.bin/gcc/arch/earmv4eb/configargs.h up to 1.18 external/gpl3/gcc/usr.bin/gcc/arch/earmv4eb/defs.mk up to 1.9 external/gpl3/gcc/usr.bin/gcc/arch/earmv4eb/plugin-version.h up to 1.10 external/gpl3/gcc/usr.bin/gcc/arch/earmv6/bversion.h up to 1.7 external/gpl3/gcc/usr.bin/gcc/arch/earmv6/configargs.h up to 1.18 external/gpl3/gcc/usr.bin/gcc/arch/earmv6/defs.mk up to 1.9 external/gpl3/gcc/usr.bin/gcc/arch/earmv6/plugin-version.h up to 1.10 external/gpl3/gcc/usr.bin/gcc/arch/earmv6eb/bversion.h up to 1.7 external/gpl3/gcc/usr.bin/gcc/arch/earmv6eb/configargs.h up to 1.18 external/gpl3/gcc/usr.bin/gcc/arch/earmv6eb/defs.mk up to 1.9 external/gpl3/gcc/usr.bin/gcc/arch/earmv6eb/plugin-version.h up to 1.10 external/gpl3/gcc/usr.bin/gcc/arch/earmv6hf/bversion.h up to 1.7 external/gpl3/gcc/usr.bin/gcc/arch/earmv6hf/configargs.h up to 1.18 external/gpl3/gcc/usr.bin/gcc/arch/earmv6hf/defs.mk up to 1.9 external/gpl3/gcc/usr.bin/gcc/arch/earmv6hf/plugin-version.h up to 1.10 external/gpl3/gcc/usr.bin/gcc/arch/earmv6hfeb/bversion.h up to 1.7 external/gpl3/gcc/usr.bin/gcc/arch/earmv6hfeb/configargs.h up to 1.18 external/gpl3/gcc/usr.bin/gcc/arch/earmv6hfeb/defs.mk up to 1.9 external/gpl3/gcc/usr.bin/gcc/arch/earmv6hfeb/plugin-version.h up to 1.10 external/gpl3/gcc/usr.bin/gcc/arch/earmv7/bversion.h up to 1.7 external/gpl3/gcc/usr.bin/gcc/arch/earmv7/configargs.h up to 1.18 external/gpl3/gcc/usr.bin/gcc/arch/earmv7/defs.mk up to 1.9 external/gpl3/gcc/usr.bin/gcc/arch/earmv7/plugin-version.h up to 1.10 external/gpl3/gcc/usr.bin/gcc/arch/earmv7eb/bversion.h up to 1.7 external/gpl3/gcc/usr.bin/gcc/arch/earmv7eb/configargs.h up to 1.18 external/gpl3/gcc/usr.bin/gcc/arch/earmv7eb/defs.mk up to 1.9 external/gpl3/gcc/usr.bin/gcc/arch/earmv7eb/plugin-version.h up to 1.10 external/gpl3/gcc/usr.bin/gcc/arch/earmv7hf/bversion.h up to 1.7 external/gpl3/gcc/usr.bin/gcc/arch/earmv7hf/configargs.h up to 1.18 external/gpl3/gcc/usr.bin/gcc/arch/earmv7hf/defs.mk up to 1.9 external/gpl3/gcc/usr.bin/gcc/arch/earmv7hf/plugin-version.h up to 1.10 external/gpl3/gcc/usr.bin/gcc/arch/earmv7hfeb/bversion.h up to 1.7 external/gpl3/gcc/usr.bin/gcc/arch/earmv7hfeb/configargs.h up to 1.18 external/gpl3/gcc/usr.bin/gcc/arch/earmv7hfeb/defs.mk up to 1.9 external/gpl3/gcc/usr.bin/gcc/arch/earmv7hfeb/plugin-version.h up to 1.10 external/gpl3/gcc/usr.bin/gcc/arch/hppa/bversion.h up to 1.8 external/gpl3/gcc/usr.bin/gcc/arch/hppa/configargs.h up to 1.24 external/gpl3/gcc/usr.bin/gcc/arch/hppa/defs.mk up to 1.12 external/gpl3/gcc/usr.bin/gcc/arch/hppa/plugin-version.h up to 1.11 external/gpl3/gcc/usr.bin/gcc/arch/i386/bversion.h up to 1.8 external/gpl3/gcc/usr.bin/gcc/arch/i386/configargs.h up to 1.31 external/gpl3/gcc/usr.bin/gcc/arch/i386/defs.mk up to 1.12 external/gpl3/gcc/usr.bin/gcc/arch/i386/i386-builtin-types.inc up to 1.4 external/gpl3/gcc/usr.bin/gcc/arch/i386/plugin-version.h up to 1.11 external/gpl3/gcc/usr.bin/gcc/arch/ia64/auto-host.h up to 1.5 external/gpl3/gcc/usr.bin/gcc/arch/ia64/bversion.h up to 1.5 external/gpl3/gcc/usr.bin/gcc/arch/ia64/configargs.h up to 1.6 external/gpl3/gcc/usr.bin/gcc/arch/ia64/defs.mk up to 1.5 external/gpl3/gcc/usr.bin/gcc/arch/ia64/plugin-version.h up to 1.5 external/gpl3/gcc/usr.bin/gcc/arch/m68000/bversion.h up to 1.8 external/gpl3/gcc/usr.bin/gcc/arch/m68000/configargs.h up to 1.18 external/gpl3/gcc/usr.bin/gcc/arch/m68000/defs.mk up to 1.11 external/gpl3/gcc/usr.bin/gcc/arch/m68000/plugin-version.h up to 1.9 external/gpl3/gcc/usr.bin/gcc/arch/m68k/bversion.h up to 1.8 external/gpl3/gcc/usr.bin/gcc/arch/m68k/configargs.h up to 1.21 external/gpl3/gcc/usr.bin/gcc/arch/m68k/defs.mk up to 1.12 external/gpl3/gcc/usr.bin/gcc/arch/m68k/plugin-version.h up to 1.11 external/gpl3/gcc/usr.bin/gcc/arch/mips64eb/bversion.h up to 1.8 external/gpl3/gcc/usr.bin/gcc/arch/mips64eb/configargs.h up to 1.22 external/gpl3/gcc/usr.bin/gcc/arch/mips64eb/defs.mk up to 1.11 external/gpl3/gcc/usr.bin/gcc/arch/mips64eb/plugin-version.h up to 1.11 external/gpl3/gcc/usr.bin/gcc/arch/mips64el/bversion.h up to 1.8 external/gpl3/gcc/usr.bin/gcc/arch/mips64el/configargs.h up to 1.23 external/gpl3/gcc/usr.bin/gcc/arch/mips64el/defs.mk up to 1.11 external/gpl3/gcc/usr.bin/gcc/arch/mips64el/plugin-version.h up to 1.11 external/gpl3/gcc/usr.bin/gcc/arch/mipseb/bversion.h up to 1.8 external/gpl3/gcc/usr.bin/gcc/arch/mipseb/configargs.h up to 1.22 external/gpl3/gcc/usr.bin/gcc/arch/mipseb/defs.mk up to 1.12 external/gpl3/gcc/usr.bin/gcc/arch/mipseb/plugin-version.h up to 1.11 external/gpl3/gcc/usr.bin/gcc/arch/mipsel/bversion.h up to 1.8 external/gpl3/gcc/usr.bin/gcc/arch/mipsel/configargs.h up to 1.23 external/gpl3/gcc/usr.bin/gcc/arch/mipsel/defs.mk up to 1.12 external/gpl3/gcc/usr.bin/gcc/arch/mipsel/plugin-version.h up to 1.11 external/gpl3/gcc/usr.bin/gcc/arch/powerpc/bversion.h up to 1.8 external/gpl3/gcc/usr.bin/gcc/arch/powerpc/configargs.h up to 1.28 external/gpl3/gcc/usr.bin/gcc/arch/powerpc/defs.mk up to 1.13 external/gpl3/gcc/usr.bin/gcc/arch/powerpc/plugin-version.h up to 1.11 external/gpl3/gcc/usr.bin/gcc/arch/powerpc64/bversion.h up to 1.5 external/gpl3/gcc/usr.bin/gcc/arch/powerpc64/configargs.h up to 1.11 external/gpl3/gcc/usr.bin/gcc/arch/powerpc64/defs.mk up to 1.6 external/gpl3/gcc/usr.bin/gcc/arch/powerpc64/plugin-version.h up to 1.5 external/gpl3/gcc/usr.bin/gcc/arch/sh3eb/bversion.h up to 1.8 external/gpl3/gcc/usr.bin/gcc/arch/sh3eb/configargs.h up to 1.24 external/gpl3/gcc/usr.bin/gcc/arch/sh3eb/defs.mk up to 1.11 external/gpl3/gcc/usr.bin/gcc/arch/sh3eb/plugin-version.h up to 1.11 external/gpl3/gcc/usr.bin/gcc/arch/sh3el/bversion.h up to 1.8 external/gpl3/gcc/usr.bin/gcc/arch/sh3el/configargs.h up to 1.26 external/gpl3/gcc/usr.bin/gcc/arch/sh3el/defs.mk up to 1.11 external/gpl3/gcc/usr.bin/gcc/arch/sh3el/plugin-version.h up to 1.11 external/gpl3/gcc/usr.bin/gcc/arch/sparc/bversion.h up to 1.8 external/gpl3/gcc/usr.bin/gcc/arch/sparc/configargs.h up to 1.26 external/gpl3/gcc/usr.bin/gcc/arch/sparc/defs.mk up to 1.11 external/gpl3/gcc/usr.bin/gcc/arch/sparc/plugin-version.h up to 1.11 external/gpl3/gcc/usr.bin/gcc/arch/sparc64/bversion.h up to 1.8 external/gpl3/gcc/usr.bin/gcc/arch/sparc64/configargs.h up to 1.26 external/gpl3/gcc/usr.bin/gcc/arch/sparc64/defs.mk up to 1.11 external/gpl3/gcc/usr.bin/gcc/arch/sparc64/plugin-version.h up to 1.11 external/gpl3/gcc/usr.bin/gcc/arch/vax/bversion.h up to 1.8 external/gpl3/gcc/usr.bin/gcc/arch/vax/configargs.h up to 1.24 external/gpl3/gcc/usr.bin/gcc/arch/vax/defs.mk up to 1.12 external/gpl3/gcc/usr.bin/gcc/arch/vax/plugin-version.h up to 1.11 external/gpl3/gcc/usr.bin/gcc/arch/x86_64/bversion.h up to 1.8 external/gpl3/gcc/usr.bin/gcc/arch/x86_64/configargs.h up to 1.33 external/gpl3/gcc/usr.bin/gcc/arch/x86_64/defs.mk up to 1.13 external/gpl3/gcc/usr.bin/gcc/arch/x86_64/i386-builtin-types.inc up to 1.4 external/gpl3/gcc/usr.bin/gcc/arch/x86_64/plugin-version.h up to 1.11 external/gpl3/gcc/usr.bin/include/arch/i386.mk up to 1.3 external/gpl3/gcc/usr.bin/include/arch/x86_64.mk up to 1.3 external/gpl3/gcc/usr.bin/libcpp/arch/ia64/config.h up to 1.4 distrib/sets/lists/comp/md.amd64 1.252 distrib/sets/lists/comp/md.i386 1.175 distrib/sets/lists/comp/shl.mi 1.309 distrib/sets/lists/debug/shl.mi 1.187 external/gpl3/gcc/lib/liblto_plugin/Makefile 1.6 lib/libc/stdlib/jemalloc.c 1.43 Update gcc to gcc 5.5. Bump lib minor for liblto_plugin.so link with -liberty. The HPPA architectures (1.1 and 2.0) both define quadruple-word (128-bit) floating point types. Adjust alignment to match. @ text @d1 10 a10 3Installing GCC d47 4 a50 33 d52 76 d129 2 a130 5Installing GCC
d132 1 d134 3 d138 9 d148 10 d159 1 d161 1 d163 4 d168 4 d173 1 d175 1 d177 3 d181 4 d186 1 d188 1 d190 1 d192 1 d194 1 d196 3 d200 1 d202 1 d204 1 d206 1 d208 1 a208 5 a209 162Please read this document carefully before installing the GNU Compiler Collection on your machine.
Note that this list of install notes is not a list of supported hosts or targets. Not all supported hosts and targets are listed here, only the ones that require host-specific or target-specific information have to.
- aarch64*-*-*
- alpha*-*-*
- alpha*-dec-osf5.1
- amd64-*-solaris2.10
- arm-*-eabi
- avr
- Blackfin
- DOS
- *-*-freebsd*
- h8300-hms
- hppa*-hp-hpux*
- hppa*-hp-hpux10
- hppa*-hp-hpux11
- *-*-linux-gnu
- i?86-*-linux*
- i?86-*-solaris2.10
- ia64-*-linux
- ia64-*-hpux*
- *-ibm-aix*
- iq2000-*-elf
- lm32-*-elf
- lm32-*-uclinux
- m32c-*-elf
- m32r-*-elf
- m68k-*-*
- m68k-uclinux
- mep-*-elf
- microblaze-*-elf
- mips-*-*
- mips-sgi-irix5
- mips-sgi-irix6
- nds32le-*-elf
- nds32be-*-elf
- nvptx-*-none
- powerpc*-*-*
- powerpc-*-darwin*
- powerpc-*-elf
- powerpc*-*-linux-gnu*
- powerpc-*-netbsd*
- powerpc-*-eabisim
- powerpc-*-eabi
- powerpcle-*-elf
- powerpcle-*-eabisim
- powerpcle-*-eabi
- s390-*-linux*
- s390x-*-linux*
- s390x-ibm-tpf*
- *-*-solaris2*
- sparc*-*-*
- sparc-sun-solaris2*
- sparc-sun-solaris2.10
- sparc-*-linux*
- sparc64-*-solaris2*
- sparcv9-*-solaris2*
- c6x-*-*
- tilegx-*-linux*
- tilegxbe-*-linux*
- tilepro-*-linux*
- visium-*-elf
- *-*-vxworks*
- x86_64-*-*, amd64-*-*
- x86_64-*-solaris2.1[0-9]*
- xtensa*-*-elf
- xtensa*-*-linux*
- Microsoft Windows
- *-*-cygwin
- *-*-interix
- *-*-mingw32
- OS/2
- Older systems
- all ELF targets (SVR4, Solaris 2, etc.)
aarch64*-*-*
Binutils pre 2.24 does not have support for selecting -mabi and does not support ILP32. If it is used to build GCC 4.9 or later, GCC will not support option -mabi=ilp32.
To enable a workaround for the Cortex-A53 erratum number 835769 by default (for all CPUs regardless of -mcpu option given) at configure time use the --enable-fix-cortex-a53-835769 option. This will enable the fix by default and can be explicitly disabled during compilation by passing the -mno-fix-cortex-a53-835769 option. Conversely, --disable-fix-cortex-a53-835769 will disable the workaround by default. The workaround is disabled by default if neither of --enable-fix-cortex-a53-835769 or --disable-fix-cortex-a53-835769 is given at configure time.
To enable a workaround for the Cortex-A53 erratum number 843419 by default (for all CPUs regardless of -mcpu option given) at configure time use the --enable-fix-cortex-a53-843419 option. This workaround is applied at link time. Enabling the workaround will cause GCC to pass the relevant option to the linker. It can be explicitly disabled during compilation by passing the -mno-fix-cortex-a53-843419 option. Conversely, --disable-fix-cortex-a53-843419 will disable the workaround by default. The workaround is disabled by default if neither of --enable-fix-cortex-a53-843419 or --disable-fix-cortex-a53-843419 is given at configure time.
alpha*-*-*
This section contains general configuration information for all alpha-based platforms using ELF (in particular, ignore this section for DEC OSF/1, Digital UNIX and Tru64 UNIX). In addition to reading this section, please read all other sections that match your target.
We require binutils 2.11.2 or newer. Previous binutils releases had a number of problems with DWARF 2 debugging information, not the least of which is incorrect linking of shared libraries.
alpha*-dec-osf5.1
Systems using processors that implement the DEC Alpha architecture and are running the DEC/Compaq/HP Unix (DEC OSF/1, Digital UNIX, or Compaq/HP Tru64 UNIX) operating system, for example the DEC Alpha AXP systems.
Support for Tru64 UNIX V5.1 has been removed in GCC 4.8. As of GCC 4.6, support for Tru64 UNIX V4.0 and V5.0 has been removed. As of GCC 3.2, versions before
alpha*-dec-osf4are no longer supported. (These are the versions which identify themselves as DEC OSF/1.)
amd64-*-solaris2.1[0-9]*
This is a synonym for ‘x86_64-*-solaris2.1[0-9]*’.
arc-*-elf32
Use ‘configure --target=arc-elf32 --with-cpu=cpu --enable-languages="c,c++"’ to configure GCC, with cpu being one of ‘arc600’, ‘arc601’, or ‘arc700’.
arc-linux-uclibc
Use ‘configure --target=arc-linux-uclibc --with-cpu=arc700 --enable-languages="c,c++"’ to configure GCC.
arm-*-eabi
d214 5 a218 4
avr
d220 1 a220 1 applications. There are no standard Unix configurations. d223 4 a226 4Use ‘configure --target=avr --enable-languages="c"’ to configure GCC.
Further installation notes and other useful information about AVR tools d228 18 a245 19
We strongly recommend using binutils 2.13 or newer.
The following error:
Error: register requiredindicates that you should upgrade to a newer version of the binutils.
Blackfin
The Blackfin processor, an Analog Devices DSP. d247 2 a248 2
More information, and a version of binutils with support for this processor, d250 5 a254 4
CR16
a256 1 d258 12 a269 11See “CR16 Options” in the main manual for a list of CR16-specific options.
Use ‘configure --target=cr16-elf --enable-languages=c,c++’ to configure GCC for building a CR16 elf cross-compiler.
Use ‘configure --target=cr16-uclinux --enable-languages=c,c++’ to configure GCC for building a CR16 uclinux cross-compiler.
CRIS
d272 2 a273 2See “CRIS Options” in the main manual d275 7 a281 11
There are a few different CRIS targets:
cris-axis-elfMainly for monolithic embedded systems. Includes a multilib for the ‘v10’ core used in ‘ETRAX 100 LX’.
cris-axis-linux-gnu- d284 1 a284 1
A GNU/Linux port for the CRIS architecture, currently targeting ‘ETRAX 100 LX’ by default.
For
cris-axis-elfyou need binutils 2.11 d286 2 a287 2Pre-packaged tools can be obtained from d291 5 a295 4
DOS
d297 2 a298 2You cannot install GCC by itself on MSDOS; it will not compile under d302 6 a307 5
epiphany-*-elf
Adapteva Epiphany. d309 5 a313 4
*-*-freebsd*
d317 2 a318 2In order to better utilize FreeBSD base system functionality and match d323 1 a323 1 libgcc_s.so.1 and boehm-gc (on FreeBSD 7 or later) is enabled d325 4 a328 4
We support FreeBSD using the ELF file format with DWARF 2 debugging for all CPU architectures. You may use -gstabs instead of -g, if you really want the old debugging format. There are d332 1 a332 1 GCC. In particular, --enable-threads is now configured by d338 2 a339 2
The version of binutils installed in /usr/bin probably works d341 1 a341 1 binutils and/or the version found in /usr/ports/devel/binutils has d346 5 a350 4
h8300-hms
d352 4 a355 4Please have a look at the binaries page.
The calling convention and structure layout has changed in release 2.6. d359 5 a363 4
hppa*-hp-hpux*
d365 2 a366 2We require using gas/binutils on all hppa platforms. Version 2.19 or d368 7 a374 7
It may be helpful to configure GCC with the --with-gnu-as and --with-as=… options to ensure that GCC can find GAS.
The HP assembler should not be used with GCC. It is rarely tested and may not work. It shouldn’t be used with any languages other than C due to its d376 2 a377 2
Specifically, -g does not work (HP-UX uses a peculiar debugging d381 3 a383 3 ‘make all-host all-target’ after getting the failure from ‘make’.
Various GCC features are not supported. For example, it does not support weak d387 2 a388 2
There are two default scheduling models for instructions. These are d390 1 a390 1 architecture specified for the target machine when configuring. d392 3 a394 3 the target is a ‘hppa1*’ machine.
The PROCESSOR_8000 model is not well suited to older processors. Thus, d399 3 a401 3
As of GCC 4.0, GCC uses the UNIX 95 namespace for HP-UX 10.10 through 11.00, and the UNIX 98 namespace for HP-UX 11.11 and later. d405 3 a407 3 in a number of ways. With HP cc,
UNIX_STDcan be set to ‘95’ or ‘98’. Another way is to add an appropriate set of predefines toCC. The description for the munix= option contains d409 7 a415 6More specific information to ‘hppa*-hp-hpux*’ targets follows.
hppa*-hp-hpux10
d418 2 a419 2The C++ ABI has changed incompatibly in GCC 4.0. COMDAT subspaces are d423 5 a427 4
hppa*-hp-hpux11
d430 4 a433 4The libffi and libjava libraries haven’t been ported to 64-bit HP-UX and don’t build.
Refer to binaries for information about obtaining d435 1 a435 1 to build the Ada language as it can’t be bootstrapped using C. Ada is d437 3 a439 3
Starting with GCC 3.4 an ISO C compiler is required to bootstrap. The bundled compiler supports only traditional C; you will need either HP’s d441 2 a442 2
It is possible to build GCC 3.3 starting with the bundled HP compiler, d445 1 a445 1 can’t be built with the HP bundled compiler. This problem can be d447 1 a447 1 --enable-languages="c,c++,f77,objc" option in your configure d449 2 a450 2
There are several possible approaches to building the distribution. d453 1 a453 1 first using the HP tools, then build binutils, then rebuild GCC. d456 2 a457 2
On 64-bit capable systems, there are two distinct targets. Different d459 3 a461 3 the same system. The ‘hppa[1-2]*-hp-hpux11*’ target generates code for the 32-bit PA-RISC runtime architecture and uses the HP linker. The ‘hppa64-hp-hpux11*’ target generates 64-bit code for the d463 11 a473 11
The script config.guess now selects the target type based on the compiler detected during configuration. You must define
PATHorCCso that configure finds an appropriate compiler for the initial bootstrap. WhenCCis used, the definition should contain the options that are needed wheneverCCis used.Specifically, options that determine the runtime architecture must be in
CCto correctly select the target for the build. It is also convenient to place many other compiler options inCC. For example,CC="cc -Ac +DA2.0W -Wp,-H16376 -D_CLASSIC_TYPES -D_HPUX_SOURCE"d475 2 a476 2 64-bit K&R/bundled mode. The +DA2.0W option will result in the automatic selection of the ‘hppa64-hp-hpux11*’ target. The d480 4 a483 4 -Ac option. These defines aren’t necessary with -Ae.It is best to explicitly configure the ‘hppa64-hp-hpux11*’ target with the --with-ld=… option. This overrides the standard d486 1 a486 1 result, it’s not possible to switch linkers in the middle of a GCC build. d489 2 a490 2
A recent linker patch must be installed for the correct operation of d494 1 a494 1
PHSS_24304, might be usable but it hasn’t been tested. These d497 2 a498 2The patches are necessary for the support of weak symbols on the d501 1 a501 1 to HP-UX 11, there are bugs in the linker support for secondary symbols. d505 2 a506 2
GCC 3.3 uses the ELF DT_INIT_ARRAY and DT_FINI_ARRAY capabilities to d508 1 a508 1 uses the linker +init and +fini options for the same d511 1 a511 1 problem on the 64-bit port resulting from HP’s non-standard use of d513 3 a515 3
Although the HP and GNU linkers are both supported for the ‘hppa64-hp-hpux11*’ target, it is strongly recommended that the d517 3 a519 3
At this time, the GNU linker does not support the creation of long branch stubs. As a result, it can’t successfully link binaries d522 5 a526 5 with -static, and with dwarf2 unwind and exception support. It also doesn’t provide stubs for internal calls to global functions in shared libraries, so these calls can’t be overloaded.
The HP dynamic loader does not support GNU symbol versioning, so symbol d528 9 a536 8 versioning with --disable-symvers when using GNU ld.
POSIX threads are the default. The optional DCE thread library is not supported, so --enable-threads=dce does not work.
*-*-linux-gnu
d540 6 a545 5
i?86-*-linux*
As of GCC 3.3, binutils 2.13.1 or later is required for this platform. d547 2 a548 2
If you receive Signal 11 errors when building on GNU/Linux, then it is d551 5 a555 4
i?86-*-solaris2.10
d557 6 a562 6 with GCC 4.7, there is also a 64-bit ‘amd64-*-solaris2.1[0-9]*’ or ‘x86_64-*-solaris2.1[0-9]*’ configuration that corresponds to ‘sparcv9-sun-solaris2*’.It is recommended that you configure GCC to use the GNU assembler, in /usr/sfw/bin/gas. The versions included in Solaris 10, from GNU d566 5 a570 4 /usr/ccs/bin/as work almost as well, though.
For linking, the Sun linker, is preferred. If you want to use the GNU linker instead, which is available in /usr/sfw/bin/gld, note that d574 11 a584 9
To use GNU
as, configure with the options --with-gnu-as --with-as=/usr/sfw/bin/gas. It may be necessary to configure with --without-gnu-ld --with-ld=/usr/ccs/bin/ld to guarantee use of Sunld.
ia64-*-linux
d587 3 a589 3If you are using the installed system libunwind library with --with-system-libunwind, then you must use libunwind 0.98 or d591 2 a592 2
None of the following versions of GCC has an ABI that is compatible d595 3 a597 3 3.1, 3.0.2, 3.0.1, 3.0, Red Hat 2.96, and Trillian 000717. This primarily affects C++ programs and programs that create shared libraries. GCC 3.1 or later is recommended for compiling linux, the kernel. d600 5 a604 4
ia64-*-hpux*
d607 6 a612 6 the option --with-gnu-as may be necessary.The GCC libunwind library has not been ported to HPUX. This means that for GCC versions 3.2.3 and earlier, --enable-libunwind-exceptions is required to build GCC. For GCC 3.3 and later, this is the default. For gcc 3.4.3 and later, --enable-libunwind-exceptions is d614 7 a620 6
*-ibm-aix*
Support for AIX version 3 and older was discontinued in GCC 3.4. d622 2 a623 2
“out of memory” bootstrap failures may indicate a problem with d625 3 a627 3 /etc/security/limits system configuration file.
GCC can bootstrap with recent versions of IBM XLC, but bootstrapping a630 5
d632 5 a636 2% LDR_CNTRL=MAXDATA=0x50000000 % export LDR_CNTRLOne can start with a pre-compiled version of GCC to build from sources. One may delete GCC’s “fixed” header files when starting a637 8
To speed up the configuration phases of bootstrapping and installing GCC, one may use GNU Bash instead of AIX
/bin/sh, e.g.,d639 7 a645 2% CONFIG_SHELL=/opt/freeware/bin/bash % export CONFIG_SHELLand then proceed as described in the build instructions, where we strongly recommend specifying an absolute path d647 2 a648 2
Because GCC on AIX is built as a 32-bit executable by default, d652 2 a653 2
Errors involving
allocawhen building GCC generally are due d656 5 a660 5 the build, the native AIX compiler must be invoked ascc(notxlc). Onceconfigurehas been informed ofxlc, one needs to use ‘make distclean’ to remove the configure cache files and ensure thatCCenvironment variable does not provide a definition that will confuseconfigure. d663 2 a664 2The native
asandldare recommended for d667 1 a667 1 AIX 5. The GNU Assembler has not been updated to support AIX 6 or d669 2 a670 2AIX 5.3 TL10, AIX 6.1 TL05 and AIX 7.1 TL00 introduced an AIX d678 2 a679 2
Building libstdc++.a requires a fix for an AIX Assembler bug d683 3 a685 3
‘libstdc++’ in GCC 3.4 increments the major version number of the shared object and GCC installation places the libstdc++.a d689 3 a691 3 versions of the ‘libstdc++’ shared object needs to be available to the AIX runtime loader. The GCC 3.1 ‘libstdc++.so.4’, if present, and GCC 3.3 ‘libstdc++.so.5’ shared objects can be d693 2 a694 8 the ‘F_LOADONLY’ flag in the shared object for each multilib libstdc++.a installed:
Extract the shared objects from the currently installed libstdc++.a archive:
d696 5 a700 1% ar -x libstdc++.a libstdc++.so.4 libstdc++.so.5Enable the ‘F_LOADONLY’ flag so that the shared object will be d702 8 a709 12
% strip -e libstdc++.so.4 libstdc++.so.5Archive the runtime-only shared object in the GCC 3.4 libstdc++.a archive:
% ar -q libstdc++.a libstdc++.so.4 libstdc++.so.5Eventually, the --with-aix-soname=svr4 d712 2 a713 2
Linking executables and shared libraries may produce warnings of d719 2 a720 2
AIX 4.3 utilizes a “large format” archive to support both 32-bit and d722 1 a722 1 to parse archive libraries did not handle the new format correctly. d725 1 a725 1 with AIX 4.3.1 should work for a 32-bit environment. The -g d729 3 a731 3
Some versions of the AIX binder (linker) can fail with a relocation overflow severe error when the -bbigtoc option is used to link d737 2 a738 2
The AIX 4.3.2.1 linker (bos.rte.bind_cmds Level 4.3.2.1) will dump core d743 2 a744 2
The initial assembler shipped with AIX 4.3.0 generates incorrect object d749 2 a750 2
AIX provides National Language Support (NLS). Compilers and assemblers d752 1 a752 1 formats including floating-point numbers (e.g., ‘.’ vs ‘,’ for d755 10 a764 9 expects. If one encounters this problem, set the
LANGenvironment variable to ‘C’ or ‘En_US’.A default can be specified with the -mcpu=cpu_type switch and using the configure option --with-cpu-cpu_type.
iq2000-*-elf
d767 6 a772 5
lm32-*-elf
Lattice Mico32 processor. d774 6 a779 5
lm32-*-uclinux
Lattice Mico32 processor. d781 6 a786 5
m32c-*-elf
Renesas M32C processor. d788 6 a793 5
m32r-*-elf
Renesas M32R processor. d795 5 a799 4
m68k-*-*
d801 2 a802 2 ‘m68k-*-elf*’, ‘m68k-*-rtems’, ‘m68k-*-uclinux’ and ‘m68k-*-linux’ d805 3 a807 3 --with-arch=m68k toconfigure. Alternatively, you can omit the M680x0 libraries by passing --with-arch=cf toconfigure. These targets default to 5206 or 5475 code as d809 4 a812 4 configured with --with-arch=cf and 68020 code otherwise.The ‘m68k-*-netbsd’ and ‘m68k-*-openbsd’ targets also support the --with-arch d814 14 a827 13 --with-arch=cf and 68020 code otherwise.
You can override the default processors listed above by configuring with --with-cpu=target. This target can either be a -mcpu argument or one of the following values: ‘m68000’, ‘m68010’, ‘m68020’, ‘m68030’, ‘m68040’, ‘m68060’, ‘m68020-40’ and ‘m68020-60’.
GCC requires at least binutils version 2.17 on these targets.
m68k-*-uclinux
d829 1 a829 1 ‘m68k-linux-gnu’ ABI rather than the ‘m68k-elf’ ABI. d832 6 a837 5
mep-*-elf
Toshiba Media embedded Processor. d839 6 a844 5
microblaze-*-elf
Xilinx MicroBlaze processor. d846 5 a850 4
mips-*-*
d852 1 a852 1 sections for all it’s [sic] sectons [sic]”, don’t worry about it. This d856 2 a857 2It would be nice to extend GAS to produce the gp tables, but they are d859 2 a860 2
The libstdc++ atomic locking routines for MIPS targets requires MIPS II d862 3 a864 3 make ‘mips*-*-*’ use the generic implementation instead. You can also configure for ‘mipsel-elf’ as a workaround. The ‘mips*-*-linux*’ target continues to use the MIPS II routines. More a865 1
d867 6 a872 4The built-in
__sync_*functions are available on MIPS II and later systems and others that support the ‘ll’, ‘sc’ and ‘sync’ instructions. This can be overridden by passing --with-llsc or --without-llsc when configuring GCC. d874 4 a877 4 missing, the default for ‘mips*-*-linux*’ targets is --with-llsc. The --with-llsc and --without-llsc configure options may be overridden at compile time by passing the -mllsc or -mno-llsc options to d879 3 a881 3MIPS systems check for division by zero (unless -mno-check-zero-division is passed to the compiler) by d886 2 a887 2 the use of break, use the --with-divide=breaks
configureoption when configuring GCC. The default is to d889 2 a890 2The assembler from GNU binutils 2.17 and earlier has a bug in the way d894 1 a894 1 runtime linker stubs in very large programs, like libgcj.so, to d897 5 a901 4
mips-sgi-irix5
d903 5 a907 4
mips-sgi-irix6
d911 5 a915 4
moxie-*-elf
d917 6 a922 5
msp430-*-elf
TI MSP430 processor. d924 5 a928 4
nds32le-*-elf
d930 5 a934 4
nds32be-*-elf
d936 5 a940 4
nvptx-*-none
d942 3 a944 3Instead of GNU binutils, you will need to install nvptx-tools. d946 4 a949 4 --with-build-time-tools=[install-nvptx-tools]/nvptx-none/bin.
A nvptx port of newlib is available at nvptx-newlib. d951 1 a951 1 symbolic link to nvptx-newlib’s newlib directory to the d953 12 a964 11
Use the --disable-sjlj-exceptions and --enable-newlib-io-long-long options when configuring.
powerpc-*-*
You can specify a default version for the -mcpu=cpu_type switch by using the configure option --with-cpu-cpu_type.
You will need d967 5 a971 4
powerpc-*-darwin*
d973 2 a974 2Pre-installed versions of Mac OS X may not include any developer tools, d978 2 a979 2
This version of GCC requires at least cctools-590.36. The d983 5 a987 4
powerpc-*-elf
d989 5 a993 4
powerpc*-*-linux-gnu*
d995 5 a999 4
powerpc-*-netbsd*
d1001 5 a1005 4
powerpc-*-eabisim
d1008 5 a1012 4
powerpc-*-eabi
d1014 5 a1018 4
powerpcle-*-elf
d1020 5 a1024 4
powerpcle-*-eabisim
d1027 5 a1031 4
powerpcle-*-eabi
d1033 6 a1038 5
rl78-*-elf
The Renesas RL78 processor. d1040 5 a1044 4
rx-*-elf
d1048 5 a1052 4
s390-*-linux*
d1054 5 a1058 4
s390x-*-linux*
d1060 5 a1064 4
s390x-ibm-tpf*
d1067 10 a1076 5
*-*-solaris2*
Support for Solaris 9 has been removed in GCC 5. Support for Solaris d1079 2 a1080 2
Sun does not ship a C compiler with Solaris 2 before Solaris 10, though d1082 2 a1083 2 11, GCC 3.4.3 is available as
/usr/sfw/bin/gcc. Solaris 11 also provides GCC 4.5.2 as/usr/gcc/4.5/bin/gcc. Alternatively, d1086 3 a1088 3The Solaris 2
/bin/shwill often fail to configure ‘libstdc++-v3’, ‘boehm-gc’ or ‘libjava’. We therefore a1089 5d1091 4 a1094 1% CONFIG_SHELL=/bin/ksh % export CONFIG_SHELLand proceed as described in the configure instructions. d1096 3 a1098 3
srcdir/configure.Solaris 2 comes with a number of optional OS packages. Some of these d1104 4 a1107 4
To check whether an optional package is installed, use the
pkginfocommand. To add an optional package, use thepkgaddcommand. For further details, see the Solaris 2 d1109 3 a1111 3Trying to use the linker and other tools in /usr/ucb to install GCC has been observed to cause trouble. d1113 8 a1120 8 /usr/ucb from your
PATH.The build process works more smoothly with the legacy Sun tools so, if you have /usr/xpg4/bin in your
PATH, we recommend that you place /usr/bin before /usr/xpg4/bin for the duration of the build.We recommend the use of the Sun assembler or the GNU assembler, in conjunction with the Sun linker. The GNU
asd1123 1 a1123 1 /usr/sfw/bin/gas. Current versions of GNU binutils (2.22) d1126 5 a1130 4 combination GNUas+ Sunldshould reasonably work, the reverse combination Sunas+ GNUldmay fail to build or cause memory corruption at runtime in some cases for C++ programs. GNUldusually works as well, although the version included in d1133 8 a1140 8 features, so better stay with Sunld. To use the LTO linker plugin (-fuse-linker-plugin) with GNUld, GNU binutils must be configured with --enable-largefile.To enable symbol versioning in ‘libstdc++’ with the Sun linker, you need to have any version of GNU
c++filt, which is part of GNU binutils. ‘libstdc++’ symbol versioning will be disabled if no appropriate version is found. Sunc++filtfrom the Sun Studio d1142 3 a1144 6GNU
makeversion 3.81 or later is required to build libjava with the Sun linker.Sun bug 4296832 turns up when compiling X11 headers with GCC 2.95 or newer:
g++will complain that types are missing. These headers d1147 4 a1150 4Sun bug 4927647 sometimes causes random spurious testsuite failures related to missing diagnostic output. This bug doesn’t affect GCC itself, rather it is a kernel bug triggered by the
expectd1152 1 a1152 1 causes theexpectprogram to miss anticipated output, extra d1154 5 a1158 4
sparc*-*-*
d1162 2 a1163 2Newer versions of the GNU Multiple Precision Library (GMP), the MPFR d1168 5 a1172 4
sparc-sun-solaris2*
d1174 1 a1174 1 produced are smaller than the ones produced using Sun’s native tools; d1177 2 a1178 2Starting with Solaris 7, the operating system is capable of executing d1180 1 a1180 1 this; the -m64 option enables 64-bit code generation. d1182 1 a1182 1 should try the -mtune=ultrasparc option instead, which produces d1185 2 a1186 2
When configuring on a Solaris 7 or later system that is running a kernel d1188 1 a1188 1 --disable-multilib, since we will not be able to build the d1190 2 a1191 2
GCC 3.3 and GCC 3.4 trigger code generation bugs in earlier versions of d1197 2 a1198 2
GCC 3.4 triggers a code generation bug in versions 5.4 (Sun ONE Studio 7) d1202 2 a1203 2
GCC 3.4 changed the default debugging format from Stabs to DWARF-2 for d1206 1 a1206 1 an x86-only problem by Sun, probably because they do not use DWARF-2). d1208 10 a1217 12
groff1.19.1 without getting messages similar to the following:ld: warning: relocation error: R_SPARC_UA32: … external symbolic relocation against non-allocatable section .debug_info cannot be processed at runtime: relocation ignored.To work around this problem, compile with -gstabs+ instead of plain -g.
When configuring the GNU Multiple Precision Library (GMP), the MPFR d1219 2 a1220 2 target triplet must be specified as the
buildparameter on the configure line. This target triplet can be obtained by invoking./config.guessin the toplevel source directory of GCC (and d1222 7 a1228 8% ./configure --build=sparc-sun-solaris2.9 --prefix=xxx
sparc-sun-solaris2.10
d1231 9 a1239 11ld: fatal: relocation error: R_SPARC_TLS_LE_HIX22: file /var/tmp//ccamPA1v.o: symbol <unknown>: bad symbol type SECT: symbol type must be TLSThis bug is fixed in Sun patch 118683-03 or later.
sparc-*-linux*
a1243 1 d1245 4 a1248 3
sparc64-*-solaris2*
d1251 1 a1251 1 as thebuildparameter on the configure line. For example a1252 4d1254 3 a1256 1% ./configure --build=sparc64-sun-solaris2.9 --prefix=xxxThe following compiler flags must be specified in the configure d1258 16 a1273 16
% CC="cc -xarch=v9 -xildoff" srcdir/configure [options] [target]-xarch=v9 specifies the SPARC-V9 architecture to the Sun toolchain and -xildoff turns off the incremental linker.
sparcv9-*-solaris2*
This is a synonym for ‘sparc64-*-solaris2*’.
c6x-*-*
d1275 5 a1279 4
tilegx-*-linux*
d1282 5 a1286 4
tilegxbe-*-linux*
d1289 5 a1293 4
tilepro-*-linux*
d1296 6 a1301 5
visium-*-elf
CDS VISIUMcore processor. d1303 5 a1307 4
*-*-vxworks*
d1309 2 a1310 2 very recent VxWorks 5.5 (aka Tornado 2.2) release, and only on PowerPC. We welcome patches for other architectures supported by VxWorks 5.5. d1315 12 a1326 12VxWorks comes with an older version of GCC installed in $WIND_BASE/host; we recommend you do not overwrite it. Choose an installation prefix entirely outside $WIND_BASE. Before running
configure, create the directories prefix and prefix/bin. Link or copy the appropriate assembler, linker, etc. into prefix/bin, and set your PATH to include that directory while running bothconfigureandmake.You must give
configurethe --with-headers=$WIND_BASE/target/h switch so that it can d1328 4 a1331 4 target only, you must also specify --target=target.configurewill attempt to create the directory prefix/target/sys-include and copy files into it; make sure the user runningconfigurehas sufficient privilege d1333 3 a1335 3GCC’s exception handling runtime requires a special “configlette” module, contrib/gthr_supp_vxw_5x.c. Follow the instructions in d1338 5 a1342 4
x86_64-*-*, amd64-*-*
d1344 1 a1344 1 (amd64-*-* is an alias for x86_64-*-*) on GNU/Linux, FreeBSD and NetBSD. d1346 6 a1351 5 both 64-bit x86-64 and 32-bit x86 code (via the -m32 switch).
x86_64-*-solaris2.1[0-9]*
d1353 1 a1353 1 processor (‘amd64-*-*’ is an alias for ‘x86_64-*-*’) on d1356 1 a1356 1 can generate 64-bit x86-64 code with the -m64 switch. Since d1358 9 a1366 8 can generate 32-bit code with -m32. To configure and build this way, you have to provide all support libraries like libgmp as 64-bit code, configure with --target=x86_64-pc-solaris2.1x and ‘CC=gcc -m64’.
xtensa*-*-elf
d1368 1 a1368 1 ‘newlib’ C library. It uses ELF but does not support shared d1372 3 a1374 3The Xtensa configuration information must be specified prior to building GCC. The include/xtensa-config.h header d1379 5 a1383 4
xtensa*-*-linux*
d1387 1 a1387 1 -fpic or -fPIC options are used. In other d1389 7 a1395 5 ‘xtensa*-*-elf’ target.
Microsoft Windows
a1396 2Intel 16-bit versions
d1399 2 a1400 2However, the 32-bit port has limited support for Microsoft d1402 3 a1404 3
Intel 32-bit versions
a1408 11d1410 13 a1422 2
- Cygwin *-*-cygwin: Cygwin provides a user-space Linux API emulation layer in the Win32 subsystem.
- Interix *-*-interix: The Interix subsystem provides native support for POSIX.
- MinGW *-*-mingw32: MinGW is a native GCC port for the Win32 subsystem that provides a subset of POSIX.
- MKS i386-pc-mks: NuTCracker from MKS. See http://www.mkssoftware.com/ for more information.
Intel 64-bit versions
d1424 1 a1424 1 runtime library, available from http://mingw-w64.sourceforge.net/. d1426 5 a1430 5Presently Windows for Itanium is not supported.
Windows CE
d1433 3 a1435 3Other Windows Platforms
d1437 2 a1438 2GCC no longer supports the Windows POSIX subsystem. However, it does d1440 4 a1443 4
Old target names including *-*-winnt and *-*-windowsnt are no longer used.
PW32 (i386-pc-pw32) support was never completed, and the project seems to d1445 7 a1451 6
UWIN support has been removed due to a lack of maintenance.
*-*-cygwin
d1454 5 a1458 5GCC will build under Cygwin without modification; it does not build with Microsoft’s C++ compiler and there are no plans to make it do so.
The Cygwin native compiler can be configured to target any 32-bit x86 d1463 5 a1467 4
*-*-interix
d1472 6 a1477 5
*-*-mingw32
GCC will build with and support only MinGW runtime 3.12 and later. d1480 5 a1484 4
Older systems
d1489 2 a1490 2Starting with GCC 3.1, each release has a list of “obsoleted” systems. d1492 1 a1492 1
configurewill fail unless the --enable-obsolete d1495 2 a1496 2Support for old systems as hosts for GCC can cause problems if the d1503 2 a1504 3 old-releases directory on the GCC mirror sites. Header bugs may generally be avoided using
fixincludes, but bugs or deficiencies in libraries and the d1506 2 a1507 2Support for older systems as targets for cross-compilation is less d1515 3 a1517 3
For some systems, old versions of GNU binutils may also be useful, and are available from pub/binutils/old-releases on d1519 2 a1520 2
Some of the information on specific systems above relates to d1524 5 a1528 4
all ELF targets (SVR4, Solaris 2, etc.)
a1532 1 d1534 1 a1534 2
a1535 5
d1537 5 a1542 2 @ 1.4 log @merge GCC 4.8.5 (final round) @ text @d53 1 a53 1- aarch64*-*-* a67 1
- i?86-*-solaris2.9 d84 3 d109 1 d111 1 d130 1 a130 1
d132 1 a132 1aarch64*-*-*
d134 5 a138 1To enable a workaround for the Cortex-A53 erratum number 835769 by default d141 1 a141 1 default and can be explicitly disabled during during compilation by passing the d148 14 a161 1
alpha*-*-*
d173 1 a173 1
d175 1 a175 1alpha*-dec-osf5.1
d186 1 a186 1
d188 1 a188 1amd64-*-solaris2.1[0-9]*
d192 15 a206 1
d208 1 a208 1arm-*-eabi
d215 1 a215 1
d217 1 a217 1avr
d241 1 a241 1
d243 1 a243 1Blackfin
d251 1 a251 1
d253 1 a253 1CR16
d255 2 a256 2The CR16 CompactRISC architecture is a 16-bit architecture. This architecture is used in embedded applications. d263 2 a264 2
Use ‘configure --target=cr16-uclinux --enable-languages=c,c++’ to configure GCC for building a CR16 uclinux cross-compiler. d266 1 a266 1
d268 1 a268 1CRIS
d292 1 a292 1
d294 1 a294 1DOS
d303 1 a303 1
d305 1 a305 1epiphany-*-elf
d310 1 a310 1
d312 1 a312 1*-*-freebsd*
d347 1 a347 1
d349 1 a349 1h8300-hms
d360 1 a360 1
d362 1 a362 1hppa*-hp-hpux*
d412 1 a412 1
d414 1 a414 1hppa*-hp-hpux10
d424 1 a424 1
d426 1 a426 1hppa*-hp-hpux11
d533 1 a533 1
d535 1 a535 1*-*-linux-gnu
d541 1 a541 1
d543 1 a543 1i?86-*-linux*
d552 1 a552 21
i?86-*-solaris2.9
The Sun assembler in Solaris 9 has several bugs and limitations. While GCC works around them, several features are missing, so it is recommended to use the GNU assembler instead. There is no bundled version, but the current version, from GNU binutils 2.22, is known to work.
Solaris 2/x86 doesn't support the execution of SSE/SSE2 instructions before Solaris 9 4/04, even if the CPU supports them. Programs will receive
SIGILLif they try. The fix is available both in Solaris 9 Update 6 and kernel patch 112234-12 or newer. To avoid this problem, -march defaults to ‘pentiumpro’ on Solaris 9. If you have the patch installed, you can configure GCC with an appropriate --with-arch option, but need GNU as for SSE2 support.
d554 1 a554 1i?86-*-solaris2.10
d581 1 a581 1
d583 1 a583 1ia64-*-linux
d601 1 a601 1
d603 1 a603 1ia64-*-hpux*
d616 1 a616 1 d618 1 a618 1*-ibm-aix*
d684 1 a684 1‘libstdc++’ in GCC 3.4 increments the major version number of the d708 5 d761 1 a761 1
d763 1 a763 1iq2000-*-elf
d768 1 a768 1
d770 1 a770 1lm32-*-elf
d775 1 a775 1
d777 1 a777 1lm32-*-uclinux
d782 1 a782 1
d784 1 a784 1m32c-*-elf
d789 1 a789 1
d791 1 a791 1m32r-*-elf
d796 1 a796 1
d798 1 a798 1m68k-*-*
d824 1 a824 1
d826 1 a826 1m68k-*-uclinux
d833 1 a833 1
d835 1 a835 1mep-*-elf
d840 1 a840 1
d842 1 a842 1microblaze-*-elf
d847 1 a847 1
d849 1 a849 1mips-*-*
d898 1 a898 1
d900 1 a900 1mips-sgi-irix5
d904 1 a904 1
d906 1 a906 1mips-sgi-irix6
d912 1 a912 1
d914 1 a914 1moxie-*-elf
d918 40 a957 1
d959 1 a959 1powerpc-*-*
d968 1 a968 1
d970 1 a970 1powerpc-*-darwin*
d984 1 a984 1
d986 1 a986 1powerpc-*-elf
d990 1 a990 1
d992 1 a992 1powerpc*-*-linux-gnu*
d996 1 a996 1
d998 1 a998 1powerpc-*-netbsd*
d1002 1 a1002 1
d1004 1 a1004 1powerpc-*-eabisim
d1009 1 a1009 1
d1011 1 a1011 1powerpc-*-eabi
d1015 1 a1015 1
d1017 1 a1017 1powerpcle-*-elf
d1021 1 a1021 1
d1023 1 a1023 1powerpcle-*-eabisim
d1028 1 a1028 1
d1030 1 a1030 1powerpcle-*-eabi
d1034 1 a1034 1
d1036 1 a1036 1rl78-*-elf
d1041 1 a1041 1
d1043 1 a1043 1rx-*-elf
d1049 1 a1049 1
d1051 1 a1051 1s390-*-linux*
d1055 1 a1055 1
d1057 1 a1057 1s390x-*-linux*
d1061 1 a1061 1
d1063 1 a1063 1s390x-ibm-tpf*
d1072 1 d1074 1 a1074 1*-*-solaris2*
d1076 3 a1078 2Support for Solaris 8 has removed in GCC 4.8. Support for Solaris 7 has been removed in GCC 4.6. d1155 1 a1155 20
There are patches for Solaris 9 (117171-11 or newer for SPARC, 117172-11 or newer for Intel) that address this problem.
Thread-local storage (TLS) is supported in Solaris 9, but requires some patches. The ‘libthread’ patches provide the
__tls_get_addr(SPARC, 64-bit x86) resp.___tls_get_addr(32-bit x86) functions. On Solaris 9, the necessary support on SPARC is present since FCS, while 114432-05 or newer is required on Intel. Additionally, on Solaris 9/x86, patch 113986-02 or newer is required for the Sun ld and runtime linker (ld.so.1) support, while Solaris 9/SPARC works since FCS. The linker patches must be installed even if GNU ld is used. Sun as in Solaris 9 doesn't support the necessary relocations, so GNU as must be used. The configure script checks for those prerequisites and automatically enables TLS support if they are met. Although those minimal patch versions should work, it is recommended to use the latest patch versions which include additional bug fixes.
d1157 1 a1157 1sparc*-*-*
d1169 1 a1169 1
d1171 1 a1171 1sparc-sun-solaris2*
d1225 1 a1225 1
d1227 1 a1227 1sparc-sun-solaris2.10
d1237 1 a1237 1
d1239 1 a1239 1sparc-*-linux*
d1245 1 a1245 1
d1247 1 a1247 1sparc64-*-solaris2*
d1264 1 a1264 1
d1266 1 a1266 1sparcv9-*-solaris2*
d1270 1 a1270 1
d1272 1 a1272 1c6x-*-*
d1276 8 a1283 1
d1285 1 a1285 1tilegx-*-linux*
d1287 2 a1288 2The TILE-Gx processor running GNU/Linux. This port requires binutils-2.22 or newer. d1290 1 a1290 1
d1292 1 a1292 1tilepro-*-linux*
d1297 8 a1304 1
d1306 1 a1306 1*-*-vxworks*
d1339 1 a1339 1
d1341 1 a1341 1x86_64-*-*, amd64-*-*
d1348 1 a1348 1
d1350 1 a1350 1x86_64-*-solaris2.1[0-9]*
d1363 1 a1363 1
d1365 1 a1365 1xtensa*-*-elf
d1380 1 a1380 1
d1382 1 a1382 1xtensa*-*-linux*
d1391 1 a1391 1
d1393 1 a1393 1Microsoft Windows
d1395 1 a1395 1Intel 16-bit versions
d1403 1 a1403 1Intel 32-bit versions
d1421 1 a1421 1Intel 64-bit versions
d1429 1 a1429 1Windows CE
d1434 1 a1434 1Other Windows Platforms
d1448 1 a1448 1
d1450 1 a1450 1*-*-cygwin
d1464 1 a1464 1
d1466 1 a1466 1*-*-interix
d1473 1 a1473 1
d1475 1 a1475 1*-*-mingw32
d1481 1 a1481 1
d1483 1 a1483 1Older systems
d1525 1 a1525 1
d1527 1 a1527 1all ELF targets (SVR4, Solaris 2, etc.)
@ 1.3 log @Resolve conflicts @ text @d10 1 a10 1 Copyright (C) 1988-2013 Free Software Foundation, Inc. d53 1 d128 13 a140 1alpha*-*-*
d154 1 a154 1alpha*-dec-osf5.1
d167 1 a167 1amd64-*-solaris2.1[0-9]*
d173 1 a173 1arm-*-eabi
d182 1 a182 1avr
d208 1 a208 1Blackfin
d218 1 a218 1CR16
d233 1 a233 1CRIS
d259 1 a259 1DOS
d270 1 a270 1epiphany-*-elf
d277 1 a277 1*-*-freebsd*
d314 1 a314 1h8300-hms
d327 1 a327 1hppa*-hp-hpux*
d379 1 a379 1hppa*-hp-hpux10
d391 1 a391 1hppa*-hp-hpux11
d500 1 a500 1*-*-linux-gnu
d508 1 a508 1i?86-*-linux*
d519 1 a519 1i?86-*-solaris2.9
d539 1 a539 1i?86-*-solaris2.10
d568 1 a568 1ia64-*-linux
d588 1 a588 1ia64-*-hpux*
d603 1 a603 1*-ibm-aix*
d743 1 a743 1iq2000-*-elf
d750 1 a750 1lm32-*-elf
d757 1 a757 1lm32-*-uclinux
d764 1 a764 1m32c-*-elf
d771 1 a771 1m32r-*-elf
d778 1 a778 1m68k-*-*
d806 1 a806 1m68k-*-uclinux
d815 1 a815 1mep-*-elf
d822 1 a822 1microblaze-*-elf
d829 1 a829 1mips-*-*
d880 1 a880 1mips-sgi-irix5
d886 1 a886 1mips-sgi-irix6
d894 1 a894 1moxie-*-elf
d900 1 a900 1powerpc-*-*
d911 1 a911 1powerpc-*-darwin*
d927 1 a927 1powerpc-*-elf
d933 1 a933 1powerpc*-*-linux-gnu*
d939 1 a939 1powerpc-*-netbsd*
d945 1 a945 1powerpc-*-eabisim
d952 1 a952 1powerpc-*-eabi
d958 1 a958 1powerpcle-*-elf
d964 1 a964 1powerpcle-*-eabisim
d971 1 a971 1powerpcle-*-eabi
d977 1 a977 1rl78-*-elf
d984 1 a984 1rx-*-elf
d992 1 a992 1s390-*-linux*
d998 1 a998 1s390x-*-linux*
d1004 1 a1004 1s390x-ibm-tpf*
d1014 1 a1014 1*-*-solaris2*
d1115 1 a1115 1sparc*-*-*
d1129 1 a1129 1sparc-sun-solaris2*
d1185 1 a1185 1sparc-sun-solaris2.10
d1197 1 a1197 1sparc-*-linux*
d1205 1 a1205 1sparc64-*-solaris2*
d1224 1 a1224 1sparcv9-*-solaris2*
d1230 1 a1230 1c6x-*-*
d1236 1 a1236 1tilegx-*-linux*
d1243 1 a1243 1tilepro-*-linux*
d1250 1 a1250 1*-*-vxworks*
d1285 1 a1285 1x86_64-*-*, amd64-*-*
d1294 1 a1294 1x86_64-*-solaris2.1[0-9]*
d1309 1 a1309 1xtensa*-*-elf
d1326 1 a1326 1xtensa*-*-linux*
d1337 1 a1337 1Microsoft Windows
d1339 1 a1339 1Intel 16-bit versions
d1347 1 a1347 1Intel 32-bit versions
d1365 1 a1365 1Intel 64-bit versions
d1373 1 a1373 1Windows CE
d1378 1 a1378 1Other Windows Platforms
d1394 1 a1394 1*-*-cygwin
d1410 1 a1410 1*-*-interix
d1419 1 a1419 1*-*-mingw32
d1427 1 a1427 1Older systems
d1471 1 a1471 1all ELF targets (SVR4, Solaris 2, etc.)
@ 1.3.2.1 log @Apply patch (requested by mrg in ticket #1005): Update gcc to 4.8.5. @ text @d10 1 a10 1 Copyright (C) 1988-2015 Free Software Foundation, Inc. a52 1- aarch64*-*-* d127 1 a127 13
aarch64*-*-*
To enable a workaround for the Cortex-A53 erratum number 835769 by default (for all CPUs regardless of -mcpu option given) at configure time use the --enable-fix-cortex-a53-835769 option. This will enable the fix by default and can be explicitly disabled during during compilation by passing the -mno-fix-cortex-a53-835769 option. Conversely, --disable-fix-cortex-a53-835769 will disable the workaround by default. The workaround is disabled by default if neither of --enable-fix-cortex-a53-835769 or --disable-fix-cortex-a53-835769 is given at configure time.
alpha*-*-*
d141 1 a141 1alpha*-dec-osf5.1
d154 1 a154 1amd64-*-solaris2.1[0-9]*
d160 1 a160 1arm-*-eabi
d169 1 a169 1avr
d195 1 a195 1Blackfin
d205 1 a205 1CR16
d220 1 a220 1CRIS
d246 1 a246 1DOS
d257 1 a257 1epiphany-*-elf
d264 1 a264 1*-*-freebsd*
d301 1 a301 1h8300-hms
d314 1 a314 1hppa*-hp-hpux*
d366 1 a366 1hppa*-hp-hpux10
d378 1 a378 1hppa*-hp-hpux11
d487 1 a487 1*-*-linux-gnu
d495 1 a495 1i?86-*-linux*
d506 1 a506 1i?86-*-solaris2.9
d526 1 a526 1i?86-*-solaris2.10
d555 1 a555 1ia64-*-linux
d575 1 a575 1ia64-*-hpux*
d590 1 a590 1*-ibm-aix*
d730 1 a730 1iq2000-*-elf
d737 1 a737 1lm32-*-elf
d744 1 a744 1lm32-*-uclinux
d751 1 a751 1m32c-*-elf
d758 1 a758 1m32r-*-elf
d765 1 a765 1m68k-*-*
d793 1 a793 1m68k-*-uclinux
d802 1 a802 1mep-*-elf
d809 1 a809 1microblaze-*-elf
d816 1 a816 1mips-*-*
d867 1 a867 1mips-sgi-irix5
d873 1 a873 1mips-sgi-irix6
d881 1 a881 1moxie-*-elf
d887 1 a887 1powerpc-*-*
d898 1 a898 1powerpc-*-darwin*
d914 1 a914 1powerpc-*-elf
d920 1 a920 1powerpc*-*-linux-gnu*
d926 1 a926 1powerpc-*-netbsd*
d932 1 a932 1powerpc-*-eabisim
d939 1 a939 1powerpc-*-eabi
d945 1 a945 1powerpcle-*-elf
d951 1 a951 1powerpcle-*-eabisim
d958 1 a958 1powerpcle-*-eabi
d964 1 a964 1rl78-*-elf
d971 1 a971 1rx-*-elf
d979 1 a979 1s390-*-linux*
d985 1 a985 1s390x-*-linux*
d991 1 a991 1s390x-ibm-tpf*
d1001 1 a1001 1*-*-solaris2*
d1102 1 a1102 1sparc*-*-*
d1116 1 a1116 1sparc-sun-solaris2*
d1172 1 a1172 1sparc-sun-solaris2.10
d1184 1 a1184 1sparc-*-linux*
d1192 1 a1192 1sparc64-*-solaris2*
d1211 1 a1211 1sparcv9-*-solaris2*
d1217 1 a1217 1c6x-*-*
d1223 1 a1223 1tilegx-*-linux*
d1230 1 a1230 1tilepro-*-linux*
d1237 1 a1237 1*-*-vxworks*
d1272 1 a1272 1x86_64-*-*, amd64-*-*
d1281 1 a1281 1x86_64-*-solaris2.1[0-9]*
d1296 1 a1296 1xtensa*-*-elf
d1313 1 a1313 1xtensa*-*-linux*
d1324 1 a1324 1Microsoft Windows
d1326 1 a1326 1Intel 16-bit versions
d1334 1 a1334 1Intel 32-bit versions
d1352 1 a1352 1Intel 64-bit versions
d1360 1 a1360 1Windows CE
d1365 1 a1365 1Other Windows Platforms
d1381 1 a1381 1*-*-cygwin
d1397 1 a1397 1*-*-interix
d1406 1 a1406 1*-*-mingw32
d1414 1 a1414 1Older systems
d1458 1 a1458 1all ELF targets (SVR4, Solaris 2, etc.)
@ 1.2 log @merge gcc 4.8.2 r206687 (part 1). @ text @d10 1 a10 3 Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. d13 1 a13 1 under the terms of the GNU Free Documentation License, Version 1.2 or d50 1 a50 1 information are. d54 3 a56 3- alpha*-dec-osf*
- arc-*-elf
- arm-*-elf d67 1 a67 1
- i?86-*-solaris2.[89] a76 2
- m6811-elf
- m6812-elf d80 1 d98 1 a99 1
- sparc-sun-solaris2.7 d104 3 d109 1 d141 1 a141 1
alpha*-dec-osf*
d147 4 a150 41As of GCC 3.2, versions before
alpha*-dec-osf4are no longer supported. (These are the versions which identify themselves as DEC OSF/1.) As of GCC 4.5, support for Tru64 UNIX V4.0 and V5.0 has been obsoleted, but can still be enabled by configuring with --enable-obsolete. Support will be removed in GCC 4.6.On Tru64 UNIX, virtual memory exhausted bootstrap failures may be fixed by reconfiguring Kernel Virtual Memory and Swap parameters per the /usr/sbin/sys_check Tuning Suggestions, or applying the patch in http://gcc.gnu.org/ml/gcc/2002-08/msg00822.html. Depending on the OS version used, you need a data segment size between 512 MB and 1 GB, so simply use ulimit -Sd unlimited.
As of GNU binutils 2.20.1, neither GNU as nor GNU ld are supported on Tru64 UNIX, so you must not configure GCC with --with-gnu-as or --with-gnu-ld.
GCC writes a ‘.verstamp’ directive to the assembler output file unless it is built as a cross-compiler. It gets the version to use from the system header file /usr/include/stamp.h. If you install a new version of Tru64 UNIX, you should rebuild GCC to pick up the new version stamp.
GCC now supports both the native (ECOFF) debugging format used by DBX and GDB and an encapsulated STABS format for use only with GDB. See the discussion of the --with-stabs option of configure above for more information on these formats and how to select them.
There is a bug in DEC's assembler that produces incorrect line numbers for ECOFF format when the ‘.align’ directive is used. To work around this problem, GCC will not emit such alignment directives while writing ECOFF format debugging information even if optimization is being performed. Unfortunately, this has the very undesirable side-effect that code addresses when -O is specified are different depending on whether or not -g is also specified.
To avoid this behavior, specify -gstabs+ and use GDB instead of DBX. DEC is now aware of this problem with the assembler and hopes to provide a fix shortly. a151 1 d154 1 a154 1
arc-*-elf
d156 1 a156 2Argonaut ARC processor. This configuration is intended for embedded systems. d160 1 a160 1
arm-*-elf
d164 2 a165 2arm-*-freebsd,arm-*-netbsdelf,arm-*-*linuxandarm-*-rtems. d189 1 a189 1Error: register required d205 16 a220 1CRIS
a245 18CRX
The CRX CompactRISC architecture is a low-power 32-bit architecture with fast context switching and architectural extensibility features.
See “CRX Options” in the main manual for a list of CRX-specific options.
Use ‘configure --target=crx-elf --enable-languages=c,c++’ to configure GCC for building a CRX cross-compiler. The option ‘--target=crx-elf’ is also used to build the ‘newlib’ C library for CRX.
It is also possible to build libstdc++-v3 for the CRX architecture. This needs to be done in a separate step with the following configure settings: ‘gcc/libstdc++-v3/configure --host=crx-elf --with-newlib --enable-sjlj-exceptions --enable-cxx-flags='-fexceptions -frtti'’
d257 8 a264 1*-*-freebsd*
d270 7 a276 6In GCC 4.5, we enabled the use of
dl_iterate_phdrinside boehm-gc on FreeBSD 7 or later. In order to better match the configuration of the FreeBSD system compiler: We also enabled the check to see if libc provides SSP support (which it does on FreeBSD 7), the use ofdl_iterate_phdrinside libgcc_s.so.1 (on FreeBSD 7 or later) and the use of__cxa_atexitby default (on FreeBSD 6 or later). d301 1 a301 1h8300-hms
d314 1 a314 1hppa*-hp-hpux*
d366 1 a366 1hppa*-hp-hpux10
d378 1 a378 1hppa*-hp-hpux11
d487 1 a487 1*-*-linux-gnu
d495 1 a495 1i?86-*-linux*
d506 1 a506 1i?86-*-solaris2.[89]
d508 1 a508 1The Sun assembler in Solaris 8 and 9 has several bugs and limitations. d512 1 a512 1 version, but the current version, from GNU binutils 2.20.1, is known to d515 2 a516 2
Solaris~2/x86 doesn't support the execution of SSE/SSE2 instructions before Solaris~9 4/04, even if the CPU supports them. Programs will d518 3 a520 3 Solaris~9 Update~6 and kernel patch 112234-12 or newer. There is no corresponding patch for Solaris 8. To avoid this problem, -march defaults to ‘pentiumpro’ on Solaris 8 and 9. If d526 1 a526 1
i?86-*-solaris2.10
d528 4 a531 5Use this for Solaris 10 or later on x86 and x86-64 systems. This configuration is supported by GCC 4.0 and later versions only. Unlike ‘sparcv9-sun-solaris2*’, there is no corresponding 64-bit configuration like ‘amd64-*-solaris2*’ or ‘x86_64-*-solaris2*’. d537 1 a537 1 2.20.1, is known to work, too. Recent versions of the Sun assembler in d545 1 a545 1 2.19, works, as does the latest version, from GNU binutils 2.20.1. d555 1 a555 1
ia64-*-linux
d575 1 a575 1ia64-*-hpux*
d590 1 a590 1*-ibm-aix*
d604 2 a605 2% LDR_CNTRL=MAXDATA=0x50000000 % export LDR_CNTRL d614 2 a615 2% CONFIG_SHELL=/opt/freeware/bin/bash % export CONFIG_SHELL d636 14 a649 4The native as and ld are recommended for bootstrapping on AIX. The GNU Assembler, GNU Linker, and GNU Binutils version 2.20 is required to bootstrap on AIX 5. The native AIX tools do interoperate with GCC. d670 1 a670 1
% ar -x libstdc++.a libstdc++.so.4 libstdc++.so.5 d674 1 a674 1% strip -e libstdc++.so.4 libstdc++.so.5 d678 1 a678 1% ar -q libstdc++.a libstdc++.so.4 libstdc++.so.5 d730 1 a730 1iq2000-*-elf
d737 1 a737 1lm32-*-elf
d744 1 a744 1lm32-*-uclinux
d751 1 a751 1m32c-*-elf
d758 1 a758 1m32r-*-elf
d765 1 a765 15m6811-elf
Motorola 68HC11 family micro controllers. These are used in embedded applications. There are no standard Unix configurations.
m6812-elf
Motorola 68HC12 family micro controllers. These are used in embedded applications. There are no standard Unix configurations.
m68k-*-*
d789 2 d793 1 a793 1m68k-*-uclinux
d798 1 a798 3 both of which were ABI changes. However, you can still use the original ABI by configuring for ‘m68k-uclinuxoldabi’ or ‘m68k-vendor-uclinuxoldabi’. d802 1 a802 1mep-*-elf
d809 7 a856 6Cross-compilers for the MIPS as target using the MIPS assembler currently do not work, because the auxiliary programs mips-tdump.c and mips-tfile.c can't be compiled on anything but a MIPS. It does work to cross compile for a MIPS if you use the GNU assembler and linker. d869 1 a869 34
Support for IRIX 5 has been obsoleted in GCC 4.5, but can still be enabled by configuring with --enable-obsolete. Support will be removed in GCC 4.6.
In order to compile GCC on an SGI running IRIX 5, the ‘compiler_dev.hdr’ subsystem must be installed from the IDO CD-ROM supplied by SGI. It is also available for download from http://freeware.sgi.com/ido.html.
If you use the MIPS C compiler to bootstrap, it may be necessary to increase its table size for switch statements with the -Wf,-XNg1500 option. If you use the -O2 optimization option, you also need to use -Olimit 3000.
GCC must be configured to use GNU as. The latest version, from GNU binutils 2.20.1, is known to work.
To enable debugging under IRIX 5, you must use GNU binutils 2.15 or later, and use the --with-gnu-ld configure option when configuring GCC. You need to use GNU ar and nm, also distributed with GNU binutils.
Configuring GCC with /bin/sh is extremely slow and may even hang. This problem can be avoided by running configure like this:
% CONFIG_SHELL=/usr/local/bin/bash % export CONFIG_SHELL % $CONFIG_SHELL srcdir/configure [options]/bin/ksh doesn't work properly either. d875 3 a877 78
Support for IRIX 6 releases before 6.5 has been obsoleted in GCC 4.5, but can still be enabled by configuring with --enable-obsolete. Support will be removed in GCC 4.6, which will also disable support for the O32 ABI. It is strongly recommended to upgrade to at least IRIX 6.5.18. This release introduced full ISO C99 support, though for the N32 and N64 ABIs only.
To build and use GCC on IRIX 6, you need the IRIX Development Foundation (IDF) and IRIX Development Libraries (IDL). They are included with the IRIX 6.5 media and can be downloaded from http://freeware.sgi.com/idf_idl.html for older IRIX 6 releases.
If you are using SGI's MIPSpro cc as your bootstrap compiler, you must ensure that the N32 ABI is in use. To test this, compile a simple C file with cc and then run file on the resulting object file. The output should look like:
test.o: ELF N32 MSB ...If you see:
test.o: ELF 32-bit MSB ...or
test.o: ELF 64-bit MSB ...then your version of cc uses the O32 or N64 ABI by default. You should set the environment variable CC to ‘cc -n32’ before configuring GCC.
If you want the resulting gcc to run on old 32-bit systems with the MIPS R4400 CPU, you need to ensure that only code for the ‘mips3’ instruction set architecture (ISA) is generated. While GCC 3.x does this correctly, both GCC 2.95 and SGI's MIPSpro cc may change the ISA depending on the machine where GCC is built. Using one of them as the bootstrap compiler may result in ‘mips4’ code, which won't run at all on ‘mips3’-only systems. For the test program above, you should see:
test.o: ELF N32 MSB mips-3 ...If you get:
test.o: ELF N32 MSB mips-4 ...instead, you should set the environment variable CC to ‘cc -n32 -mips3’ or ‘gcc -mips3’ respectively before configuring GCC.
MIPSpro C 7.4 may cause bootstrap failures, due to a bug when inlining
memcmp. Either add-U__INLINE_INTRINSICSto the CC environment variable as a workaround or upgrade to MIPSpro C 7.4.1m.GCC on IRIX 6 is usually built to support the N32, O32 and N64 ABIs. If you build GCC on a system that doesn't have the N64 libraries installed or cannot run 64-bit binaries, you need to configure with --disable-multilib so GCC doesn't try to use them. This will disable building the O32 libraries, too. Look for /usr/lib64/libc.so.1 to see if you have the 64-bit libraries installed.
GCC must be configured with GNU as. The latest version, from GNU binutils 2.20.1, is known to work. On the other hand, bootstrap fails with GNU ld at least since GNU binutils 2.17.
The --enable-libgcj option is disabled by default: IRIX 6 uses a very low default limit (20480) for the command line length. Although libtool contains a workaround for this problem, at least the N64 ‘libgcj’ is known not to build despite this, running into an internal error of the native ld. A sure fix is to increase this limit (‘ncargs’) to its maximum of 262144 bytes. If you have root access, you can use the systune command to do this.
wchar_tsupport in ‘libstdc++’ is not available for old IRIX 6.5.x releases, x < 19. The problem cannot be autodetected and in order to build GCC for such targets you need to configure with --disable-wchar_t. d883 1 a883 2The moxie processor. See http://moxielogic.org/ for more information about this processor. d905 1 a905 2 http://developer.apple.com/darwin/projects/compiler/ (free registration required). d964 8 a971 1
rx-*-elf
d979 1 a979 1s390-*-linux*
d985 1 a985 1s390x-*-linux*
d991 1 a991 1s390x-ibm-tpf*
d1001 4 a1004 1*-*-solaris2*
d1006 4 a1009 7Support for Solaris 7 has been obsoleted in GCC 4.5, but can still be enabled by configuring with --enable-obsolete. Support will be removed in GCC 4.6.
Sun does not ship a C compiler with Solaris 2, though you can download the Sun Studio compilers for free from http://developers.sun.com/sunstudio/downloads/. Alternatively, d1017 2 a1018 2
% CONFIG_SHELL=/bin/ksh % export CONFIG_SHELL d1049 1 a1049 1 /usr/sfw/bin/gas. Current versions of GNU binutils (2.20.1) d1053 2 a1054 2 the reverse combination Sun as + GNU ld is known to cause memory corruption at runtime in some cases for C++ programs. d1058 10 a1067 2 version (2.20.1) is known to work, but generally lacks platform specific features, so better stay with Sun ld. a1073 8g++ accepts such (invalid) constructs with the option -fpermissive; it will assume that any missing type is
int(as defined by C90).There are patches for Solaris 7 (108376-21 or newer for SPARC, 108377-20 for Intel), and Solaris 8 (108652-24 or newer for SPARC, 108653-22 for Intel) that fix this bug. d1081 1 a1081 2
There are patches for Solaris 8 (117350-12 or newer for SPARC, 117351-12 or newer for Intel) and Solaris 9 (117171-11 or newer for d1084 30 d1116 1 a1116 1
sparc-sun-solaris2*
d1162 5 a1166 6When configuring the GNU Multiple Precision Library (GMP) or the MPFR library on a Solaris 7 or later system, the canonical target triplet must be specified as the build parameter on the configure line. This triplet can be obtained by invoking ./config.guess in the toplevel source directory of GCC (and not that of GMP or MPFR). For example on a Solaris 7 system: d1168 1 a1168 1
% ./configure --build=sparc-sun-solaris2.7 --prefix=xxx d1172 1 a1172 58sparc-sun-solaris2.7
Note that this configuration has been obsoleted in GCC 4.5, and will be removed in GCC 4.6.
Sun patch 107058-01 (1999-01-13) for Solaris 7/SPARC triggers a bug in the dynamic linker. This problem (Sun bug 4210064) affects GCC 2.8 and later, including all EGCS releases. Sun formerly recommended 107058-01 for all Solaris 7 users, but around 1999-09-01 it started to recommend it only for people who use Sun's compilers.
Here are some workarounds to this problem:
- Do not install Sun patch 107058-01 until after Sun releases a complete patch for bug 4210064. This is the simplest course to take, unless you must also use Sun's C compiler. Unfortunately 107058-01 is preinstalled on some new Solaris 7-based hosts, so you may have to back it out.
- Copy the original, unpatched Solaris 7 /usr/ccs/bin/as into /usr/local/libexec/gcc/sparc-sun-solaris2.7/3.4/as, adjusting the latter name to fit your local conventions and software version numbers.
- Install Sun patch 106950-03 (1999-05-25) or later. Nobody with both 107058-01 and 106950-03 installed has reported the bug with GCC and Sun's dynamic linker. This last course of action is riskiest, for two reasons. First, you must install 106950 on all hosts that run code generated by GCC; it doesn't suffice to install it only on the hosts that run GCC itself. Second, Sun says that 106950-03 is only a partial fix for bug 4210064, but Sun doesn't know whether the partial fix is adequate for GCC. Revision -08 or later should fix the bug. The current (as of 2004-05-23) revision is -24, and is included in the Solaris 7 Recommended Patch Cluster.
GCC 3.3 triggers a bug in version 5.0 Alpha 03/27/98 of the Sun assembler, which causes a bootstrap failure when linking the 64-bit shared version of ‘libgcc’. A typical error message is:
ld: fatal: relocation error: R_SPARC_32: file libgcc/sparcv9/_muldi3.o: symbol <unknown>: offset 0xffffffff7ec133e7 is non-aligned.This bug has been fixed in the final 5.0 version of the assembler.
A similar problem was reported for version Sun WorkShop 6 99/08/18 of the Sun assembler, which causes a bootstrap failure with GCC 4.0.0:
ld: fatal: relocation error: R_SPARC_DISP32: file .libs/libstdc++.lax/libsupc++convenience.a/vterminate.o: symbol <unknown>: offset 0xfccd33ad is non-alignedThis bug has been fixed in more recent revisions of the assembler.
sparc-sun-solaris2.10
d1184 1 a1184 1sparc-*-linux*
d1192 1 a1192 1sparc64-*-solaris2*
d1194 4 a1197 4When configuring the GNU Multiple Precision Library (GMP) or the MPFR library, the canonical target triplet must be specified as the build parameter on the configure line. For example on a Solaris 7 system: d1199 1 a1199 1
% ./configure --build=sparc64-sun-solaris2.7 --prefix=xxx d1204 1 a1204 1% CC="cc -xarch=v9 -xildoff" srcdir/configure [options] [target] d1211 1 a1211 1sparcv9-*-solaris2*
d1217 21 a1237 1*-*-vxworks*
d1272 1 a1272 1x86_64-*-*, amd64-*-*
d1281 16 a1296 1xtensa*-*-elf
d1313 1 a1313 1xtensa*-*-linux*
d1324 1 a1324 1Microsoft Windows
d1326 1 a1326 1Intel 16-bit versions
d1334 1 a1334 1Intel 32-bit versions
d1352 1 a1352 1Intel 64-bit versions
d1360 1 a1360 1Windows CE
d1362 1 a1362 1Windows CE is supported as a target only on ARM (arm-wince-pe), Hitachi d1365 1 a1365 1
Other Windows Platforms
d1381 1 a1381 1*-*-cygwin
d1397 1 a1397 1*-*-interix
a1403 2For more information, see http://www.interix.com/. d1406 1 a1406 1
*-*-mingw32
d1414 1 a1414 1Older systems
d1458 1 a1458 1all ELF targets (SVR4, Solaris 2, etc.)
@ 1.2.2.1 log @Rebase. @ text @d10 3 a12 1 Copyright (C) 1988-2013 Free Software Foundation, Inc. d15 1 a15 1 under the terms of the GNU Free Documentation License, Version 1.3 or d52 1 a52 1 information have to. d56 3 a58 3- alpha*-dec-osf5.1
- amd64-*-solaris2.10
- arm-*-eabi d69 1 a69 1
- i?86-*-solaris2.9 d79 2 a83 1
- microblaze-*-elf a100 1
- sparc*-*-* d102 1 a106 3
- c6x-*-*
- tilegx-*-linux*
- tilepro-*-linux* a108 1
- x86_64-*-solaris2.1[0-9]* d140 1 a140 1
alpha*-dec-osf5.1
d146 41 a186 4Support for Tru64 UNIX V5.1 has been removed in GCC 4.8. As of GCC 4.6, support for Tru64 UNIX V4.0 and V5.0 has been removed. As of GCC 3.2, versions before
alpha*-dec-osf4are no longer supported. (These are the versions which identify themselves as DEC OSF/1.) d188 1 d191 1 a191 1amd64-*-solaris2.1[0-9]*
d193 2 a194 1This is a synonym for ‘x86_64-*-solaris2.1[0-9]*’. d198 1 a198 1
arm-*-eabi
d202 2 a203 2arm-*-netbsdelf,arm-*-*linux-*andarm-*-rtemseabi. d227 1 a227 1Error: register required d243 1 a243 16CR16
The CR16 CompactRISC architecture is a 16-bit architecture. This architecture is used in embedded applications.
See “CR16 Options” in the main manual for a list of CR16-specific options.
Use ‘configure --target=cr16-elf --enable-languages=c,c++’ to configure GCC for building a CR16 elf cross-compiler.
Use ‘configure --target=cr16-uclinux --enable-languages=c,c++’ to configure GCC for building a CR16 uclinux cross-compiler.
CRIS
d269 18 d298 1 a298 8epiphany-*-elf
Adapteva Epiphany. This configuration is intended for embedded systems.
*-*-freebsd*
d304 6 a309 7In order to better utilize FreeBSD base system functionality and match the configuration of the system compiler, GCC 4.5 and above as well as GCC 4.4 past 2010-06-20 leverage SSP support in libc (which is present on FreeBSD 7 or later) and the use of
__cxa_atexitby default (on FreeBSD 6 or later). The use ofdl_iterate_phdrinside libgcc_s.so.1 and boehm-gc (on FreeBSD 7 or later) is enabled by GCC 4.5 and above. d334 1 a334 1h8300-hms
d347 1 a347 1hppa*-hp-hpux*
d399 1 a399 1hppa*-hp-hpux10
d411 1 a411 1hppa*-hp-hpux11
d520 1 a520 1*-*-linux-gnu
d528 1 a528 1i?86-*-linux*
d539 1 a539 1i?86-*-solaris2.9
d541 1 a541 1The Sun assembler in Solaris 9 has several bugs and limitations. d545 1 a545 1 version, but the current version, from GNU binutils 2.22, is known to d548 2 a549 2
Solaris 2/x86 doesn't support the execution of SSE/SSE2 instructions before Solaris 9 4/04, even if the CPU supports them. Programs will d551 3 a553 3 Solaris 9 Update 6 and kernel patch 112234-12 or newer. To avoid this problem, -march defaults to ‘pentiumpro’ on Solaris 9. If d559 1 a559 1
i?86-*-solaris2.10
d561 5 a565 4Use this for Solaris 10 or later on x86 and x86-64 systems. Starting with GCC 4.7, there is also a 64-bit ‘amd64-*-solaris2.1[0-9]*’ or ‘x86_64-*-solaris2.1[0-9]*’ configuration that corresponds to ‘sparcv9-sun-solaris2*’. d571 1 a571 1 2.22, is known to work, too. Recent versions of the Sun assembler in d579 1 a579 1 2.19, works, as does the latest version, from GNU binutils 2.22. d589 1 a589 1
ia64-*-linux
d609 1 a609 1ia64-*-hpux*
d624 1 a624 1*-ibm-aix*
d638 2 a639 2% LDR_CNTRL=MAXDATA=0x50000000 % export LDR_CNTRL d648 2 a649 2% CONFIG_SHELL=/opt/freeware/bin/bash % export CONFIG_SHELL d670 4 a673 14The native as and ld are recommended for bootstrapping on AIX. The GNU Assembler, GNU Linker, and GNU Binutils version 2.20 is the minimum level that supports bootstrap on AIX 5. The GNU Assembler has not been updated to support AIX 6 or AIX 7. The native AIX tools do interoperate with GCC.
AIX 5.3 TL10, AIX 6.1 TL05 and AIX 7.1 TL00 introduced an AIX assembler change that sometimes produces corrupt assembly files causing AIX linker errors. The bug breaks GCC bootstrap on AIX and can cause compilation failures with existing GCC installations. An AIX iFix for AIX 5.3 is available (APAR IZ98385 for AIX 5.3 TL10, APAR IZ98477 for AIX 5.3 TL11 and IZ98134 for AIX 5.3 TL12). AIX 5.3 TL11 SP8, AIX 5.3 TL12 SP5, AIX 6.1 TL04 SP11, AIX 6.1 TL05 SP7, AIX 6.1 TL06 SP6, AIX 6.1 TL07 and AIX 7.1 TL01 should include the fix. d694 1 a694 1
% ar -x libstdc++.a libstdc++.so.4 libstdc++.so.5 d698 1 a698 1% strip -e libstdc++.so.4 libstdc++.so.5 d702 1 a702 1% ar -q libstdc++.a libstdc++.so.4 libstdc++.so.5 d754 1 a754 1iq2000-*-elf
d761 1 a761 1lm32-*-elf
d768 1 a768 1lm32-*-uclinux
d775 1 a775 1m32c-*-elf
d782 1 a782 1m32r-*-elf
d789 15 a803 1m68k-*-*
a826 2GCC requires at least binutils version 2.17 on these targets. d829 1 a829 1
m68k-*-uclinux
d834 3 a836 1 both of which were ABI changes. d840 1 a840 1mep-*-elf
a846 7microblaze-*-elf
Xilinx MicroBlaze processor. This configuration is intended for embedded systems.
d888 6 d906 34 a939 1Support for IRIX 5 has been removed in GCC 4.6. d945 78 a1022 3
Support for IRIX 6.5 has been removed in GCC 4.8. Support for IRIX 6 releases before 6.5 has been removed in GCC 4.6, as well as support for the O32 ABI. d1028 2 a1029 1
The moxie processor. d1051 2 a1052 1 http://opensource.apple.com/. d1111 1 a1111 8
rl78-*-elf
The Renesas RL78 processor. This configuration is intended for embedded systems.
rx-*-elf
d1119 1 a1119 1s390-*-linux*
d1125 1 a1125 1s390x-*-linux*
d1131 1 a1131 1s390x-ibm-tpf*
d1141 1 a1141 4*-*-solaris2*
Support for Solaris 8 has removed in GCC 4.8. Support for Solaris 7 has been removed in GCC 4.6. d1143 7 a1149 4
Sun does not ship a C compiler with Solaris 2 before Solaris 10, though you can download the Sun Studio compilers for free. In Solaris 10 and 11, GCC 3.4.3 is available as /usr/sfw/bin/gcc. Solaris 11 also provides GCC 4.5.2 as /usr/gcc/4.5/bin/gcc. Alternatively, d1157 2 a1158 2
% CONFIG_SHELL=/bin/ksh % export CONFIG_SHELL d1189 1 a1189 1 /usr/sfw/bin/gas. Current versions of GNU binutils (2.22) d1193 2 a1194 2 the reverse combination Sun as + GNU ld may fail to build or cause memory corruption at runtime in some cases for C++ programs. d1198 2 a1199 10 version (2.22) is known to work, but generally lacks platform specific features, so better stay with Sun ld. To use the LTO linker plugin (-fuse-linker-plugin) with GNU ld, GNU binutils must be configured with --enable-largefile.To enable symbol versioning in ‘libstdc++’ with Sun ld, you need to have any version of GNU c++filt, which is part of GNU binutils. ‘libstdc++’ symbol versioning will be disabled if no appropriate version is found. Sun c++filt from the Sun Studio compilers does not work. d1206 8 d1221 2 a1222 1
There are patches for Solaris 9 (117171-11 or newer for a1224 30
Thread-local storage (TLS) is supported in Solaris 9, but requires some patches. The ‘libthread’ patches provide the
__tls_get_addr(SPARC, 64-bit x86) resp.___tls_get_addr(32-bit x86) functions. On Solaris 9, the necessary support on SPARC is present since FCS, while 114432-05 or newer is required on Intel. Additionally, on Solaris 9/x86, patch 113986-02 or newer is required for the Sun ld and runtime linker (ld.so.1) support, while Solaris 9/SPARC works since FCS. The linker patches must be installed even if GNU ld is used. Sun as in Solaris 9 doesn't support the necessary relocations, so GNU as must be used. The configure script checks for those prerequisites and automatically enables TLS support if they are met. Although those minimal patch versions should work, it is recommended to use the latest patch versions which include additional bug fixes.
sparc*-*-*
This section contains general configuration information for all SPARC-based platforms. In addition to reading this section, please read all other sections that match your target.
Newer versions of the GNU Multiple Precision Library (GMP), the MPFR library and the MPC library are known to be miscompiled by earlier versions of GCC on these platforms. We therefore recommend the use of the exact versions of these libraries listed as minimal versions in the prerequisites. d1227 1 a1227 1
sparc-sun-solaris2*
d1273 6 a1278 5When configuring the GNU Multiple Precision Library (GMP), the MPFR library or the MPC library on a Solaris 7 or later system, the canonical target triplet must be specified as the build parameter on the configure line. This target triplet can be obtained by invoking ./config.guess in the toplevel source directory of GCC (and not that of GMP or MPFR or MPC). For example on a Solaris 9 system: d1280 1 a1280 1
% ./configure --build=sparc-sun-solaris2.9 --prefix=xxx d1284 58 a1341 1sparc-sun-solaris2.10
d1353 1 a1353 1sparc-*-linux*
d1361 1 a1361 1sparc64-*-solaris2*
d1363 4 a1366 4When configuring the GNU Multiple Precision Library (GMP), the MPFR library or the MPC library, the canonical target triplet must be specified as the build parameter on the configure line. For example on a Solaris 9 system: d1368 1 a1368 1
% ./configure --build=sparc64-sun-solaris2.9 --prefix=xxx d1373 1 a1373 1% CC="cc -xarch=v9 -xildoff" srcdir/configure [options] [target] d1380 1 a1380 1sparcv9-*-solaris2*
d1386 1 a1386 21c6x-*-*
The C6X family of processors. This port requires binutils-2.22 or newer.
tilegx-*-linux*
The TILE-Gx processor running GNU/Linux. This port requires binutils-2.22 or newer.
tilepro-*-linux*
The TILEPro processor running GNU/Linux. This port requires binutils-2.22 or newer.
*-*-vxworks*
d1421 1 a1421 1x86_64-*-*, amd64-*-*
d1430 1 a1430 16x86_64-*-solaris2.1[0-9]*
GCC also supports the x86-64 architecture implemented by the AMD64 processor (‘amd64-*-*’ is an alias for ‘x86_64-*-*’) on Solaris 10 or later. Unlike other systems, without special options a bi-arch compiler is built which generates 32-bit code by default, but can generate 64-bit x86-64 code with the -m64 switch. Since GCC 4.7, there is also configuration that defaults to 64-bit code, but can generate 32-bit code with -m32. To configure and build this way, you have to provide all support libraries like libgmp as 64-bit code, configure with --target=x86_64-pc-solaris2.1x and ‘CC=gcc -m64’.
xtensa*-*-elf
d1447 1 a1447 1xtensa*-*-linux*
d1458 1 a1458 1Microsoft Windows
d1460 1 a1460 1Intel 16-bit versions
d1468 1 a1468 1Intel 32-bit versions
d1486 1 a1486 1Intel 64-bit versions
d1494 1 a1494 1Windows CE
d1496 1 a1496 1Windows CE is supported as a target only on Hitachi d1499 1 a1499 1
Other Windows Platforms
d1515 1 a1515 1*-*-cygwin
d1531 1 a1531 1*-*-interix
d1538 2 d1542 1 a1542 1*-*-mingw32
d1550 1 a1550 1Older systems
d1594 1 a1594 1all ELF targets (SVR4, Solaris 2, etc.)
@ 1.1 log @Initial revision @ text @@ 1.1.1.1 log @initial import of GCC 4.5.3 sources. changes since 4.1 are way too numerous to review, please see http://gcc.gnu.org/gcc-4.5/changes.html (and the 4.2, 4.3 and 4.4 versions, too.) this includes the core, c++, objc and the non java/ada/fortran parts of the testsuite. @ text @@ 1.1.1.1.8.1 log @Rebase to HEAD as of a few days ago. @ text @d10 3 a12 1 Copyright (C) 1988-2013 Free Software Foundation, Inc. d15 1 a15 1 under the terms of the GNU Free Documentation License, Version 1.3 or d52 1 a52 1 information have to. d56 3 a58 3- alpha*-dec-osf5.1
- amd64-*-solaris2.10
- arm-*-eabi d69 1 a69 1
- i?86-*-solaris2.9 d79 2 a83 1
- microblaze-*-elf a100 1
- sparc*-*-* d102 1 a106 3
- c6x-*-*
- tilegx-*-linux*
- tilepro-*-linux* a108 1
- x86_64-*-solaris2.1[0-9]* d140 1 a140 1
alpha*-dec-osf5.1
d146 41 a186 4Support for Tru64 UNIX V5.1 has been removed in GCC 4.8. As of GCC 4.6, support for Tru64 UNIX V4.0 and V5.0 has been removed. As of GCC 3.2, versions before
alpha*-dec-osf4are no longer supported. (These are the versions which identify themselves as DEC OSF/1.) d188 1 d191 1 a191 1amd64-*-solaris2.1[0-9]*
d193 2 a194 1This is a synonym for ‘x86_64-*-solaris2.1[0-9]*’. d198 1 a198 1
arm-*-eabi
d202 2 a203 2arm-*-netbsdelf,arm-*-*linux-*andarm-*-rtemseabi. d227 1 a227 1Error: register required d243 1 a243 16CR16
The CR16 CompactRISC architecture is a 16-bit architecture. This architecture is used in embedded applications.
See “CR16 Options” in the main manual for a list of CR16-specific options.
Use ‘configure --target=cr16-elf --enable-languages=c,c++’ to configure GCC for building a CR16 elf cross-compiler.
Use ‘configure --target=cr16-uclinux --enable-languages=c,c++’ to configure GCC for building a CR16 uclinux cross-compiler.
CRIS
d269 18 d298 1 a298 8epiphany-*-elf
Adapteva Epiphany. This configuration is intended for embedded systems.
*-*-freebsd*
d304 6 a309 7In order to better utilize FreeBSD base system functionality and match the configuration of the system compiler, GCC 4.5 and above as well as GCC 4.4 past 2010-06-20 leverage SSP support in libc (which is present on FreeBSD 7 or later) and the use of
__cxa_atexitby default (on FreeBSD 6 or later). The use ofdl_iterate_phdrinside libgcc_s.so.1 and boehm-gc (on FreeBSD 7 or later) is enabled by GCC 4.5 and above. d334 1 a334 1h8300-hms
d347 1 a347 1hppa*-hp-hpux*
d399 1 a399 1hppa*-hp-hpux10
d411 1 a411 1hppa*-hp-hpux11
d520 1 a520 1*-*-linux-gnu
d528 1 a528 1i?86-*-linux*
d539 1 a539 1i?86-*-solaris2.9
d541 1 a541 1The Sun assembler in Solaris 9 has several bugs and limitations. d545 1 a545 1 version, but the current version, from GNU binutils 2.22, is known to d548 2 a549 2
Solaris 2/x86 doesn't support the execution of SSE/SSE2 instructions before Solaris 9 4/04, even if the CPU supports them. Programs will d551 3 a553 3 Solaris 9 Update 6 and kernel patch 112234-12 or newer. To avoid this problem, -march defaults to ‘pentiumpro’ on Solaris 9. If d559 1 a559 1
i?86-*-solaris2.10
d561 5 a565 4Use this for Solaris 10 or later on x86 and x86-64 systems. Starting with GCC 4.7, there is also a 64-bit ‘amd64-*-solaris2.1[0-9]*’ or ‘x86_64-*-solaris2.1[0-9]*’ configuration that corresponds to ‘sparcv9-sun-solaris2*’. d571 1 a571 1 2.22, is known to work, too. Recent versions of the Sun assembler in d579 1 a579 1 2.19, works, as does the latest version, from GNU binutils 2.22. d589 1 a589 1
ia64-*-linux
d609 1 a609 1ia64-*-hpux*
d624 1 a624 1*-ibm-aix*
d638 2 a639 2% LDR_CNTRL=MAXDATA=0x50000000 % export LDR_CNTRL d648 2 a649 2% CONFIG_SHELL=/opt/freeware/bin/bash % export CONFIG_SHELL d670 4 a673 14The native as and ld are recommended for bootstrapping on AIX. The GNU Assembler, GNU Linker, and GNU Binutils version 2.20 is the minimum level that supports bootstrap on AIX 5. The GNU Assembler has not been updated to support AIX 6 or AIX 7. The native AIX tools do interoperate with GCC.
AIX 5.3 TL10, AIX 6.1 TL05 and AIX 7.1 TL00 introduced an AIX assembler change that sometimes produces corrupt assembly files causing AIX linker errors. The bug breaks GCC bootstrap on AIX and can cause compilation failures with existing GCC installations. An AIX iFix for AIX 5.3 is available (APAR IZ98385 for AIX 5.3 TL10, APAR IZ98477 for AIX 5.3 TL11 and IZ98134 for AIX 5.3 TL12). AIX 5.3 TL11 SP8, AIX 5.3 TL12 SP5, AIX 6.1 TL04 SP11, AIX 6.1 TL05 SP7, AIX 6.1 TL06 SP6, AIX 6.1 TL07 and AIX 7.1 TL01 should include the fix. d694 1 a694 1
% ar -x libstdc++.a libstdc++.so.4 libstdc++.so.5 d698 1 a698 1% strip -e libstdc++.so.4 libstdc++.so.5 d702 1 a702 1% ar -q libstdc++.a libstdc++.so.4 libstdc++.so.5 d754 1 a754 1iq2000-*-elf
d761 1 a761 1lm32-*-elf
d768 1 a768 1lm32-*-uclinux
d775 1 a775 1m32c-*-elf
d782 1 a782 1m32r-*-elf
d789 15 a803 1m68k-*-*
a826 2GCC requires at least binutils version 2.17 on these targets. d829 1 a829 1
m68k-*-uclinux
d834 3 a836 1 both of which were ABI changes. d840 1 a840 1mep-*-elf
a846 7microblaze-*-elf
Xilinx MicroBlaze processor. This configuration is intended for embedded systems.
d888 6 d906 34 a939 1Support for IRIX 5 has been removed in GCC 4.6. d945 78 a1022 3
Support for IRIX 6.5 has been removed in GCC 4.8. Support for IRIX 6 releases before 6.5 has been removed in GCC 4.6, as well as support for the O32 ABI. d1028 2 a1029 1
The moxie processor. d1051 2 a1052 1 http://opensource.apple.com/. d1111 1 a1111 8
rl78-*-elf
The Renesas RL78 processor. This configuration is intended for embedded systems.
rx-*-elf
d1119 1 a1119 1s390-*-linux*
d1125 1 a1125 1s390x-*-linux*
d1131 1 a1131 1s390x-ibm-tpf*
d1141 1 a1141 4*-*-solaris2*
Support for Solaris 8 has removed in GCC 4.8. Support for Solaris 7 has been removed in GCC 4.6. d1143 7 a1149 4
Sun does not ship a C compiler with Solaris 2 before Solaris 10, though you can download the Sun Studio compilers for free. In Solaris 10 and 11, GCC 3.4.3 is available as /usr/sfw/bin/gcc. Solaris 11 also provides GCC 4.5.2 as /usr/gcc/4.5/bin/gcc. Alternatively, d1157 2 a1158 2
% CONFIG_SHELL=/bin/ksh % export CONFIG_SHELL d1189 1 a1189 1 /usr/sfw/bin/gas. Current versions of GNU binutils (2.22) d1193 2 a1194 2 the reverse combination Sun as + GNU ld may fail to build or cause memory corruption at runtime in some cases for C++ programs. d1198 2 a1199 10 version (2.22) is known to work, but generally lacks platform specific features, so better stay with Sun ld. To use the LTO linker plugin (-fuse-linker-plugin) with GNU ld, GNU binutils must be configured with --enable-largefile.To enable symbol versioning in ‘libstdc++’ with Sun ld, you need to have any version of GNU c++filt, which is part of GNU binutils. ‘libstdc++’ symbol versioning will be disabled if no appropriate version is found. Sun c++filt from the Sun Studio compilers does not work. d1206 8 d1221 2 a1222 1
There are patches for Solaris 9 (117171-11 or newer for a1224 30
Thread-local storage (TLS) is supported in Solaris 9, but requires some patches. The ‘libthread’ patches provide the
__tls_get_addr(SPARC, 64-bit x86) resp.___tls_get_addr(32-bit x86) functions. On Solaris 9, the necessary support on SPARC is present since FCS, while 114432-05 or newer is required on Intel. Additionally, on Solaris 9/x86, patch 113986-02 or newer is required for the Sun ld and runtime linker (ld.so.1) support, while Solaris 9/SPARC works since FCS. The linker patches must be installed even if GNU ld is used. Sun as in Solaris 9 doesn't support the necessary relocations, so GNU as must be used. The configure script checks for those prerequisites and automatically enables TLS support if they are met. Although those minimal patch versions should work, it is recommended to use the latest patch versions which include additional bug fixes.
sparc*-*-*
This section contains general configuration information for all SPARC-based platforms. In addition to reading this section, please read all other sections that match your target.
Newer versions of the GNU Multiple Precision Library (GMP), the MPFR library and the MPC library are known to be miscompiled by earlier versions of GCC on these platforms. We therefore recommend the use of the exact versions of these libraries listed as minimal versions in the prerequisites. d1227 1 a1227 1
sparc-sun-solaris2*
d1273 6 a1278 5When configuring the GNU Multiple Precision Library (GMP), the MPFR library or the MPC library on a Solaris 7 or later system, the canonical target triplet must be specified as the build parameter on the configure line. This target triplet can be obtained by invoking ./config.guess in the toplevel source directory of GCC (and not that of GMP or MPFR or MPC). For example on a Solaris 9 system: d1280 1 a1280 1
% ./configure --build=sparc-sun-solaris2.9 --prefix=xxx d1284 58 a1341 1sparc-sun-solaris2.10
d1353 1 a1353 1sparc-*-linux*
d1361 1 a1361 1sparc64-*-solaris2*
d1363 4 a1366 4When configuring the GNU Multiple Precision Library (GMP), the MPFR library or the MPC library, the canonical target triplet must be specified as the build parameter on the configure line. For example on a Solaris 9 system: d1368 1 a1368 1
% ./configure --build=sparc64-sun-solaris2.9 --prefix=xxx d1373 1 a1373 1% CC="cc -xarch=v9 -xildoff" srcdir/configure [options] [target] d1380 1 a1380 1sparcv9-*-solaris2*
d1386 1 a1386 21c6x-*-*
The C6X family of processors. This port requires binutils-2.22 or newer.
tilegx-*-linux*
The TILE-Gx processor running GNU/Linux. This port requires binutils-2.22 or newer.
tilepro-*-linux*
The TILEPro processor running GNU/Linux. This port requires binutils-2.22 or newer.
*-*-vxworks*
d1421 1 a1421 1x86_64-*-*, amd64-*-*
d1430 1 a1430 16x86_64-*-solaris2.1[0-9]*
GCC also supports the x86-64 architecture implemented by the AMD64 processor (‘amd64-*-*’ is an alias for ‘x86_64-*-*’) on Solaris 10 or later. Unlike other systems, without special options a bi-arch compiler is built which generates 32-bit code by default, but can generate 64-bit x86-64 code with the -m64 switch. Since GCC 4.7, there is also configuration that defaults to 64-bit code, but can generate 32-bit code with -m32. To configure and build this way, you have to provide all support libraries like libgmp as 64-bit code, configure with --target=x86_64-pc-solaris2.1x and ‘CC=gcc -m64’.
xtensa*-*-elf
d1447 1 a1447 1xtensa*-*-linux*
d1458 1 a1458 1Microsoft Windows
d1460 1 a1460 1Intel 16-bit versions
d1468 1 a1468 1Intel 32-bit versions
d1486 1 a1486 1Intel 64-bit versions
d1494 1 a1494 1Windows CE
d1496 1 a1496 1Windows CE is supported as a target only on Hitachi d1499 1 a1499 1
Other Windows Platforms
d1515 1 a1515 1*-*-cygwin
d1531 1 a1531 1*-*-interix
d1538 2 d1542 1 a1542 1*-*-mingw32
d1550 1 a1550 1Older systems
d1594 1 a1594 1all ELF targets (SVR4, Solaris 2, etc.)
@ 1.1.1.2 log @Import gcc 4.8.3 which has 98 bugs fixed on gcc-4-8-3-pre-r208254 @ text @d10 3 a12 1 Copyright (C) 1988-2013 Free Software Foundation, Inc. d15 1 a15 1 under the terms of the GNU Free Documentation License, Version 1.3 or d52 1 a52 1 information have to. d56 3 a58 3- alpha*-dec-osf5.1
- amd64-*-solaris2.10
- arm-*-eabi d69 1 a69 1
- i?86-*-solaris2.9 d79 2 a83 1
- microblaze-*-elf a100 1
- sparc*-*-* d102 1 a106 3
- c6x-*-*
- tilegx-*-linux*
- tilepro-*-linux* a108 1
- x86_64-*-solaris2.1[0-9]* d140 1 a140 1
alpha*-dec-osf5.1
d146 41 a186 4Support for Tru64 UNIX V5.1 has been removed in GCC 4.8. As of GCC 4.6, support for Tru64 UNIX V4.0 and V5.0 has been removed. As of GCC 3.2, versions before
alpha*-dec-osf4are no longer supported. (These are the versions which identify themselves as DEC OSF/1.) d188 1 d191 1 a191 1amd64-*-solaris2.1[0-9]*
d193 2 a194 1This is a synonym for ‘x86_64-*-solaris2.1[0-9]*’. d198 1 a198 1
arm-*-eabi
d202 2 a203 2arm-*-netbsdelf,arm-*-*linux-*andarm-*-rtemseabi. d227 1 a227 1Error: register required d243 1 a243 16CR16
The CR16 CompactRISC architecture is a 16-bit architecture. This architecture is used in embedded applications.
See “CR16 Options” in the main manual for a list of CR16-specific options.
Use ‘configure --target=cr16-elf --enable-languages=c,c++’ to configure GCC for building a CR16 elf cross-compiler.
Use ‘configure --target=cr16-uclinux --enable-languages=c,c++’ to configure GCC for building a CR16 uclinux cross-compiler.
CRIS
d269 18 d298 1 a298 8epiphany-*-elf
Adapteva Epiphany. This configuration is intended for embedded systems.
*-*-freebsd*
d304 6 a309 7In order to better utilize FreeBSD base system functionality and match the configuration of the system compiler, GCC 4.5 and above as well as GCC 4.4 past 2010-06-20 leverage SSP support in libc (which is present on FreeBSD 7 or later) and the use of
__cxa_atexitby default (on FreeBSD 6 or later). The use ofdl_iterate_phdrinside libgcc_s.so.1 and boehm-gc (on FreeBSD 7 or later) is enabled by GCC 4.5 and above. d334 1 a334 1h8300-hms
d347 1 a347 1hppa*-hp-hpux*
d399 1 a399 1hppa*-hp-hpux10
d411 1 a411 1hppa*-hp-hpux11
d520 1 a520 1*-*-linux-gnu
d528 1 a528 1i?86-*-linux*
d539 1 a539 1i?86-*-solaris2.9
d541 1 a541 1The Sun assembler in Solaris 9 has several bugs and limitations. d545 1 a545 1 version, but the current version, from GNU binutils 2.22, is known to d548 2 a549 2
Solaris 2/x86 doesn't support the execution of SSE/SSE2 instructions before Solaris 9 4/04, even if the CPU supports them. Programs will d551 3 a553 3 Solaris 9 Update 6 and kernel patch 112234-12 or newer. To avoid this problem, -march defaults to ‘pentiumpro’ on Solaris 9. If d559 1 a559 1
i?86-*-solaris2.10
d561 5 a565 4Use this for Solaris 10 or later on x86 and x86-64 systems. Starting with GCC 4.7, there is also a 64-bit ‘amd64-*-solaris2.1[0-9]*’ or ‘x86_64-*-solaris2.1[0-9]*’ configuration that corresponds to ‘sparcv9-sun-solaris2*’. d571 1 a571 1 2.22, is known to work, too. Recent versions of the Sun assembler in d579 1 a579 1 2.19, works, as does the latest version, from GNU binutils 2.22. d589 1 a589 1
ia64-*-linux
d609 1 a609 1ia64-*-hpux*
d624 1 a624 1*-ibm-aix*
d638 2 a639 2% LDR_CNTRL=MAXDATA=0x50000000 % export LDR_CNTRL d648 2 a649 2% CONFIG_SHELL=/opt/freeware/bin/bash % export CONFIG_SHELL d670 4 a673 14The native as and ld are recommended for bootstrapping on AIX. The GNU Assembler, GNU Linker, and GNU Binutils version 2.20 is the minimum level that supports bootstrap on AIX 5. The GNU Assembler has not been updated to support AIX 6 or AIX 7. The native AIX tools do interoperate with GCC.
AIX 5.3 TL10, AIX 6.1 TL05 and AIX 7.1 TL00 introduced an AIX assembler change that sometimes produces corrupt assembly files causing AIX linker errors. The bug breaks GCC bootstrap on AIX and can cause compilation failures with existing GCC installations. An AIX iFix for AIX 5.3 is available (APAR IZ98385 for AIX 5.3 TL10, APAR IZ98477 for AIX 5.3 TL11 and IZ98134 for AIX 5.3 TL12). AIX 5.3 TL11 SP8, AIX 5.3 TL12 SP5, AIX 6.1 TL04 SP11, AIX 6.1 TL05 SP7, AIX 6.1 TL06 SP6, AIX 6.1 TL07 and AIX 7.1 TL01 should include the fix. d694 1 a694 1
% ar -x libstdc++.a libstdc++.so.4 libstdc++.so.5 d698 1 a698 1% strip -e libstdc++.so.4 libstdc++.so.5 d702 1 a702 1% ar -q libstdc++.a libstdc++.so.4 libstdc++.so.5 d754 1 a754 1iq2000-*-elf
d761 1 a761 1lm32-*-elf
d768 1 a768 1lm32-*-uclinux
d775 1 a775 1m32c-*-elf
d782 1 a782 1m32r-*-elf
d789 15 a803 1m68k-*-*
a826 2GCC requires at least binutils version 2.17 on these targets. d829 1 a829 1
m68k-*-uclinux
d834 3 a836 1 both of which were ABI changes. d840 1 a840 1mep-*-elf
a846 7microblaze-*-elf
Xilinx MicroBlaze processor. This configuration is intended for embedded systems.
d888 6 d906 34 a939 1Support for IRIX 5 has been removed in GCC 4.6. d945 78 a1022 3
Support for IRIX 6.5 has been removed in GCC 4.8. Support for IRIX 6 releases before 6.5 has been removed in GCC 4.6, as well as support for the O32 ABI. d1028 2 a1029 1
The moxie processor. d1051 2 a1052 1 http://opensource.apple.com/. d1111 1 a1111 8
rl78-*-elf
The Renesas RL78 processor. This configuration is intended for embedded systems.
rx-*-elf
d1119 1 a1119 1s390-*-linux*
d1125 1 a1125 1s390x-*-linux*
d1131 1 a1131 1s390x-ibm-tpf*
d1141 1 a1141 4*-*-solaris2*
Support for Solaris 8 has removed in GCC 4.8. Support for Solaris 7 has been removed in GCC 4.6. d1143 7 a1149 4
Sun does not ship a C compiler with Solaris 2 before Solaris 10, though you can download the Sun Studio compilers for free. In Solaris 10 and 11, GCC 3.4.3 is available as /usr/sfw/bin/gcc. Solaris 11 also provides GCC 4.5.2 as /usr/gcc/4.5/bin/gcc. Alternatively, d1157 2 a1158 2
% CONFIG_SHELL=/bin/ksh % export CONFIG_SHELL d1189 1 a1189 1 /usr/sfw/bin/gas. Current versions of GNU binutils (2.22) d1193 2 a1194 2 the reverse combination Sun as + GNU ld may fail to build or cause memory corruption at runtime in some cases for C++ programs. d1198 2 a1199 10 version (2.22) is known to work, but generally lacks platform specific features, so better stay with Sun ld. To use the LTO linker plugin (-fuse-linker-plugin) with GNU ld, GNU binutils must be configured with --enable-largefile.To enable symbol versioning in ‘libstdc++’ with Sun ld, you need to have any version of GNU c++filt, which is part of GNU binutils. ‘libstdc++’ symbol versioning will be disabled if no appropriate version is found. Sun c++filt from the Sun Studio compilers does not work. d1206 8 d1221 2 a1222 1
There are patches for Solaris 9 (117171-11 or newer for a1224 30
Thread-local storage (TLS) is supported in Solaris 9, but requires some patches. The ‘libthread’ patches provide the
__tls_get_addr(SPARC, 64-bit x86) resp.___tls_get_addr(32-bit x86) functions. On Solaris 9, the necessary support on SPARC is present since FCS, while 114432-05 or newer is required on Intel. Additionally, on Solaris 9/x86, patch 113986-02 or newer is required for the Sun ld and runtime linker (ld.so.1) support, while Solaris 9/SPARC works since FCS. The linker patches must be installed even if GNU ld is used. Sun as in Solaris 9 doesn't support the necessary relocations, so GNU as must be used. The configure script checks for those prerequisites and automatically enables TLS support if they are met. Although those minimal patch versions should work, it is recommended to use the latest patch versions which include additional bug fixes.
sparc*-*-*
This section contains general configuration information for all SPARC-based platforms. In addition to reading this section, please read all other sections that match your target.
Newer versions of the GNU Multiple Precision Library (GMP), the MPFR library and the MPC library are known to be miscompiled by earlier versions of GCC on these platforms. We therefore recommend the use of the exact versions of these libraries listed as minimal versions in the prerequisites. d1227 1 a1227 1
sparc-sun-solaris2*
d1273 6 a1278 5When configuring the GNU Multiple Precision Library (GMP), the MPFR library or the MPC library on a Solaris 7 or later system, the canonical target triplet must be specified as the build parameter on the configure line. This target triplet can be obtained by invoking ./config.guess in the toplevel source directory of GCC (and not that of GMP or MPFR or MPC). For example on a Solaris 9 system: d1280 1 a1280 1
% ./configure --build=sparc-sun-solaris2.9 --prefix=xxx d1284 58 a1341 1sparc-sun-solaris2.10
d1353 1 a1353 1sparc-*-linux*
d1361 1 a1361 1sparc64-*-solaris2*
d1363 4 a1366 4When configuring the GNU Multiple Precision Library (GMP), the MPFR library or the MPC library, the canonical target triplet must be specified as the build parameter on the configure line. For example on a Solaris 9 system: d1368 1 a1368 1
% ./configure --build=sparc64-sun-solaris2.9 --prefix=xxx d1373 1 a1373 1% CC="cc -xarch=v9 -xildoff" srcdir/configure [options] [target] d1380 1 a1380 1sparcv9-*-solaris2*
d1386 1 a1386 21c6x-*-*
The C6X family of processors. This port requires binutils-2.22 or newer.
tilegx-*-linux*
The TILE-Gx processor running GNU/Linux. This port requires binutils-2.22 or newer.
tilepro-*-linux*
The TILEPro processor running GNU/Linux. This port requires binutils-2.22 or newer.
*-*-vxworks*
d1421 1 a1421 1x86_64-*-*, amd64-*-*
d1430 1 a1430 16x86_64-*-solaris2.1[0-9]*
GCC also supports the x86-64 architecture implemented by the AMD64 processor (‘amd64-*-*’ is an alias for ‘x86_64-*-*’) on Solaris 10 or later. Unlike other systems, without special options a bi-arch compiler is built which generates 32-bit code by default, but can generate 64-bit x86-64 code with the -m64 switch. Since GCC 4.7, there is also configuration that defaults to 64-bit code, but can generate 32-bit code with -m32. To configure and build this way, you have to provide all support libraries like libgmp as 64-bit code, configure with --target=x86_64-pc-solaris2.1x and ‘CC=gcc -m64’.
xtensa*-*-elf
d1447 1 a1447 1xtensa*-*-linux*
d1458 1 a1458 1Microsoft Windows
d1460 1 a1460 1Intel 16-bit versions
d1468 1 a1468 1Intel 32-bit versions
d1486 1 a1486 1Intel 64-bit versions
d1494 1 a1494 1Windows CE
d1496 1 a1496 1Windows CE is supported as a target only on Hitachi d1499 1 a1499 1
Other Windows Platforms
d1515 1 a1515 1*-*-cygwin
d1531 1 a1531 1*-*-interix
d1538 2 d1542 1 a1542 1*-*-mingw32
d1550 1 a1550 1Older systems
d1594 1 a1594 1all ELF targets (SVR4, Solaris 2, etc.)
@ 1.1.1.3 log @import GCC 4.8.4 release. this fixes at least these GCC PRs: fortran/61407 sanitizer/64265 tree-optimization/64269 middle-end/64225 tree-optimization/61686 bootstrap/64213 rtl-optimization/64037 target/50751 rtl-optimization/64037 target/59593 target/59593 c++/56493 target/64115 middle-end/64111 middle-end/64067 rtl-optimization/63659 libgomp/61200 tree-optimization/61969 tree-optimization/62031 tree-optimization/63379 tree-optimization/63605 middle-end/63665 target/60111 target/63673 target/63947 tree-optimization/62167 tree-optimization/63841 ipa/63838 c++/63455 c++/63415 c++/56710 c++/58624 preprocessor/60436 target/55351 fortran/63938 libgomp/61200 libstdc++/63840 libstdc++/61947 libstdc++/59603 target/56846 libstdc++/57440 @ text @d1 10 a10 3Installing GCC d47 4 a50 34 d52 71 d124 2 a125 1 d127 1 a127 2Installing GCC
d129 4 d134 4 d139 1 d141 1 d143 3 d147 4 d152 1 d154 1 d156 1 d158 1 d160 1 d162 4 d167 1 d169 1 d171 4 d176 1 d178 2 d181 4 d186 1 d188 4 d193 1 d195 1 d197 2 d200 2 a201 5 d203 1 a203 80Please read this document carefully before installing the GNU Compiler Collection on your machine.
Note that this list of install notes is not a list of supported hosts or targets. Not all supported hosts and targets are listed here, only the ones that require host-specific or target-specific information have to.
- aarch64*-*-*
- alpha*-*-*
- alpha*-dec-osf5.1
- amd64-*-solaris2.10
- arm-*-eabi
- avr
- Blackfin
- DOS
- *-*-freebsd*
- h8300-hms
- hppa*-hp-hpux*
- hppa*-hp-hpux10
- hppa*-hp-hpux11
- *-*-linux-gnu
- i?86-*-linux*
- i?86-*-solaris2.9
- i?86-*-solaris2.10
- ia64-*-linux
- ia64-*-hpux*
- *-ibm-aix*
- iq2000-*-elf
- lm32-*-elf
- lm32-*-uclinux
- m32c-*-elf
- m32r-*-elf
- m68k-*-*
- m68k-uclinux
- mep-*-elf
- microblaze-*-elf
- mips-*-*
- mips-sgi-irix5
- mips-sgi-irix6
- powerpc*-*-*
- powerpc-*-darwin*
- powerpc-*-elf
- powerpc*-*-linux-gnu*
- powerpc-*-netbsd*
- powerpc-*-eabisim
- powerpc-*-eabi
- powerpcle-*-elf
- powerpcle-*-eabisim
- powerpcle-*-eabi
- s390-*-linux*
- s390x-*-linux*
- s390x-ibm-tpf*
- *-*-solaris2*
- sparc*-*-*
- sparc-sun-solaris2*
- sparc-sun-solaris2.10
- sparc-*-linux*
- sparc64-*-solaris2*
- sparcv9-*-solaris2*
- c6x-*-*
- tilegx-*-linux*
- tilepro-*-linux*
- *-*-vxworks*
- x86_64-*-*, amd64-*-*
- x86_64-*-solaris2.1[0-9]*
- xtensa*-*-elf
- xtensa*-*-linux*
- Microsoft Windows
- *-*-cygwin
- *-*-interix
- *-*-mingw32
- OS/2
- Older systems
d205 1 d207 2 a208 16
- all ELF targets (SVR4, Solaris 2, etc.)
aarch64*-*-*
To enable a workaround for the Cortex-A53 erratum number 835769 by default (for all CPUs regardless of -mcpu option given) at configure time use the --enable-fix-cortex-a53-835769 option. This will enable the fix by default and can be explicitly disabled during during compilation by passing the -mno-fix-cortex-a53-835769 option. Conversely, --disable-fix-cortex-a53-835769 will disable the workaround by default. The workaround is disabled by default if neither of --enable-fix-cortex-a53-835769 or --disable-fix-cortex-a53-835769 is given at configure time.
alpha*-*-*
d210 1 a210 35This section contains general configuration information for all alpha-based platforms using ELF (in particular, ignore this section for DEC OSF/1, Digital UNIX and Tru64 UNIX). In addition to reading this section, please read all other sections that match your target.
We require binutils 2.11.2 or newer. Previous binutils releases had a number of problems with DWARF 2 debugging information, not the least of which is incorrect linking of shared libraries.
alpha*-dec-osf5.1
Systems using processors that implement the DEC Alpha architecture and are running the DEC/Compaq/HP Unix (DEC OSF/1, Digital UNIX, or Compaq/HP Tru64 UNIX) operating system, for example the DEC Alpha AXP systems.
Support for Tru64 UNIX V5.1 has been removed in GCC 4.8. As of GCC 4.6, support for Tru64 UNIX V4.0 and V5.0 has been removed. As of GCC 3.2, versions before
alpha*-dec-osf4are no longer supported. (These are the versions which identify themselves as DEC OSF/1.)
amd64-*-solaris2.1[0-9]*
This is a synonym for ‘x86_64-*-solaris2.1[0-9]*’.
arm-*-eabi
ARM-family processors. Subtargets that use the ELF object format require GNU binutils 2.13 or newer. Such subtargets include:
arm-*-netbsdelf,arm-*-*linux-*andarm-*-rtemseabi.
avr
d212 2 a213 26ATMEL AVR-family micro controllers. These are used in embedded applications. There are no standard Unix configurations. See “AVR Options” in the main manual for the list of supported MCU types.
Use ‘configure --target=avr --enable-languages="c"’ to configure GCC.
Further installation notes and other useful information about AVR tools can also be obtained from:
We strongly recommend using binutils 2.13 or newer.
The following error:
Error: register requiredindicates that you should upgrade to a newer version of the binutils.
Blackfin
d215 2 a216 8The Blackfin processor, an Analog Devices DSP. See “Blackfin Options” in the main manual
More information, and a version of binutils with support for this processor, is available at http://blackfin.uclinux.org
CR16
d218 1 a218 3The CR16 CompactRISC architecture is a 16-bit architecture. This architecture is used in embedded applications.
d220 1 a220 10See “CR16 Options” in the main manual for a list of CR16-specific options.
Use ‘configure --target=cr16-elf --enable-languages=c,c++’ to configure GCC for building a CR16 elf cross-compiler.
Use ‘configure --target=cr16-uclinux --enable-languages=c,c++’ to configure GCC for building a CR16 uclinux cross-compiler.
CRIS
d224 2 a225 2See “CRIS Options” in the main manual d227 7 a233 11
There are a few different CRIS targets:
cris-axis-elfMainly for monolithic embedded systems. Includes a multilib for the ‘v10’ core used in ‘ETRAX 100 LX’.
cris-axis-linux-gnu- d236 1 a236 1
A GNU/Linux port for the CRIS architecture, currently targeting ‘ETRAX 100 LX’ by default.
For
cris-axis-elfyou need binutils 2.11 d238 2 a239 2Pre-packaged tools can be obtained from d243 4 a246 3
DOS
d249 2 a250 2You cannot install GCC by itself on MSDOS; it will not compile under d254 6 a259 4
epiphany-*-elf
Adapteva Epiphany. d261 4 a264 3
*-*-freebsd*
d269 2 a270 2In order to better utilize FreeBSD base system functionality and match d275 1 a275 1 libgcc_s.so.1 and boehm-gc (on FreeBSD 7 or later) is enabled d277 4 a280 4
We support FreeBSD using the ELF file format with DWARF 2 debugging for all CPU architectures. You may use -gstabs instead of -g, if you really want the old debugging format. There are d284 1 a284 1 GCC. In particular, --enable-threads is now configured by d290 2 a291 2
The version of binutils installed in /usr/bin probably works d293 1 a293 1 binutils and/or the version found in /usr/ports/devel/binutils has d298 5 a302 3
h8300-hms
d304 4 a307 4Please have a look at the binaries page.
The calling convention and structure layout has changed in release 2.6. d311 5 a315 3
hppa*-hp-hpux*
d317 2 a318 2We require using gas/binutils on all hppa platforms. Version 2.19 or d320 7 a326 7
It may be helpful to configure GCC with the --with-gnu-as and --with-as=… options to ensure that GCC can find GAS.
The HP assembler should not be used with GCC. It is rarely tested and may not work. It shouldn’t be used with any languages other than C due to its d328 2 a329 2
Specifically, -g does not work (HP-UX uses a peculiar debugging d333 3 a335 3 ‘make all-host all-target’ after getting the failure from ‘make’.
Various GCC features are not supported. For example, it does not support weak d339 2 a340 2
There are two default scheduling models for instructions. These are d342 1 a342 1 architecture specified for the target machine when configuring. d344 3 a346 3 the target is a ‘hppa1*’ machine.
The PROCESSOR_8000 model is not well suited to older processors. Thus, d351 3 a353 3
As of GCC 4.0, GCC uses the UNIX 95 namespace for HP-UX 10.10 through 11.00, and the UNIX 98 namespace for HP-UX 11.11 and later. d357 3 a359 3 in a number of ways. With HP cc,
UNIX_STDcan be set to ‘95’ or ‘98’. Another way is to add an appropriate set of predefines toCC. The description for the munix= option contains d361 6 a366 5More specific information to ‘hppa*-hp-hpux*’ targets follows.
hppa*-hp-hpux10
d370 2 a371 2The C++ ABI has changed incompatibly in GCC 4.0. COMDAT subspaces are d375 4 a378 3
hppa*-hp-hpux11
d382 4 a385 4The libffi and libjava libraries haven’t been ported to 64-bit HP-UX and don’t build.
Refer to binaries for information about obtaining d387 1 a387 1 to build the Ada language as it can’t be bootstrapped using C. Ada is d389 3 a391 3
Starting with GCC 3.4 an ISO C compiler is required to bootstrap. The bundled compiler supports only traditional C; you will need either HP’s d393 2 a394 2
It is possible to build GCC 3.3 starting with the bundled HP compiler, d397 1 a397 1 can’t be built with the HP bundled compiler. This problem can be d399 1 a399 1 --enable-languages="c,c++,f77,objc" option in your configure d401 2 a402 2
There are several possible approaches to building the distribution. d405 1 a405 1 first using the HP tools, then build binutils, then rebuild GCC. d408 2 a409 2
On 64-bit capable systems, there are two distinct targets. Different d411 3 a413 3 the same system. The ‘hppa[1-2]*-hp-hpux11*’ target generates code for the 32-bit PA-RISC runtime architecture and uses the HP linker. The ‘hppa64-hp-hpux11*’ target generates 64-bit code for the d415 11 a425 11
The script config.guess now selects the target type based on the compiler detected during configuration. You must define
PATHorCCso that configure finds an appropriate compiler for the initial bootstrap. WhenCCis used, the definition should contain the options that are needed wheneverCCis used.Specifically, options that determine the runtime architecture must be in
CCto correctly select the target for the build. It is also convenient to place many other compiler options inCC. For example,CC="cc -Ac +DA2.0W -Wp,-H16376 -D_CLASSIC_TYPES -D_HPUX_SOURCE"d427 2 a428 2 64-bit K&R/bundled mode. The +DA2.0W option will result in the automatic selection of the ‘hppa64-hp-hpux11*’ target. The d432 4 a435 4 -Ac option. These defines aren’t necessary with -Ae.It is best to explicitly configure the ‘hppa64-hp-hpux11*’ target with the --with-ld=… option. This overrides the standard d438 1 a438 1 result, it’s not possible to switch linkers in the middle of a GCC build. d441 2 a442 2
A recent linker patch must be installed for the correct operation of d446 1 a446 1
PHSS_24304, might be usable but it hasn’t been tested. These d449 2 a450 2The patches are necessary for the support of weak symbols on the d453 1 a453 1 to HP-UX 11, there are bugs in the linker support for secondary symbols. d457 2 a458 2
GCC 3.3 uses the ELF DT_INIT_ARRAY and DT_FINI_ARRAY capabilities to d460 1 a460 1 uses the linker +init and +fini options for the same d463 1 a463 1 problem on the 64-bit port resulting from HP’s non-standard use of d465 3 a467 3
Although the HP and GNU linkers are both supported for the ‘hppa64-hp-hpux11*’ target, it is strongly recommended that the d469 3 a471 3
At this time, the GNU linker does not support the creation of long branch stubs. As a result, it can’t successfully link binaries d474 5 a478 5 with -static, and with dwarf2 unwind and exception support. It also doesn’t provide stubs for internal calls to global functions in shared libraries, so these calls can’t be overloaded.
The HP dynamic loader does not support GNU symbol versioning, so symbol d480 8 a487 7 versioning with --disable-symvers when using GNU ld.
POSIX threads are the default. The optional DCE thread library is not supported, so --enable-threads=dce does not work.
*-*-linux-gnu
a491 3
i?86-*-linux*
d493 5 a497 1As of GCC 3.3, binutils 2.13.1 or later is required for this platform. d499 2 a500 2
If you receive Signal 11 errors when building on GNU/Linux, then it is d503 6 a508 4
i?86-*-solaris2.9
The Sun assembler in Solaris 9 has several bugs and limitations. d510 1 d514 2 a515 2
Solaris 2/x86 doesn’t support the execution of SSE/SSE2 instructions d520 1 a520 1 -march defaults to ‘pentiumpro’ on Solaris 9. If d522 6 a527 4 --with-arch option, but need GNU
asfor SSE2 support.
i?86-*-solaris2.10
d529 6 a534 6 with GCC 4.7, there is also a 64-bit ‘amd64-*-solaris2.1[0-9]*’ or ‘x86_64-*-solaris2.1[0-9]*’ configuration that corresponds to ‘sparcv9-sun-solaris2*’.It is recommended that you configure GCC to use the GNU assembler, in /usr/sfw/bin/gas. The versions included in Solaris 10, from GNU d538 5 a542 4 /usr/ccs/bin/as work almost as well, though.
For linking, the Sun linker, is preferred. If you want to use the GNU linker instead, which is available in /usr/sfw/bin/gld, note that d546 11 a556 8
To use GNU
as, configure with the options --with-gnu-as --with-as=/usr/sfw/bin/gas. It may be necessary to configure with --without-gnu-ld --with-ld=/usr/ccs/bin/ld to guarantee use of Sunld.
ia64-*-linux
d559 3 a561 3If you are using the installed system libunwind library with --with-system-libunwind, then you must use libunwind 0.98 or d563 2 a564 2
None of the following versions of GCC has an ABI that is compatible d567 3 a569 3 3.1, 3.0.2, 3.0.1, 3.0, Red Hat 2.96, and Trillian 000717. This primarily affects C++ programs and programs that create shared libraries. GCC 3.1 or later is recommended for compiling linux, the kernel. d572 5 a576 3
ia64-*-hpux*
d579 6 a584 6 the option --with-gnu-as may be necessary.The GCC libunwind library has not been ported to HPUX. This means that for GCC versions 3.2.3 and earlier, --enable-libunwind-exceptions is required to build GCC. For GCC 3.3 and later, this is the default. For gcc 3.4.3 and later, --enable-libunwind-exceptions is d586 7 a592 5
*-ibm-aix*
Support for AIX version 3 and older was discontinued in GCC 3.4. d594 2 a595 2
“out of memory” bootstrap failures may indicate a problem with d597 3 a599 3 /etc/security/limits system configuration file.
GCC can bootstrap with recent versions of IBM XLC, but bootstrapping a602 5
d604 5 a608 2% LDR_CNTRL=MAXDATA=0x50000000 % export LDR_CNTRLOne can start with a pre-compiled version of GCC to build from sources. One may delete GCC’s “fixed” header files when starting a609 8
To speed up the configuration phases of bootstrapping and installing GCC, one may use GNU Bash instead of AIX
/bin/sh, e.g.,d611 7 a617 2% CONFIG_SHELL=/opt/freeware/bin/bash % export CONFIG_SHELLand then proceed as described in the build instructions, where we strongly recommend specifying an absolute path d619 2 a620 2
Because GCC on AIX is built as a 32-bit executable by default, d624 2 a625 2
Errors involving
allocawhen building GCC generally are due d628 5 a632 5 the build, the native AIX compiler must be invoked ascc(notxlc). Onceconfigurehas been informed ofxlc, one needs to use ‘make distclean’ to remove the configure cache files and ensure thatCCenvironment variable does not provide a definition that will confuseconfigure. d635 2 a636 2The native
asandldare recommended for d639 1 a639 1 AIX 5. The GNU Assembler has not been updated to support AIX 6 or d641 2 a642 2AIX 5.3 TL10, AIX 6.1 TL05 and AIX 7.1 TL00 introduced an AIX d650 2 a651 2
Building libstdc++.a requires a fix for an AIX Assembler bug d655 3 a657 3
‘libstdc++’ in GCC 3.4 increments the major version number of the shared object and GCC installation places the libstdc++.a d661 3 a663 3 versions of the ‘libstdc++’ shared object needs to be available to the AIX runtime loader. The GCC 3.1 ‘libstdc++.so.4’, if present, and GCC 3.3 ‘libstdc++.so.5’ shared objects can be d665 2 a666 8 the ‘F_LOADONLY’ flag in the shared object for each multilib libstdc++.a installed:
Extract the shared objects from the currently installed libstdc++.a archive:
d668 5 a672 1% ar -x libstdc++.a libstdc++.so.4 libstdc++.so.5Enable the ‘F_LOADONLY’ flag so that the shared object will be d674 7 a680 11
% strip -e libstdc++.so.4 libstdc++.so.5Archive the runtime-only shared object in the GCC 3.4 libstdc++.a archive:
% ar -q libstdc++.a libstdc++.so.4 libstdc++.so.5Linking executables and shared libraries may produce warnings of d686 2 a687 2
AIX 4.3 utilizes a “large format” archive to support both 32-bit and d689 1 a689 1 to parse archive libraries did not handle the new format correctly. d692 1 a692 1 with AIX 4.3.1 should work for a 32-bit environment. The -g d696 3 a698 3
Some versions of the AIX binder (linker) can fail with a relocation overflow severe error when the -bbigtoc option is used to link d704 2 a705 2
The AIX 4.3.2.1 linker (bos.rte.bind_cmds Level 4.3.2.1) will dump core d710 2 a711 2
The initial assembler shipped with AIX 4.3.0 generates incorrect object d716 2 a717 2
AIX provides National Language Support (NLS). Compilers and assemblers d719 1 a719 1 formats including floating-point numbers (e.g., ‘.’ vs ‘,’ for d722 10 a731 8 expects. If one encounters this problem, set the
LANGenvironment variable to ‘C’ or ‘En_US’.A default can be specified with the -mcpu=cpu_type switch and using the configure option --with-cpu-cpu_type.
iq2000-*-elf
d734 6 a739 4
lm32-*-elf
Lattice Mico32 processor. d741 6 a746 4
lm32-*-uclinux
Lattice Mico32 processor. d748 6 a753 4
m32c-*-elf
Renesas M32C processor. d755 6 a760 4
m32r-*-elf
Renesas M32R processor. d762 5 a766 3
m68k-*-*
d768 2 a769 2 ‘m68k-*-elf*’, ‘m68k-*-rtems’, ‘m68k-*-uclinux’ and ‘m68k-*-linux’ d772 3 a774 3 --with-arch=m68k toconfigure. Alternatively, you can omit the M680x0 libraries by passing --with-arch=cf toconfigure. These targets default to 5206 or 5475 code as d776 4 a779 4 configured with --with-arch=cf and 68020 code otherwise.The ‘m68k-*-netbsd’ and ‘m68k-*-openbsd’ targets also support the --with-arch d781 14 a794 12 --with-arch=cf and 68020 code otherwise.
You can override the default processors listed above by configuring with --with-cpu=target. This target can either be a -mcpu argument or one of the following values: ‘m68000’, ‘m68010’, ‘m68020’, ‘m68030’, ‘m68040’, ‘m68060’, ‘m68020-40’ and ‘m68020-60’.
GCC requires at least binutils version 2.17 on these targets.
m68k-*-uclinux
d796 1 a796 1 ‘m68k-linux-gnu’ ABI rather than the ‘m68k-elf’ ABI. a798 1 d800 5 a804 3
mep-*-elf
Toshiba Media embedded Processor. d806 6 a811 4
microblaze-*-elf
Xilinx MicroBlaze processor. d813 5 a817 3
mips-*-*
d819 1 a819 1 sections for all it’s [sic] sectons [sic]”, don’t worry about it. This d823 2 a824 2It would be nice to extend GAS to produce the gp tables, but they are d826 2 a827 2
The libstdc++ atomic locking routines for MIPS targets requires MIPS II d829 3 a831 3 make ‘mips*-*-*’ use the generic implementation instead. You can also configure for ‘mipsel-elf’ as a workaround. The ‘mips*-*-linux*’ target continues to use the MIPS II routines. More a832 1
d834 6 a839 4The built-in
__sync_*functions are available on MIPS II and later systems and others that support the ‘ll’, ‘sc’ and ‘sync’ instructions. This can be overridden by passing --with-llsc or --without-llsc when configuring GCC. d841 4 a844 4 missing, the default for ‘mips*-*-linux*’ targets is --with-llsc. The --with-llsc and --without-llsc configure options may be overridden at compile time by passing the -mllsc or -mno-llsc options to d846 3 a848 3MIPS systems check for division by zero (unless -mno-check-zero-division is passed to the compiler) by d853 2 a854 2 the use of break, use the --with-divide=breaks
configureoption when configuring GCC. The default is to d856 2 a857 2The assembler from GNU binutils 2.17 and earlier has a bug in the way d861 1 a861 1 runtime linker stubs in very large programs, like libgcj.so, to d864 4 a867 3
mips-sgi-irix5
d870 4 a873 3
mips-sgi-irix6
d878 5 a882 3
moxie-*-elf
d884 9 a892 8
powerpc-*-*
You can specify a default version for the -mcpu=cpu_type switch by using the configure option --with-cpu-cpu_type.
You will need d895 5 a899 3
powerpc-*-darwin*
d901 2 a902 2Pre-installed versions of Mac OS X may not include any developer tools, d906 2 a907 2
This version of GCC requires at least cctools-590.36. The d911 5 a915 3
powerpc-*-elf
d917 4 a920 3
powerpc*-*-linux-gnu*
d923 5 a927 3
powerpc-*-netbsd*
d929 5 a933 3
powerpc-*-eabisim
d936 5 a940 3
powerpc-*-eabi
d942 5 a946 3
powerpcle-*-elf
d948 5 a952 3
powerpcle-*-eabisim
d955 5 a959 3
powerpcle-*-eabi
d961 6 a966 4
rl78-*-elf
The Renesas RL78 processor. d968 5 a972 3
rx-*-elf
d976 5 a980 3
s390-*-linux*
d982 5 a986 3
s390x-*-linux*
d988 5 a992 3
s390x-ibm-tpf*
d995 7 a1001 3
*-*-solaris2*
d1005 2 a1006 2Sun does not ship a C compiler with Solaris 2 before Solaris 10, though d1008 2 a1009 2 11, GCC 3.4.3 is available as
/usr/sfw/bin/gcc. Solaris 11 also provides GCC 4.5.2 as/usr/gcc/4.5/bin/gcc. Alternatively, d1012 3 a1014 3The Solaris 2
/bin/shwill often fail to configure ‘libstdc++-v3’, ‘boehm-gc’ or ‘libjava’. We therefore a1015 5d1017 4 a1020 1% CONFIG_SHELL=/bin/ksh % export CONFIG_SHELLand proceed as described in the configure instructions. d1022 3 a1024 3
srcdir/configure.Solaris 2 comes with a number of optional OS packages. Some of these d1030 4 a1033 4
To check whether an optional package is installed, use the
pkginfocommand. To add an optional package, use thepkgaddcommand. For further details, see the Solaris 2 d1035 3 a1037 3Trying to use the linker and other tools in /usr/ucb to install GCC has been observed to cause trouble. d1039 8 a1046 8 /usr/ucb from your
PATH.The build process works more smoothly with the legacy Sun tools so, if you have /usr/xpg4/bin in your
PATH, we recommend that you place /usr/bin before /usr/xpg4/bin for the duration of the build.We recommend the use of the Sun assembler or the GNU assembler, in conjunction with the Sun linker. The GNU
asd1049 1 a1049 1 /usr/sfw/bin/gas. Current versions of GNU binutils (2.22) d1052 5 a1056 4 combination GNUas+ Sunldshould reasonably work, the reverse combination Sunas+ GNUldmay fail to build or cause memory corruption at runtime in some cases for C++ programs. GNUldusually works as well, although the version included in d1059 8 a1066 8 features, so better stay with Sunld. To use the LTO linker plugin (-fuse-linker-plugin) with GNUld, GNU binutils must be configured with --enable-largefile.To enable symbol versioning in ‘libstdc++’ with Sun
ld, you need to have any version of GNUc++filt, which is part of GNU binutils. ‘libstdc++’ symbol versioning will be disabled if no appropriate version is found. Sunc++filtfrom the Sun Studio d1068 3 a1070 3Sun bug 4296832 turns up when compiling X11 headers with GCC 2.95 or newer:
g++will complain that types are missing. These headers d1073 4 a1076 4Sun bug 4927647 sometimes causes random spurious testsuite failures related to missing diagnostic output. This bug doesn’t affect GCC itself, rather it is a kernel bug triggered by the
expectd1078 1 a1078 1 causes theexpectprogram to miss anticipated output, extra d1080 2 a1081 2There are patches for Solaris 9 (117171-11 or newer for d1083 4 a1086 4
Thread-local storage (TLS) is supported in Solaris 9, but requires some patches. The ‘libthread’ patches provide the
__tls_get_addr(SPARC, 64-bit x86) resp.___tls_get_addrd1090 1 a1090 1 required for the Sunldand runtime linker (ld.so.1) d1092 3 a1094 3 patches must be installed even if GNUldis used. Sunasin Solaris 9 doesn’t support the necessary relocations, so GNUasmust be used. Theconfigured1099 4 a1102 3
sparc*-*-*
d1107 2 a1108 2Newer versions of the GNU Multiple Precision Library (GMP), the MPFR d1113 4 a1116 3
sparc-sun-solaris2*
d1119 1 a1119 1 produced are smaller than the ones produced using Sun’s native tools; d1122 2 a1123 2Starting with Solaris 7, the operating system is capable of executing d1125 1 a1125 1 this; the -m64 option enables 64-bit code generation. d1127 1 a1127 1 should try the -mtune=ultrasparc option instead, which produces d1130 2 a1131 2
When configuring on a Solaris 7 or later system that is running a kernel d1133 1 a1133 1 --disable-multilib, since we will not be able to build the d1135 2 a1136 2
GCC 3.3 and GCC 3.4 trigger code generation bugs in earlier versions of d1142 2 a1143 2
GCC 3.4 triggers a code generation bug in versions 5.4 (Sun ONE Studio 7) d1147 2 a1148 2
GCC 3.4 changed the default debugging format from Stabs to DWARF-2 for d1151 1 a1151 1 an x86-only problem by Sun, probably because they do not use DWARF-2). d1153 10 a1162 12
groff1.19.1 without getting messages similar to the following:ld: warning: relocation error: R_SPARC_UA32: … external symbolic relocation against non-allocatable section .debug_info cannot be processed at runtime: relocation ignored.To work around this problem, compile with -gstabs+ instead of plain -g.
When configuring the GNU Multiple Precision Library (GMP), the MPFR d1164 2 a1165 2 target triplet must be specified as the
buildparameter on the configure line. This target triplet can be obtained by invoking./config.guessin the toplevel source directory of GCC (and a1166 4d1168 5 a1172 2% ./configure --build=sparc-sun-solaris2.9 --prefix=xxx
sparc-sun-solaris2.10
d1176 9 a1184 10ld: fatal: relocation error: R_SPARC_TLS_LE_HIX22: file /var/tmp//ccamPA1v.o: symbol <unknown>: bad symbol type SECT: symbol type must be TLSThis bug is fixed in Sun patch 118683-03 or later.
sparc-*-linux*
a1188 1 d1190 3 a1192 2
sparc64-*-solaris2*
d1196 1 a1196 1 as thebuildparameter on the configure line. For example a1197 4d1199 3 a1201 1% ./configure --build=sparc64-sun-solaris2.9 --prefix=xxxThe following compiler flags must be specified in the configure d1203 15 a1217 15
% CC="cc -xarch=v9 -xildoff" srcdir/configure [options] [target]-xarch=v9 specifies the SPARC-V9 architecture to the Sun toolchain and -xildoff turns off the incremental linker.
sparcv9-*-solaris2*
This is a synonym for ‘sparc64-*-solaris2*’.
c6x-*-*
d1220 4 a1223 3
tilegx-*-linux*
d1227 4 a1230 3
tilepro-*-linux*
d1234 5 a1238 3
*-*-vxworks*
d1240 2 a1241 2 very recent VxWorks 5.5 (aka Tornado 2.2) release, and only on PowerPC. We welcome patches for other architectures supported by VxWorks 5.5. d1246 12 a1257 12VxWorks comes with an older version of GCC installed in $WIND_BASE/host; we recommend you do not overwrite it. Choose an installation prefix entirely outside $WIND_BASE. Before running
configure, create the directories prefix and prefix/bin. Link or copy the appropriate assembler, linker, etc. into prefix/bin, and set your PATH to include that directory while running bothconfigureandmake.You must give
configurethe --with-headers=$WIND_BASE/target/h switch so that it can d1259 4 a1262 4 target only, you must also specify --target=target.configurewill attempt to create the directory prefix/target/sys-include and copy files into it; make sure the user runningconfigurehas sufficient privilege d1264 3 a1266 3GCC’s exception handling runtime requires a special “configlette” module, contrib/gthr_supp_vxw_5x.c. Follow the instructions in d1269 4 a1272 3
x86_64-*-*, amd64-*-*
d1275 1 a1275 1 (amd64-*-* is an alias for x86_64-*-*) on GNU/Linux, FreeBSD and NetBSD. d1277 5 a1281 4 both 64-bit x86-64 and 32-bit x86 code (via the -m32 switch).
x86_64-*-solaris2.1[0-9]*
d1284 1 a1284 1 processor (‘amd64-*-*’ is an alias for ‘x86_64-*-*’) on d1287 1 a1287 1 can generate 64-bit x86-64 code with the -m64 switch. Since d1289 8 a1296 7 can generate 32-bit code with -m32. To configure and build this way, you have to provide all support libraries like libgmp as 64-bit code, configure with --target=x86_64-pc-solaris2.1x and ‘CC=gcc -m64’.
xtensa*-*-elf
d1299 1 a1299 1 ‘newlib’ C library. It uses ELF but does not support shared d1303 3 a1305 3The Xtensa configuration information must be specified prior to building GCC. The include/xtensa-config.h header d1310 4 a1313 3
xtensa*-*-linux*
d1318 1 a1318 1 -fpic or -fPIC options are used. In other d1320 7 a1326 4 ‘xtensa*-*-elf’ target.
Microsoft Windows
a1327 2Intel 16-bit versions
d1330 2 a1331 2However, the 32-bit port has limited support for Microsoft d1333 2 a1334 3
Intel 32-bit versions
a1339 11d1341 12 a1352 2
- Cygwin *-*-cygwin: Cygwin provides a user-space Linux API emulation layer in the Win32 subsystem.
- Interix *-*-interix: The Interix subsystem provides native support for POSIX.
- MinGW *-*-mingw32: MinGW is a native GCC port for the Win32 subsystem that provides a subset of POSIX.
- MKS i386-pc-mks: NuTCracker from MKS. See http://www.mkssoftware.com/ for more information.
Intel 64-bit versions
d1355 1 a1355 1 runtime library, available from http://mingw-w64.sourceforge.net/. d1357 4 a1360 5Presently Windows for Itanium is not supported.
Windows CE
d1364 2 a1365 3Other Windows Platforms
d1368 2 a1369 2GCC no longer supports the Windows POSIX subsystem. However, it does d1371 4 a1374 4
Old target names including *-*-winnt and *-*-windowsnt are no longer used.
PW32 (i386-pc-pw32) support was never completed, and the project seems to d1376 6 a1381 5
UWIN support has been removed due to a lack of maintenance.
*-*-cygwin
d1385 5 a1389 5GCC will build under Cygwin without modification; it does not build with Microsoft’s C++ compiler and there are no plans to make it do so.
The Cygwin native compiler can be configured to target any 32-bit x86 d1394 4 a1397 3
*-*-interix
a1402 3
*-*-mingw32
d1404 5 a1408 1GCC will build with and support only MinGW runtime 3.12 and later. d1411 4 a1414 3
Older systems
d1420 2 a1421 2Starting with GCC 3.1, each release has a list of “obsoleted” systems. d1423 1 a1423 1
configurewill fail unless the --enable-obsolete d1426 2 a1427 2Support for old systems as hosts for GCC can cause problems if the d1434 2 a1435 3 old-releases directory on the GCC mirror sites. Header bugs may generally be avoided using
fixincludes, but bugs or deficiencies in libraries and the d1437 2 a1438 2Support for older systems as targets for cross-compilation is less d1446 3 a1448 3
For some systems, old versions of GNU binutils may also be useful, and are available from pub/binutils/old-releases on d1450 2 a1451 2
Some of the information on specific systems above relates to d1455 4 a1458 3
all ELF targets (SVR4, Solaris 2, etc.)
a1463 8
Return to the GCC Installation page
d1465 2 d1468 5 a1473 2 @ 1.1.1.4 log @initial import of GCC 4.8.5 sources. these GCC PRs (at least) are fixed in this release: 64882 46102 58123 65409 59626 61058 65680 64487 65721 65727 52306 64768 56273 57653 59990 60656 61634 63844 64199 64493 64495 65549 57059 57569 57748 58369 62642 63608 64037 65550 65693 65220 45187 64409 61977 64513 64634 65368 66233 66470 65072 65327 65543 65279 63593 65063 65518 66123 66140 59016 64479 64557 64979 66215 66275 66481 39423 64766 63733 52714 60898 61138 63744 57023 39722 45402 52579 52664 60718 62044 59513 35330 37440 43701 see: https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.8.5 for more details. @ text @d1 3 a3 10Host/Target specific installation notes for GCC d63 34 a96 4Host/Target specific installation notes for GCC
Please read this document carefully before installing the d98 2 a99 2Note that this list of install notes is not a list of supported d102 74 a175 1 information have to. a176 72
- aarch64*-*-*
- alpha*-*-*
- alpha*-dec-osf5.1
- amd64-*-solaris2.10
- arm-*-eabi
- avr
- Blackfin
- DOS
- *-*-freebsd*
- h8300-hms
- hppa*-hp-hpux*
- hppa*-hp-hpux10
- hppa*-hp-hpux11
- *-*-linux-gnu
- i?86-*-linux*
- i?86-*-solaris2.9
- i?86-*-solaris2.10
- ia64-*-linux
- ia64-*-hpux*
- *-ibm-aix*
- iq2000-*-elf
- lm32-*-elf
- lm32-*-uclinux
- m32c-*-elf
- m32r-*-elf
- m68k-*-*
- m68k-uclinux
- mep-*-elf
- microblaze-*-elf
- mips-*-*
- mips-sgi-irix5
- mips-sgi-irix6
- powerpc*-*-*
- powerpc-*-darwin*
- powerpc-*-elf
- powerpc*-*-linux-gnu*
- powerpc-*-netbsd*
- powerpc-*-eabisim
- powerpc-*-eabi
- powerpcle-*-elf
- powerpcle-*-eabisim
- powerpcle-*-eabi
- s390-*-linux*
- s390x-*-linux*
- s390x-ibm-tpf*
- *-*-solaris2*
- sparc*-*-*
- sparc-sun-solaris2*
- sparc-sun-solaris2.10
- sparc-*-linux*
- sparc64-*-solaris2*
- sparcv9-*-solaris2*
- c6x-*-*
- tilegx-*-linux*
- tilepro-*-linux*
- *-*-vxworks*
- x86_64-*-* amd64-*-*
- x86_64-*-solaris2.1[0-9]*
- xtensa*-*-elf
- xtensa*-*-linux*
- Microsoft Windows
- *-*-cygwin
- *-*-interix
- *-*-mingw32
- OS/2
- Older systems
d178 1 a178 1
- all ELF targets (SVR4, Solaris 2, etc.)
d180 2 a181 3
aarch64*-*-*
d184 1 a184 1 --enable-fix-cortex-a53-835769 option. This will enable the fix by d186 2 a187 2 -mno-fix-cortex-a53-835769 option. Conversely, --disable-fix-cortex-a53-835769 will disable the workaround by d189 5 a193 4 --enable-fix-cortex-a53-835769 or --disable-fix-cortex-a53-835769 is given at configure time.alpha*-*-*
d199 2 a200 2We require binutils 2.11.2 or newer. d204 3 a206 5
alpha*-dec-osf5.1
d210 2 a211 2Support for Tru64 UNIX V5.1 has been removed in GCC 4.8. As of GCC 4.6, d215 8 a222 11
amd64-*-solaris2.1[0-9]*
This is a synonym for ‘x86_64-*-solaris2.1[0-9]*’.
arm-*-eabi
d227 3 a229 4
avr
d232 1 a232 1 applications. There are no standard Unix configurations. d235 4 a238 4Use ‘configure --target=avr --enable-languages="c"’ to configure GCC.
Further installation notes and other useful information about AVR tools d240 17 d258 1 a258 17
We strongly recommend using binutils 2.13 or newer.
The following error:
Error: register requiredindicates that you should upgrade to a newer version of the binutils.
Blackfin
The Blackfin processor, an Analog Devices DSP. d260 2 a261 2
More information, and a version of binutils with support for this processor, d263 3 d267 1 a267 5
CR16
The CR16 CompactRISC architecture is a 16-bit architecture. This architecture is d269 1 d271 10 a280 11
See “CR16 Options” in the main manual for a list of CR16-specific options.
Use ‘configure --target=cr16-elf --enable-languages=c,c++’ to configure GCC for building a CR16 elf cross-compiler.
Use ‘configure --target=cr16-uclinux --enable-languages=c,c++’ to configure GCC for building a CR16 uclinux cross-compiler.
CRIS
d284 2 a285 2See “CRIS Options” in the main manual d287 11 a297 7
There are a few different CRIS targets:
cris-axis-elf- Mainly for monolithic embedded systems. Includes a multilib for the ‘v10’ core used in ‘ETRAX 100 LX’.
cris-axis-linux-gnu- A GNU/Linux port for the CRIS architecture, currently targeting ‘ETRAX 100 LX’ by default. d300 1 a300 1
For
cris-axis-elfyou need binutils 2.11 d302 2 a303 2Pre-packaged tools can be obtained from d307 3 a309 4
DOS
d312 2 a313 2You cannot install GCC by itself on MSDOS; it will not compile under d317 4 a320 6
epiphany-*-elf
Adapteva Epiphany. d322 3 a324 4
*-*-freebsd*
d329 2 a330 2In order to better utilize FreeBSD base system functionality and match d335 1 a335 1 libgcc_s.so.1 and boehm-gc (on FreeBSD 7 or later) is enabled d337 4 a340 4
We support FreeBSD using the ELF file format with DWARF 2 debugging for all CPU architectures. You may use -gstabs instead of -g, if you really want the old debugging format. There are d344 1 a344 1 GCC. In particular, --enable-threads is now configured by d350 2 a351 2
The version of binutils installed in /usr/bin probably works d353 1 a353 1 binutils and/or the version found in /usr/ports/devel/binutils has d358 3 a360 5
h8300-hms
d362 4 a365 4Please have a look at the binaries page.
The calling convention and structure layout has changed in release 2.6. d369 3 a371 5
hppa*-hp-hpux*
d373 2 a374 2We require using gas/binutils on all hppa platforms. Version 2.19 or d376 7 a382 7
It may be helpful to configure GCC with the --with-gnu-as and --with-as=... options to ensure that GCC can find GAS.
The HP assembler should not be used with GCC. It is rarely tested and may not work. It shouldn't be used with any languages other than C due to its d384 2 a385 2
Specifically, -g does not work (HP-UX uses a peculiar debugging d389 3 a391 3 ‘make all-host all-target’ after getting the failure from ‘make’.
Various GCC features are not supported. For example, it does not support weak d395 2 a396 2
There are two default scheduling models for instructions. These are d398 1 a398 1 architecture specified for the target machine when configuring. d400 3 a402 3 the target is a ‘hppa1*’ machine.
The PROCESSOR_8000 model is not well suited to older processors. Thus, d407 3 a409 3
As of GCC 4.0, GCC uses the UNIX 95 namespace for HP-UX 10.10 through 11.00, and the UNIX 98 namespace for HP-UX 11.11 and later. d413 3 a415 3 in a number of ways. With HP cc, UNIX_STD can be set to ‘95’ or ‘98’. Another way is to add an appropriate set of predefines to CC. The description for the munix= option contains d417 5 a421 6
More specific information to ‘hppa*-hp-hpux*’ targets follows.
hppa*-hp-hpux10
d425 2 a426 2The C++ ABI has changed incompatibly in GCC 4.0. COMDAT subspaces are d430 3 a432 4
hppa*-hp-hpux11
d436 4 a439 4The libffi and libjava libraries haven't been ported to 64-bit HP-UX and don't build.
Refer to binaries for information about obtaining d441 1 a441 1 to build the Ada language as it can't be bootstrapped using C. Ada is d443 3 a445 3
Starting with GCC 3.4 an ISO C compiler is required to bootstrap. The bundled compiler supports only traditional C; you will need either HP's d447 2 a448 2
It is possible to build GCC 3.3 starting with the bundled HP compiler, d451 1 a451 1 can't be built with the HP bundled compiler. This problem can be d453 1 a453 1 --enable-languages="c,c++,f77,objc" option in your configure d455 2 a456 2
There are several possible approaches to building the distribution. d459 1 a459 1 first using the HP tools, then build binutils, then rebuild GCC. d462 2 a463 2
On 64-bit capable systems, there are two distinct targets. Different d465 3 a467 3 the same system. The ‘hppa[1-2]*-hp-hpux11*’ target generates code for the 32-bit PA-RISC runtime architecture and uses the HP linker. The ‘hppa64-hp-hpux11*’ target generates 64-bit code for the d469 11 a479 11
The script config.guess now selects the target type based on the compiler detected during configuration. You must define PATH or CC so that configure finds an appropriate compiler for the initial bootstrap. When CC is used, the definition should contain the options that are needed whenever CC is used.
Specifically, options that determine the runtime architecture must be in CC to correctly select the target for the build. It is also convenient to place many other compiler options in CC. For example, CC="cc -Ac +DA2.0W -Wp,-H16376 -D_CLASSIC_TYPES -D_HPUX_SOURCE" d481 2 a482 2 64-bit K&R/bundled mode. The +DA2.0W option will result in the automatic selection of the ‘hppa64-hp-hpux11*’ target. The d486 4 a489 4 -Ac option. These defines aren't necessary with -Ae.
It is best to explicitly configure the ‘hppa64-hp-hpux11*’ target with the --with-ld=... option. This overrides the standard d492 1 a492 1 result, it's not possible to switch linkers in the middle of a GCC build. d495 2 a496 2
A recent linker patch must be installed for the correct operation of d500 1 a500 1
PHSS_24304, might be usable but it hasn't been tested. These d503 2 a504 2The patches are necessary for the support of weak symbols on the d507 1 a507 1 to HP-UX 11, there are bugs in the linker support for secondary symbols. d511 2 a512 2
GCC 3.3 uses the ELF DT_INIT_ARRAY and DT_FINI_ARRAY capabilities to d514 1 a514 1 uses the linker +init and +fini options for the same d517 1 a517 1 problem on the 64-bit port resulting from HP's non-standard use of d519 3 a521 3
Although the HP and GNU linkers are both supported for the ‘hppa64-hp-hpux11*’ target, it is strongly recommended that the d523 3 a525 3
At this time, the GNU linker does not support the creation of long branch stubs. As a result, it can't successfully link binaries d528 5 a532 5 with -static, and with dwarf2 unwind and exception support. It also doesn't provide stubs for internal calls to global functions in shared libraries, so these calls can't be overloaded.
The HP dynamic loader does not support GNU symbol versioning, so symbol d534 7 a540 8 versioning with --disable-symvers when using GNU ld.
POSIX threads are the default. The optional DCE thread library is not supported, so --enable-threads=dce does not work.
*-*-linux-gnu
d545 3 d549 1 a549 5
i?86-*-linux*
As of GCC 3.3, binutils 2.13.1 or later is required for this platform. d551 2 a552 2
If you receive Signal 11 errors when building on GNU/Linux, then it is d555 4 a558 6
i?86-*-solaris2.9
The Sun assembler in Solaris 9 has several bugs and limitations. a559 1 d563 2 a564 2
Solaris 2/x86 doesn't support the execution of SSE/SSE2 instructions d569 1 a569 1 -march defaults to ‘pentiumpro’ on Solaris 9. If d571 4 a574 6 --with-arch option, but need GNU as for SSE2 support.
i?86-*-solaris2.10
d576 6 a581 6 with GCC 4.7, there is also a 64-bit ‘amd64-*-solaris2.1[0-9]*’ or ‘x86_64-*-solaris2.1[0-9]*’ configuration that corresponds to ‘sparcv9-sun-solaris2*’.It is recommended that you configure GCC to use the GNU assembler, in /usr/sfw/bin/gas. The versions included in Solaris 10, from GNU d585 4 a588 5 /usr/ccs/bin/as work almost as well, though.
For linking, the Sun linker, is preferred. If you want to use the GNU linker instead, which is available in /usr/sfw/bin/gld, note that d592 8 a599 11
To use GNU as, configure with the options --with-gnu-as --with-as=/usr/sfw/bin/gas. It may be necessary to configure with --without-gnu-ld --with-ld=/usr/ccs/bin/ld to guarantee use of Sun ld.
ia64-*-linux
d602 3 a604 3If you are using the installed system libunwind library with --with-system-libunwind, then you must use libunwind 0.98 or d606 2 a607 2
None of the following versions of GCC has an ABI that is compatible d610 3 a612 3 3.1, 3.0.2, 3.0.1, 3.0, Red Hat 2.96, and Trillian 000717. This primarily affects C++ programs and programs that create shared libraries. GCC 3.1 or later is recommended for compiling linux, the kernel. d615 3 a617 5
ia64-*-hpux*
d620 6 a625 6 the option --with-gnu-as may be necessary.The GCC libunwind library has not been ported to HPUX. This means that for GCC versions 3.2.3 and earlier, --enable-libunwind-exceptions is required to build GCC. For GCC 3.3 and later, this is the default. For gcc 3.4.3 and later, --enable-libunwind-exceptions is d627 5 a631 7
*-ibm-aix*
Support for AIX version 3 and older was discontinued in GCC 3.4. d633 2 a634 2
“out of memory” bootstrap failures may indicate a problem with d636 3 a638 3 /etc/security/limits system configuration file.
GCC can bootstrap with recent versions of IBM XLC, but bootstrapping d642 5 d648 2 a649 5
% LDR_CNTRL=MAXDATA=0x50000000 % export LDR_CNTRLOne can start with a pre-compiled version of GCC to build from sources. One may delete GCC's “fixed” header files when starting d651 8 d660 2 a661 7
To speed up the configuration phases of bootstrapping and installing GCC, one may use GNU Bash instead of AIX /bin/sh, e.g.,
% CONFIG_SHELL=/opt/freeware/bin/bash % export CONFIG_SHELLand then proceed as described in the build instructions, where we strongly recommend specifying an absolute path d663 2 a664 2
Because GCC on AIX is built as a 32-bit executable by default, d668 2 a669 2
Errors involving
allocawhen building GCC generally are due d672 5 a676 5 the build, the native AIX compiler must be invoked as cc (not xlc). Once configure has been informed of xlc, one needs to use ‘make distclean’ to remove the configure cache files and ensure that CC environment variable does not provide a definition that will confuse configure. d679 2 a680 2The native as and ld are recommended for d683 1 a683 1 AIX 5. The GNU Assembler has not been updated to support AIX 6 or d685 2 a686 2
AIX 5.3 TL10, AIX 6.1 TL05 and AIX 7.1 TL00 introduced an AIX d694 2 a695 2
Building libstdc++.a requires a fix for an AIX Assembler bug d699 3 a701 3
‘libstdc++’ in GCC 3.4 increments the major version number of the shared object and GCC installation places the libstdc++.a d705 3 a707 3 versions of the ‘libstdc++’ shared object needs to be available to the AIX runtime loader. The GCC 3.1 ‘libstdc++.so.4’, if present, and GCC 3.3 ‘libstdc++.so.5’ shared objects can be d709 8 a716 2 the ‘F_LOADONLY’ flag in the shared object for each multilib libstdc++.a installed: d718 1 a718 5
Extract the shared objects from the currently installed libstdc++.a archive:
% ar -x libstdc++.a libstdc++.so.4 libstdc++.so.5Enable the ‘F_LOADONLY’ flag so that the shared object will be d720 11 a730 7
% strip -e libstdc++.so.4 libstdc++.so.5Archive the runtime-only shared object in the GCC 3.4 libstdc++.a archive:
% ar -q libstdc++.a libstdc++.so.4 libstdc++.so.5Linking executables and shared libraries may produce warnings of d736 2 a737 2
AIX 4.3 utilizes a “large format” archive to support both 32-bit and d739 1 a739 1 to parse archive libraries did not handle the new format correctly. d742 1 a742 1 with AIX 4.3.1 should work for a 32-bit environment. The -g d746 3 a748 3
Some versions of the AIX binder (linker) can fail with a relocation overflow severe error when the -bbigtoc option is used to link d754 2 a755 2
The AIX 4.3.2.1 linker (bos.rte.bind_cmds Level 4.3.2.1) will dump core d760 2 a761 2
The initial assembler shipped with AIX 4.3.0 generates incorrect object d766 2 a767 2
AIX provides National Language Support (NLS). Compilers and assemblers d769 1 a769 1 formats including floating-point numbers (e.g., ‘.’ vs ‘,’ for d772 8 a779 10 expects. If one encounters this problem, set the LANG environment variable to ‘C’ or ‘En_US’.
A default can be specified with the -mcpu=cpu_type switch and using the configure option --with-cpu-cpu_type.
iq2000-*-elf
d782 4 a785 6
lm32-*-elf
Lattice Mico32 processor. d787 4 a790 6
lm32-*-uclinux
Lattice Mico32 processor. d792 4 a795 6
m32c-*-elf
Renesas M32C processor. d797 4 a800 6
m32r-*-elf
Renesas M32R processor. d802 3 a804 5
m68k-*-*
d806 2 a807 2 ‘m68k-*-elf*’, ‘m68k-*-rtems’, ‘m68k-*-uclinux’ and ‘m68k-*-linux’ d810 3 a812 3 --with-arch=m68k to configure. Alternatively, you can omit the M680x0 libraries by passing --with-arch=cf to configure. These targets default to 5206 or 5475 code as d814 4 a817 4 configured with --with-arch=cf and 68020 code otherwise.The ‘m68k-*-netbsd’ and ‘m68k-*-openbsd’ targets also support the --with-arch d819 12 a830 14 --with-arch=cf and 68020 code otherwise.
You can override the default processors listed above by configuring with --with-cpu=target. This target can either be a -mcpu argument or one of the following values: ‘m68000’, ‘m68010’, ‘m68020’, ‘m68030’, ‘m68040’, ‘m68060’, ‘m68020-40’ and ‘m68020-60’.
GCC requires at least binutils version 2.17 on these targets.
m68k-*-uclinux
d832 1 a832 1 ‘m68k-linux-gnu’ ABI rather than the ‘m68k-elf’ ABI. d835 1 d837 3 a839 5
mep-*-elf
Toshiba Media embedded Processor. d841 4 a844 6
microblaze-*-elf
Xilinx MicroBlaze processor. d846 3 a848 5
mips-*-*
d850 1 a850 1 sections for all it's [sic] sectons [sic]”, don't worry about it. This d854 2 a855 2It would be nice to extend GAS to produce the gp tables, but they are d857 2 a858 2
The libstdc++ atomic locking routines for MIPS targets requires MIPS II d860 3 a862 3 make ‘mips*-*-*’ use the generic implementation instead. You can also configure for ‘mipsel-elf’ as a workaround. The ‘mips*-*-linux*’ target continues to use the MIPS II routines. More d864 1 d866 4 a869 6
The built-in
__sync_*functions are available on MIPS II and later systems and others that support the ‘ll’, ‘sc’ and ‘sync’ instructions. This can be overridden by passing --with-llsc or --without-llsc when configuring GCC. d871 4 a874 4 missing, the default for ‘mips*-*-linux*’ targets is --with-llsc. The --with-llsc and --without-llsc configure options may be overridden at compile time by passing the -mllsc or -mno-llsc options to d876 3 a878 3MIPS systems check for division by zero (unless -mno-check-zero-division is passed to the compiler) by d883 2 a884 2 the use of break, use the --with-divide=breaks configure option when configuring GCC. The default is to d886 2 a887 2
The assembler from GNU binutils 2.17 and earlier has a bug in the way d891 1 a891 1 runtime linker stubs in very large programs, like libgcj.so, to d894 3 a896 4
mips-sgi-irix5
d899 3 a901 4
mips-sgi-irix6
d906 3 a908 5
moxie-*-elf
d910 8 a917 9
powerpc-*-*
You can specify a default version for the -mcpu=cpu_type switch by using the configure option --with-cpu-cpu_type.
You will need d920 3 a922 5
powerpc-*-darwin*
d924 2 a925 2Pre-installed versions of Mac OS X may not include any developer tools, d929 2 a930 2
This version of GCC requires at least cctools-590.36. The d934 3 a936 5
powerpc-*-elf
d938 3 a940 4
powerpc*-*-linux-gnu*
d943 3 a945 5
powerpc-*-netbsd*
d947 3 a949 5
powerpc-*-eabisim
d952 3 a954 5
powerpc-*-eabi
d956 3 a958 5
powerpcle-*-elf
d960 3 a962 5
powerpcle-*-eabisim
d965 3 a967 5
powerpcle-*-eabi
d969 4 a972 6
rl78-*-elf
The Renesas RL78 processor. d974 3 a976 5
rx-*-elf
d980 3 a982 5
s390-*-linux*
d984 3 a986 5
s390x-*-linux*
d988 3 a990 5
s390x-ibm-tpf*
d993 3 a995 7
*-*-solaris2*
d999 2 a1000 2Sun does not ship a C compiler with Solaris 2 before Solaris 10, though d1002 2 a1003 2 11, GCC 3.4.3 is available as /usr/sfw/bin/gcc. Solaris 11 also provides GCC 4.5.2 as /usr/gcc/4.5/bin/gcc. Alternatively, d1006 3 a1008 3
The Solaris 2 /bin/sh will often fail to configure ‘libstdc++-v3’, ‘boehm-gc’ or ‘libjava’. We therefore d1010 5 d1016 1 a1016 4
% CONFIG_SHELL=/bin/ksh % export CONFIG_SHELLand proceed as described in the configure instructions. d1018 3 a1020 3 srcdir/configure.
Solaris 2 comes with a number of optional OS packages. Some of these d1026 4 a1029 4
To check whether an optional package is installed, use the pkginfo command. To add an optional package, use the pkgadd command. For further details, see the Solaris 2 d1031 3 a1033 3
Trying to use the linker and other tools in /usr/ucb to install GCC has been observed to cause trouble. d1035 8 a1042 8 /usr/ucb from your PATH.
The build process works more smoothly with the legacy Sun tools so, if you have /usr/xpg4/bin in your PATH, we recommend that you place /usr/bin before /usr/xpg4/bin for the duration of the build.
We recommend the use of the Sun assembler or the GNU assembler, in conjunction with the Sun linker. The GNU as d1045 1 a1045 1 /usr/sfw/bin/gas. Current versions of GNU binutils (2.22) d1048 4 a1051 5 combination GNU as + Sun ld should reasonably work, the reverse combination Sun as + GNU ld may fail to build or cause memory corruption at runtime in some cases for C++ programs. GNU ld usually works as well, although the version included in d1054 8 a1061 8 features, so better stay with Sun ld. To use the LTO linker plugin (-fuse-linker-plugin) with GNU ld, GNU binutils must be configured with --enable-largefile.
To enable symbol versioning in ‘libstdc++’ with Sun ld, you need to have any version of GNU c++filt, which is part of GNU binutils. ‘libstdc++’ symbol versioning will be disabled if no appropriate version is found. Sun c++filt from the Sun Studio d1063 3 a1065 3
Sun bug 4296832 turns up when compiling X11 headers with GCC 2.95 or newer: g++ will complain that types are missing. These headers d1068 4 a1071 4
Sun bug 4927647 sometimes causes random spurious testsuite failures related to missing diagnostic output. This bug doesn't affect GCC itself, rather it is a kernel bug triggered by the expect d1073 1 a1073 1 causes the expect program to miss anticipated output, extra d1075 2 a1076 2
There are patches for Solaris 9 (117171-11 or newer for d1078 4 a1081 4
Thread-local storage (TLS) is supported in Solaris 9, but requires some patches. The ‘libthread’ patches provide the
__tls_get_addr(SPARC, 64-bit x86) resp.___tls_get_addrd1085 1 a1085 1 required for the Sun ld and runtime linker (ld.so.1) d1087 3 a1089 3 patches must be installed even if GNU ld is used. Sun as in Solaris 9 doesn't support the necessary relocations, so GNU as must be used. The configure d1094 3 a1096 4
sparc*-*-*
d1101 2 a1102 2Newer versions of the GNU Multiple Precision Library (GMP), the MPFR d1107 3 a1109 4
sparc-sun-solaris2*
d1112 1 a1112 1 produced are smaller than the ones produced using Sun's native tools; d1115 2 a1116 2Starting with Solaris 7, the operating system is capable of executing d1118 1 a1118 1 this; the -m64 option enables 64-bit code generation. d1120 1 a1120 1 should try the -mtune=ultrasparc option instead, which produces d1123 2 a1124 2
When configuring on a Solaris 7 or later system that is running a kernel d1126 1 a1126 1 --disable-multilib, since we will not be able to build the d1128 2 a1129 2
GCC 3.3 and GCC 3.4 trigger code generation bugs in earlier versions of d1135 2 a1136 2
GCC 3.4 triggers a code generation bug in versions 5.4 (Sun ONE Studio 7) d1140 2 a1141 2
GCC 3.4 changed the default debugging format from Stabs to DWARF-2 for d1144 1 a1144 1 an x86-only problem by Sun, probably because they do not use DWARF-2). d1146 12 a1157 10 groff 1.19.1 without getting messages similar to the following:
ld: warning: relocation error: R_SPARC_UA32: ... external symbolic relocation against non-allocatable section .debug_info cannot be processed at runtime: relocation ignored.To work around this problem, compile with -gstabs+ instead of plain -g.
When configuring the GNU Multiple Precision Library (GMP), the MPFR d1159 2 a1160 2 target triplet must be specified as the build parameter on the configure line. This target triplet can be obtained by invoking ./config.guess in the toplevel source directory of GCC (and d1162 4 d1167 2 a1168 5
% ./configure --build=sparc-sun-solaris2.9 --prefix=xxx
sparc-sun-solaris2.10
d1172 10 a1181 9ld: fatal: relocation error: R_SPARC_TLS_LE_HIX22: file /var/tmp//ccamPA1v.o: symbol <unknown>: bad symbol type SECT: symbol type must be TLSThis bug is fixed in Sun patch 118683-03 or later.
sparc-*-linux*
d1186 1 d1188 2 a1189 3
sparc64-*-solaris2*
d1193 1 a1193 1 as the build parameter on the configure line. For example d1195 4 d1200 1 a1200 3% ./configure --build=sparc64-sun-solaris2.9 --prefix=xxxThe following compiler flags must be specified in the configure d1202 15 a1216 15
% CC="cc -xarch=v9 -xildoff" srcdir/configure [options] [target]-xarch=v9 specifies the SPARC-V9 architecture to the Sun toolchain and -xildoff turns off the incremental linker.
sparcv9-*-solaris2*
This is a synonym for ‘sparc64-*-solaris2*’.
c6x-*-*
d1219 3 a1221 4
tilegx-*-linux*
d1225 3 a1227 4
tilepro-*-linux*
d1231 3 a1233 5
*-*-vxworks*
d1235 2 a1236 2 very recent VxWorks 5.5 (aka Tornado 2.2) release, and only on PowerPC. We welcome patches for other architectures supported by VxWorks 5.5. d1241 12 a1252 12VxWorks comes with an older version of GCC installed in $WIND_BASE/host; we recommend you do not overwrite it. Choose an installation prefix entirely outside $WIND_BASE. Before running configure, create the directories prefix and prefix/bin. Link or copy the appropriate assembler, linker, etc. into prefix/bin, and set your PATH to include that directory while running both configure and make.
You must give configure the --with-headers=$WIND_BASE/target/h switch so that it can d1254 4 a1257 4 target only, you must also specify --target=target. configure will attempt to create the directory prefix/target/sys-include and copy files into it; make sure the user running configure has sufficient privilege d1259 3 a1261 3
GCC's exception handling runtime requires a special “configlette” module, contrib/gthr_supp_vxw_5x.c. Follow the instructions in d1264 3 a1266 4
x86_64-*-*, amd64-*-*
d1269 1 a1269 1 (amd64-*-* is an alias for x86_64-*-*) on GNU/Linux, FreeBSD and NetBSD. d1271 4 a1274 5 both 64-bit x86-64 and 32-bit x86 code (via the -m32 switch).
x86_64-*-solaris2.1[0-9]*
d1277 1 a1277 1 processor (‘amd64-*-*’ is an alias for ‘x86_64-*-*’) on d1280 1 a1280 1 can generate 64-bit x86-64 code with the -m64 switch. Since d1282 7 a1288 8 can generate 32-bit code with -m32. To configure and build this way, you have to provide all support libraries like libgmp as 64-bit code, configure with --target=x86_64-pc-solaris2.1x and ‘CC=gcc -m64’.
xtensa*-*-elf
d1291 1 a1291 1 ‘newlib’ C library. It uses ELF but does not support shared d1295 3 a1297 3The Xtensa configuration information must be specified prior to building GCC. The include/xtensa-config.h header d1302 3 a1304 4
xtensa*-*-linux*
d1309 1 a1309 1 -fpic or -fPIC options are used. In other d1311 4 a1314 7 ‘xtensa*-*-elf’ target.
Microsoft Windows
Intel 16-bit versions
d1316 2 d1320 2 a1321 2However, the 32-bit port has limited support for Microsoft d1323 3 a1325 2
Intel 32-bit versions
d1331 11 d1343 2 a1344 12
- Cygwin *-*-cygwin: Cygwin provides a user-space Linux API emulation layer in the Win32 subsystem.
- Interix *-*-interix: The Interix subsystem provides native support for POSIX.
- MinGW *-*-mingw32: MinGW is a native GCC port for the Win32 subsystem that provides a subset of POSIX.
- MKS i386-pc-mks: NuTCracker from MKS. See http://www.mkssoftware.com/ for more information.
Intel 64-bit versions
d1347 1 a1347 1 runtime library, available from http://mingw-w64.sourceforge.net/. d1349 5 a1353 4Presently Windows for Itanium is not supported.
Windows CE
d1357 3 a1359 2Other Windows Platforms
d1362 2 a1363 2GCC no longer supports the Windows POSIX subsystem. However, it does d1365 4 a1368 4
Old target names including *-*-winnt and *-*-windowsnt are no longer used.
PW32 (i386-pc-pw32) support was never completed, and the project seems to d1370 5 a1374 6
UWIN support has been removed due to a lack of maintenance.
*-*-cygwin
d1378 5 a1382 5GCC will build under Cygwin without modification; it does not build with Microsoft's C++ compiler and there are no plans to make it do so.
The Cygwin native compiler can be configured to target any 32-bit x86 d1387 3 a1389 4
*-*-interix
d1395 3 d1399 1 a1399 5
*-*-mingw32
GCC will build with and support only MinGW runtime 3.12 and later. d1402 3 a1404 4
Older systems
d1410 2 a1411 2Starting with GCC 3.1, each release has a list of “obsoleted” systems. d1413 1 a1413 1 configure will fail unless the --enable-obsolete d1416 2 a1417 2
Support for old systems as hosts for GCC can cause problems if the d1424 3 a1426 2 old-releases directory on the GCC mirror sites. Header bugs may generally be avoided using fixincludes, but bugs or deficiencies in libraries and the d1428 2 a1429 2
Support for older systems as targets for cross-compilation is less d1437 3 a1439 3
For some systems, old versions of GNU binutils may also be useful, and are available from pub/binutils/old-releases on d1441 2 a1442 2
Some of the information on specific systems above relates to d1446 3 a1448 4
all ELF targets (SVR4, Solaris 2, etc.)
d1454 8 a1462 2
Return to the GCC Installation page a1463 5 d1465 2 @ 1.1.1.5 log @import GCC 5.3.0. see these urls for details which are too large to include here: http://gcc.gnu.org/gcc-4.9/changes.html http://gcc.gnu.org/gcc-5/changes.html (note that GCC 5.x is a release stream like GCC 4.9.x, 4.8.x, etc.) the main issues we will have are: The default mode for C is now -std=gnu11 instead of -std=gnu89. ARM: The deprecated option -mwords-little-endian has been removed. The options -mapcs, -mapcs-frame, -mtpcs-frame and -mtpcs-leaf-frame which are only applicable to the old ABI have been deprecated. MIPS: The o32 ABI has been modified and extended. The o32 64-bit floating-point register support is now obsolete and has been removed. It has been replaced by three ABI extensions FPXX, FP64A, and FP64. The meaning of the -mfp64 command-line option has changed. It is now used to enable the FP64A and FP64 ABI extensions. @ text @d53 1 a53 1
- aarch64*-*-* d68 1 a84 3
- nds32le-*-elf
- nds32be-*-elf
- nvptx-*-none a106 1
- tilegxbe-*-linux* a107 1
- visium-*-elf d126 1 a126 1
d128 1 a128 1aarch64*-*-*
d130 1 a130 5Binutils pre 2.24 does not have support for selecting -mabi and does not support ILP32. If it is used to build GCC 4.9 or later, GCC will not support option -mabi=ilp32.
To enable a workaround for the Cortex-A53 erratum number 835769 by default d133 1 a133 1 default and can be explicitly disabled during compilation by passing the d140 1 a140 14
To enable a workaround for the Cortex-A53 erratum number 843419 by default (for all CPUs regardless of -mcpu option given) at configure time use the --enable-fix-cortex-a53-843419 option. This workaround is applied at link time. Enabling the workaround will cause GCC to pass the relevant option to the linker. It can be explicitly disabled during compilation by passing the -mno-fix-cortex-a53-843419 option. Conversely, --disable-fix-cortex-a53-843419 will disable the workaround by default. The workaround is disabled by default if neither of --enable-fix-cortex-a53-843419 or --disable-fix-cortex-a53-843419 is given at configure time.
alpha*-*-*
d152 1 a152 1
d154 1 a154 1alpha*-dec-osf5.1
d165 1 a165 1
d167 1 a167 1amd64-*-solaris2.1[0-9]*
d171 1 a171 1
d173 1 a173 15arc-*-elf32
Use ‘configure --target=arc-elf32 --with-cpu=cpu --enable-languages="c,c++"’ to configure GCC, with cpu being one of ‘arc600’, ‘arc601’, or ‘arc700’.
arc-linux-uclibc
Use ‘configure --target=arc-linux-uclibc --with-cpu=arc700 --enable-languages="c,c++"’ to configure GCC.
arm-*-eabi
d180 1 a180 1
d182 1 a182 1avr
d206 1 a206 1
d208 1 a208 1Blackfin
d216 1 a216 1
d218 1 a218 1CR16
d220 2 a221 2The CR16 CompactRISC architecture is a 16-bit architecture. This architecture is used in embedded applications. d228 2 a229 2
Use ‘configure --target=cr16-uclinux --enable-languages=c,c++’ to configure GCC for building a CR16 uclinux cross-compiler. d231 1 a231 1
d233 1 a233 1CRIS
d257 1 a257 1
d259 1 a259 1DOS
d268 1 a268 1
d270 1 a270 1epiphany-*-elf
d275 1 a275 1
d277 1 a277 1*-*-freebsd*
d312 1 a312 1
d314 1 a314 1h8300-hms
d325 1 a325 1
d327 1 a327 1hppa*-hp-hpux*
d377 1 a377 1
d379 1 a379 1hppa*-hp-hpux10
d389 1 a389 1
d391 1 a391 1hppa*-hp-hpux11
d498 1 a498 1
d500 1 a500 1*-*-linux-gnu
d506 1 a506 1
d508 1 a508 1i?86-*-linux*
d517 21 a537 1
d539 1 a539 1i?86-*-solaris2.10
d566 1 a566 1
d568 1 a568 1ia64-*-linux
d586 1 a586 1
d588 1 a588 1ia64-*-hpux*
d601 1 a601 1 d603 1 a603 1*-ibm-aix*
d669 1 a669 1‘libstdc++’ in GCC 3.4 increments the major version number of the a692 5
Eventually, the --with-aix-soname=svr4 configure option may drop the need for this procedure for libraries that support it. d741 1 a741 1
d743 1 a743 1iq2000-*-elf
d748 1 a748 1
d750 1 a750 1lm32-*-elf
d755 1 a755 1
d757 1 a757 1lm32-*-uclinux
d762 1 a762 1
d764 1 a764 1m32c-*-elf
d769 1 a769 1
d771 1 a771 1m32r-*-elf
d776 1 a776 1
d778 1 a778 1m68k-*-*
d804 1 a804 1
d806 1 a806 1m68k-*-uclinux
d813 1 a813 1
d815 1 a815 1mep-*-elf
d820 1 a820 1
d822 1 a822 1microblaze-*-elf
d827 1 a827 1
d829 1 a829 1mips-*-*
d878 1 a878 1
d880 1 a880 1mips-sgi-irix5
d884 1 a884 1
d886 1 a886 1mips-sgi-irix6
d892 1 a892 1
d894 1 a894 1moxie-*-elf
d898 1 a898 12
msp430-*-elf
TI MSP430 processor. This configuration is intended for embedded systems.
nds32le-*-elf
Andes NDS32 target in little endian mode. d900 1 a900 29
nds32be-*-elf
Andes NDS32 target in big endian mode.
nvptx-*-none
Nvidia PTX target.
Instead of GNU binutils, you will need to install nvptx-tools. Tell GCC where to find it: --with-build-time-tools=[install-nvptx-tools]/nvptx-none/bin.
A nvptx port of newlib is available at nvptx-newlib. It can be automatically built together with GCC. For this, add a symbolic link to nvptx-newlib's newlib directory to the directory containing the GCC sources.
Use the --disable-sjlj-exceptions and --enable-newlib-io-long-long options when configuring.
powerpc-*-*
d909 1 a909 1
d911 1 a911 1powerpc-*-darwin*
d925 1 a925 1
d927 1 a927 1powerpc-*-elf
d931 1 a931 1
d933 1 a933 1powerpc*-*-linux-gnu*
d937 1 a937 1
d939 1 a939 1powerpc-*-netbsd*
d943 1 a943 1
d945 1 a945 1powerpc-*-eabisim
d950 1 a950 1
d952 1 a952 1powerpc-*-eabi
d956 1 a956 1
d958 1 a958 1powerpcle-*-elf
d962 1 a962 1
d964 1 a964 1powerpcle-*-eabisim
d969 1 a969 1
d971 1 a971 1powerpcle-*-eabi
d975 1 a975 1
d977 1 a977 1rl78-*-elf
d982 1 a982 1
d984 1 a984 1rx-*-elf
d990 1 a990 1
d992 1 a992 1s390-*-linux*
d996 1 a996 1
d998 1 a998 1s390x-*-linux*
d1002 1 a1002 1
d1004 1 a1004 1s390x-ibm-tpf*
a1012 1 d1014 1 a1014 1*-*-solaris2*
d1016 2 a1017 3Support for Solaris 9 has been removed in GCC 4.10. Support for Solaris 8 has been removed in GCC 4.8. Support for Solaris 7 has been removed in GCC 4.6. d1094 20 a1113 1
d1115 1 a1115 1sparc*-*-*
d1127 1 a1127 1
d1129 1 a1129 1sparc-sun-solaris2*
d1183 1 a1183 1
d1185 1 a1185 1sparc-sun-solaris2.10
d1195 1 a1195 1
d1197 1 a1197 1sparc-*-linux*
d1203 1 a1203 1
d1205 1 a1205 1sparc64-*-solaris2*
d1222 1 a1222 1
d1224 1 a1224 1sparcv9-*-solaris2*
d1228 1 a1228 1
d1230 1 a1230 1c6x-*-*
d1234 1 a1234 1
d1236 1 a1236 1tilegx-*-linux*
d1238 2 a1239 2The TILE-Gx processor in little endian mode, running GNU/Linux. This port requires binutils-2.22 or newer. d1241 1 a1241 6
tilegxbe-*-linux*
The TILE-Gx processor in big endian mode, running GNU/Linux. This port requires binutils-2.23 or newer. d1243 1 a1243 3
tilepro-*-linux*
d1248 1 a1248 1
d1250 1 a1250 8visium-*-elf
CDS VISIUMcore processor. This configuration is intended for embedded systems.
*-*-vxworks*
d1283 1 a1283 1
d1285 1 a1285 1x86_64-*-*, amd64-*-*
d1292 1 a1292 1
d1294 1 a1294 1x86_64-*-solaris2.1[0-9]*
d1307 1 a1307 1
d1309 1 a1309 1xtensa*-*-elf
d1324 1 a1324 1
d1326 1 a1326 1xtensa*-*-linux*
d1335 1 a1335 1
d1337 1 a1337 1Microsoft Windows
d1339 1 a1339 1Intel 16-bit versions
d1347 1 a1347 1Intel 32-bit versions
d1365 1 a1365 1Intel 64-bit versions
d1373 1 a1373 1Windows CE
d1378 1 a1378 1Other Windows Platforms
d1392 1 a1392 1
d1394 1 a1394 1*-*-cygwin
d1408 1 a1408 1
d1410 1 a1410 1*-*-interix
d1417 1 a1417 1
d1419 1 a1419 1*-*-mingw32
d1425 1 a1425 1
d1427 1 a1427 1Older systems
d1469 1 a1469 1
d1471 1 a1471 1all ELF targets (SVR4, Solaris 2, etc.)
@ 1.1.1.6 log @initial import of GCC 5.5.0. this fixes a very large number of PRs. 280 are listed here: https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=5.5 and this list is likely not complete, and not reproduced here. the only specific change in functionality is removal of x86 "pcommit" instruction (which was apparently never implemented.) @ text @d1 10 a10 3Installing GCC d47 4 a50 33 d52 76 d129 2 a130 5Installing GCC
d132 1 d134 3 d138 9 d148 10 d159 1 d161 1 d163 4 d168 4 d173 1 d175 1 d177 3 d181 4 d186 1 d188 1 d190 1 d192 1 d194 1 d196 3 d200 1 d202 1 d204 1 d206 1 d208 1 a208 5 a209 162Please read this document carefully before installing the GNU Compiler Collection on your machine.
Note that this list of install notes is not a list of supported hosts or targets. Not all supported hosts and targets are listed here, only the ones that require host-specific or target-specific information have to.
- aarch64*-*-*
- alpha*-*-*
- alpha*-dec-osf5.1
- amd64-*-solaris2.10
- arm-*-eabi
- avr
- Blackfin
- DOS
- *-*-freebsd*
- h8300-hms
- hppa*-hp-hpux*
- hppa*-hp-hpux10
- hppa*-hp-hpux11
- *-*-linux-gnu
- i?86-*-linux*
- i?86-*-solaris2.10
- ia64-*-linux
- ia64-*-hpux*
- *-ibm-aix*
- iq2000-*-elf
- lm32-*-elf
- lm32-*-uclinux
- m32c-*-elf
- m32r-*-elf
- m68k-*-*
- m68k-uclinux
- mep-*-elf
- microblaze-*-elf
- mips-*-*
- mips-sgi-irix5
- mips-sgi-irix6
- nds32le-*-elf
- nds32be-*-elf
- nvptx-*-none
- powerpc*-*-*
- powerpc-*-darwin*
- powerpc-*-elf
- powerpc*-*-linux-gnu*
- powerpc-*-netbsd*
- powerpc-*-eabisim
- powerpc-*-eabi
- powerpcle-*-elf
- powerpcle-*-eabisim
- powerpcle-*-eabi
- s390-*-linux*
- s390x-*-linux*
- s390x-ibm-tpf*
- *-*-solaris2*
- sparc*-*-*
- sparc-sun-solaris2*
- sparc-sun-solaris2.10
- sparc-*-linux*
- sparc64-*-solaris2*
- sparcv9-*-solaris2*
- c6x-*-*
- tilegx-*-linux*
- tilegxbe-*-linux*
- tilepro-*-linux*
- visium-*-elf
- *-*-vxworks*
- x86_64-*-*, amd64-*-*
- x86_64-*-solaris2.1[0-9]*
- xtensa*-*-elf
- xtensa*-*-linux*
- Microsoft Windows
- *-*-cygwin
- *-*-interix
- *-*-mingw32
- OS/2
- Older systems
- all ELF targets (SVR4, Solaris 2, etc.)
aarch64*-*-*
Binutils pre 2.24 does not have support for selecting -mabi and does not support ILP32. If it is used to build GCC 4.9 or later, GCC will not support option -mabi=ilp32.
To enable a workaround for the Cortex-A53 erratum number 835769 by default (for all CPUs regardless of -mcpu option given) at configure time use the --enable-fix-cortex-a53-835769 option. This will enable the fix by default and can be explicitly disabled during compilation by passing the -mno-fix-cortex-a53-835769 option. Conversely, --disable-fix-cortex-a53-835769 will disable the workaround by default. The workaround is disabled by default if neither of --enable-fix-cortex-a53-835769 or --disable-fix-cortex-a53-835769 is given at configure time.
To enable a workaround for the Cortex-A53 erratum number 843419 by default (for all CPUs regardless of -mcpu option given) at configure time use the --enable-fix-cortex-a53-843419 option. This workaround is applied at link time. Enabling the workaround will cause GCC to pass the relevant option to the linker. It can be explicitly disabled during compilation by passing the -mno-fix-cortex-a53-843419 option. Conversely, --disable-fix-cortex-a53-843419 will disable the workaround by default. The workaround is disabled by default if neither of --enable-fix-cortex-a53-843419 or --disable-fix-cortex-a53-843419 is given at configure time.
alpha*-*-*
This section contains general configuration information for all alpha-based platforms using ELF (in particular, ignore this section for DEC OSF/1, Digital UNIX and Tru64 UNIX). In addition to reading this section, please read all other sections that match your target.
We require binutils 2.11.2 or newer. Previous binutils releases had a number of problems with DWARF 2 debugging information, not the least of which is incorrect linking of shared libraries.
alpha*-dec-osf5.1
Systems using processors that implement the DEC Alpha architecture and are running the DEC/Compaq/HP Unix (DEC OSF/1, Digital UNIX, or Compaq/HP Tru64 UNIX) operating system, for example the DEC Alpha AXP systems.
Support for Tru64 UNIX V5.1 has been removed in GCC 4.8. As of GCC 4.6, support for Tru64 UNIX V4.0 and V5.0 has been removed. As of GCC 3.2, versions before
alpha*-dec-osf4are no longer supported. (These are the versions which identify themselves as DEC OSF/1.)
amd64-*-solaris2.1[0-9]*
This is a synonym for ‘x86_64-*-solaris2.1[0-9]*’.
arc-*-elf32
Use ‘configure --target=arc-elf32 --with-cpu=cpu --enable-languages="c,c++"’ to configure GCC, with cpu being one of ‘arc600’, ‘arc601’, or ‘arc700’.
arc-linux-uclibc
Use ‘configure --target=arc-linux-uclibc --with-cpu=arc700 --enable-languages="c,c++"’ to configure GCC.
arm-*-eabi
d214 5 a218 4
avr
d220 1 a220 1 applications. There are no standard Unix configurations. d223 4 a226 4Use ‘configure --target=avr --enable-languages="c"’ to configure GCC.
Further installation notes and other useful information about AVR tools d228 18 a245 19
We strongly recommend using binutils 2.13 or newer.
The following error:
Error: register requiredindicates that you should upgrade to a newer version of the binutils.
Blackfin
The Blackfin processor, an Analog Devices DSP. d247 2 a248 2
More information, and a version of binutils with support for this processor, d250 5 a254 4
CR16
a256 1 d258 12 a269 11See “CR16 Options” in the main manual for a list of CR16-specific options.
Use ‘configure --target=cr16-elf --enable-languages=c,c++’ to configure GCC for building a CR16 elf cross-compiler.
Use ‘configure --target=cr16-uclinux --enable-languages=c,c++’ to configure GCC for building a CR16 uclinux cross-compiler.
CRIS
d272 2 a273 2See “CRIS Options” in the main manual d275 7 a281 11
There are a few different CRIS targets:
cris-axis-elfMainly for monolithic embedded systems. Includes a multilib for the ‘v10’ core used in ‘ETRAX 100 LX’.
cris-axis-linux-gnu- d284 1 a284 1
A GNU/Linux port for the CRIS architecture, currently targeting ‘ETRAX 100 LX’ by default.
For
cris-axis-elfyou need binutils 2.11 d286 2 a287 2Pre-packaged tools can be obtained from d291 5 a295 4
DOS
d297 2 a298 2You cannot install GCC by itself on MSDOS; it will not compile under d302 6 a307 5
epiphany-*-elf
Adapteva Epiphany. d309 5 a313 4
*-*-freebsd*
d317 2 a318 2In order to better utilize FreeBSD base system functionality and match d323 1 a323 1 libgcc_s.so.1 and boehm-gc (on FreeBSD 7 or later) is enabled d325 4 a328 4
We support FreeBSD using the ELF file format with DWARF 2 debugging for all CPU architectures. You may use -gstabs instead of -g, if you really want the old debugging format. There are d332 1 a332 1 GCC. In particular, --enable-threads is now configured by d338 2 a339 2
The version of binutils installed in /usr/bin probably works d341 1 a341 1 binutils and/or the version found in /usr/ports/devel/binutils has d346 5 a350 4
h8300-hms
d352 4 a355 4Please have a look at the binaries page.
The calling convention and structure layout has changed in release 2.6. d359 5 a363 4
hppa*-hp-hpux*
d365 2 a366 2We require using gas/binutils on all hppa platforms. Version 2.19 or d368 7 a374 7
It may be helpful to configure GCC with the --with-gnu-as and --with-as=… options to ensure that GCC can find GAS.
The HP assembler should not be used with GCC. It is rarely tested and may not work. It shouldn’t be used with any languages other than C due to its d376 2 a377 2
Specifically, -g does not work (HP-UX uses a peculiar debugging d381 3 a383 3 ‘make all-host all-target’ after getting the failure from ‘make’.
Various GCC features are not supported. For example, it does not support weak d387 2 a388 2
There are two default scheduling models for instructions. These are d390 1 a390 1 architecture specified for the target machine when configuring. d392 3 a394 3 the target is a ‘hppa1*’ machine.
The PROCESSOR_8000 model is not well suited to older processors. Thus, d399 3 a401 3
As of GCC 4.0, GCC uses the UNIX 95 namespace for HP-UX 10.10 through 11.00, and the UNIX 98 namespace for HP-UX 11.11 and later. d405 3 a407 3 in a number of ways. With HP cc,
UNIX_STDcan be set to ‘95’ or ‘98’. Another way is to add an appropriate set of predefines toCC. The description for the munix= option contains d409 7 a415 6More specific information to ‘hppa*-hp-hpux*’ targets follows.
hppa*-hp-hpux10
d418 2 a419 2The C++ ABI has changed incompatibly in GCC 4.0. COMDAT subspaces are d423 5 a427 4
hppa*-hp-hpux11
d430 4 a433 4The libffi and libjava libraries haven’t been ported to 64-bit HP-UX and don’t build.
Refer to binaries for information about obtaining d435 1 a435 1 to build the Ada language as it can’t be bootstrapped using C. Ada is d437 3 a439 3
Starting with GCC 3.4 an ISO C compiler is required to bootstrap. The bundled compiler supports only traditional C; you will need either HP’s d441 2 a442 2
It is possible to build GCC 3.3 starting with the bundled HP compiler, d445 1 a445 1 can’t be built with the HP bundled compiler. This problem can be d447 1 a447 1 --enable-languages="c,c++,f77,objc" option in your configure d449 2 a450 2
There are several possible approaches to building the distribution. d453 1 a453 1 first using the HP tools, then build binutils, then rebuild GCC. d456 2 a457 2
On 64-bit capable systems, there are two distinct targets. Different d459 3 a461 3 the same system. The ‘hppa[1-2]*-hp-hpux11*’ target generates code for the 32-bit PA-RISC runtime architecture and uses the HP linker. The ‘hppa64-hp-hpux11*’ target generates 64-bit code for the d463 11 a473 11
The script config.guess now selects the target type based on the compiler detected during configuration. You must define
PATHorCCso that configure finds an appropriate compiler for the initial bootstrap. WhenCCis used, the definition should contain the options that are needed wheneverCCis used.Specifically, options that determine the runtime architecture must be in
CCto correctly select the target for the build. It is also convenient to place many other compiler options inCC. For example,CC="cc -Ac +DA2.0W -Wp,-H16376 -D_CLASSIC_TYPES -D_HPUX_SOURCE"d475 2 a476 2 64-bit K&R/bundled mode. The +DA2.0W option will result in the automatic selection of the ‘hppa64-hp-hpux11*’ target. The d480 4 a483 4 -Ac option. These defines aren’t necessary with -Ae.It is best to explicitly configure the ‘hppa64-hp-hpux11*’ target with the --with-ld=… option. This overrides the standard d486 1 a486 1 result, it’s not possible to switch linkers in the middle of a GCC build. d489 2 a490 2
A recent linker patch must be installed for the correct operation of d494 1 a494 1
PHSS_24304, might be usable but it hasn’t been tested. These d497 2 a498 2The patches are necessary for the support of weak symbols on the d501 1 a501 1 to HP-UX 11, there are bugs in the linker support for secondary symbols. d505 2 a506 2
GCC 3.3 uses the ELF DT_INIT_ARRAY and DT_FINI_ARRAY capabilities to d508 1 a508 1 uses the linker +init and +fini options for the same d511 1 a511 1 problem on the 64-bit port resulting from HP’s non-standard use of d513 3 a515 3
Although the HP and GNU linkers are both supported for the ‘hppa64-hp-hpux11*’ target, it is strongly recommended that the d517 3 a519 3
At this time, the GNU linker does not support the creation of long branch stubs. As a result, it can’t successfully link binaries d522 5 a526 5 with -static, and with dwarf2 unwind and exception support. It also doesn’t provide stubs for internal calls to global functions in shared libraries, so these calls can’t be overloaded.
The HP dynamic loader does not support GNU symbol versioning, so symbol d528 9 a536 8 versioning with --disable-symvers when using GNU ld.
POSIX threads are the default. The optional DCE thread library is not supported, so --enable-threads=dce does not work.
*-*-linux-gnu
d540 6 a545 5
i?86-*-linux*
As of GCC 3.3, binutils 2.13.1 or later is required for this platform. d547 2 a548 2
If you receive Signal 11 errors when building on GNU/Linux, then it is d551 5 a555 4
i?86-*-solaris2.10
d557 6 a562 6 with GCC 4.7, there is also a 64-bit ‘amd64-*-solaris2.1[0-9]*’ or ‘x86_64-*-solaris2.1[0-9]*’ configuration that corresponds to ‘sparcv9-sun-solaris2*’.It is recommended that you configure GCC to use the GNU assembler, in /usr/sfw/bin/gas. The versions included in Solaris 10, from GNU d566 5 a570 4 /usr/ccs/bin/as work almost as well, though.
For linking, the Sun linker, is preferred. If you want to use the GNU linker instead, which is available in /usr/sfw/bin/gld, note that d574 11 a584 9
To use GNU
as, configure with the options --with-gnu-as --with-as=/usr/sfw/bin/gas. It may be necessary to configure with --without-gnu-ld --with-ld=/usr/ccs/bin/ld to guarantee use of Sunld.
ia64-*-linux
d587 3 a589 3If you are using the installed system libunwind library with --with-system-libunwind, then you must use libunwind 0.98 or d591 2 a592 2
None of the following versions of GCC has an ABI that is compatible d595 3 a597 3 3.1, 3.0.2, 3.0.1, 3.0, Red Hat 2.96, and Trillian 000717. This primarily affects C++ programs and programs that create shared libraries. GCC 3.1 or later is recommended for compiling linux, the kernel. d600 5 a604 4
ia64-*-hpux*
d607 6 a612 6 the option --with-gnu-as may be necessary.The GCC libunwind library has not been ported to HPUX. This means that for GCC versions 3.2.3 and earlier, --enable-libunwind-exceptions is required to build GCC. For GCC 3.3 and later, this is the default. For gcc 3.4.3 and later, --enable-libunwind-exceptions is d614 7 a620 6
*-ibm-aix*
Support for AIX version 3 and older was discontinued in GCC 3.4. d622 2 a623 2
“out of memory” bootstrap failures may indicate a problem with d625 3 a627 3 /etc/security/limits system configuration file.
GCC can bootstrap with recent versions of IBM XLC, but bootstrapping a630 5
d632 5 a636 2% LDR_CNTRL=MAXDATA=0x50000000 % export LDR_CNTRLOne can start with a pre-compiled version of GCC to build from sources. One may delete GCC’s “fixed” header files when starting a637 8
To speed up the configuration phases of bootstrapping and installing GCC, one may use GNU Bash instead of AIX
/bin/sh, e.g.,d639 7 a645 2% CONFIG_SHELL=/opt/freeware/bin/bash % export CONFIG_SHELLand then proceed as described in the build instructions, where we strongly recommend specifying an absolute path d647 2 a648 2
Because GCC on AIX is built as a 32-bit executable by default, d652 2 a653 2
Errors involving
allocawhen building GCC generally are due d656 5 a660 5 the build, the native AIX compiler must be invoked ascc(notxlc). Onceconfigurehas been informed ofxlc, one needs to use ‘make distclean’ to remove the configure cache files and ensure thatCCenvironment variable does not provide a definition that will confuseconfigure. d663 2 a664 2The native
asandldare recommended for d667 1 a667 1 AIX 5. The GNU Assembler has not been updated to support AIX 6 or d669 2 a670 2AIX 5.3 TL10, AIX 6.1 TL05 and AIX 7.1 TL00 introduced an AIX d678 2 a679 2
Building libstdc++.a requires a fix for an AIX Assembler bug d683 3 a685 3
‘libstdc++’ in GCC 3.4 increments the major version number of the shared object and GCC installation places the libstdc++.a d689 3 a691 3 versions of the ‘libstdc++’ shared object needs to be available to the AIX runtime loader. The GCC 3.1 ‘libstdc++.so.4’, if present, and GCC 3.3 ‘libstdc++.so.5’ shared objects can be d693 2 a694 8 the ‘F_LOADONLY’ flag in the shared object for each multilib libstdc++.a installed:
Extract the shared objects from the currently installed libstdc++.a archive:
d696 5 a700 1% ar -x libstdc++.a libstdc++.so.4 libstdc++.so.5Enable the ‘F_LOADONLY’ flag so that the shared object will be d702 8 a709 12
% strip -e libstdc++.so.4 libstdc++.so.5Archive the runtime-only shared object in the GCC 3.4 libstdc++.a archive:
% ar -q libstdc++.a libstdc++.so.4 libstdc++.so.5Eventually, the --with-aix-soname=svr4 d712 2 a713 2
Linking executables and shared libraries may produce warnings of d719 2 a720 2
AIX 4.3 utilizes a “large format” archive to support both 32-bit and d722 1 a722 1 to parse archive libraries did not handle the new format correctly. d725 1 a725 1 with AIX 4.3.1 should work for a 32-bit environment. The -g d729 3 a731 3
Some versions of the AIX binder (linker) can fail with a relocation overflow severe error when the -bbigtoc option is used to link d737 2 a738 2
The AIX 4.3.2.1 linker (bos.rte.bind_cmds Level 4.3.2.1) will dump core d743 2 a744 2
The initial assembler shipped with AIX 4.3.0 generates incorrect object d749 2 a750 2
AIX provides National Language Support (NLS). Compilers and assemblers d752 1 a752 1 formats including floating-point numbers (e.g., ‘.’ vs ‘,’ for d755 10 a764 9 expects. If one encounters this problem, set the
LANGenvironment variable to ‘C’ or ‘En_US’.A default can be specified with the -mcpu=cpu_type switch and using the configure option --with-cpu-cpu_type.
iq2000-*-elf
d767 6 a772 5
lm32-*-elf
Lattice Mico32 processor. d774 6 a779 5
lm32-*-uclinux
Lattice Mico32 processor. d781 6 a786 5
m32c-*-elf
Renesas M32C processor. d788 6 a793 5
m32r-*-elf
Renesas M32R processor. d795 5 a799 4
m68k-*-*
d801 2 a802 2 ‘m68k-*-elf*’, ‘m68k-*-rtems’, ‘m68k-*-uclinux’ and ‘m68k-*-linux’ d805 3 a807 3 --with-arch=m68k toconfigure. Alternatively, you can omit the M680x0 libraries by passing --with-arch=cf toconfigure. These targets default to 5206 or 5475 code as d809 4 a812 4 configured with --with-arch=cf and 68020 code otherwise.The ‘m68k-*-netbsd’ and ‘m68k-*-openbsd’ targets also support the --with-arch d814 14 a827 13 --with-arch=cf and 68020 code otherwise.
You can override the default processors listed above by configuring with --with-cpu=target. This target can either be a -mcpu argument or one of the following values: ‘m68000’, ‘m68010’, ‘m68020’, ‘m68030’, ‘m68040’, ‘m68060’, ‘m68020-40’ and ‘m68020-60’.
GCC requires at least binutils version 2.17 on these targets.
m68k-*-uclinux
d829 1 a829 1 ‘m68k-linux-gnu’ ABI rather than the ‘m68k-elf’ ABI. d832 6 a837 5
mep-*-elf
Toshiba Media embedded Processor. d839 6 a844 5
microblaze-*-elf
Xilinx MicroBlaze processor. d846 5 a850 4
mips-*-*
d852 1 a852 1 sections for all it’s [sic] sectons [sic]”, don’t worry about it. This d856 2 a857 2It would be nice to extend GAS to produce the gp tables, but they are d859 2 a860 2
The libstdc++ atomic locking routines for MIPS targets requires MIPS II d862 3 a864 3 make ‘mips*-*-*’ use the generic implementation instead. You can also configure for ‘mipsel-elf’ as a workaround. The ‘mips*-*-linux*’ target continues to use the MIPS II routines. More a865 1
d867 6 a872 4The built-in
__sync_*functions are available on MIPS II and later systems and others that support the ‘ll’, ‘sc’ and ‘sync’ instructions. This can be overridden by passing --with-llsc or --without-llsc when configuring GCC. d874 4 a877 4 missing, the default for ‘mips*-*-linux*’ targets is --with-llsc. The --with-llsc and --without-llsc configure options may be overridden at compile time by passing the -mllsc or -mno-llsc options to d879 3 a881 3MIPS systems check for division by zero (unless -mno-check-zero-division is passed to the compiler) by d886 2 a887 2 the use of break, use the --with-divide=breaks
configureoption when configuring GCC. The default is to d889 2 a890 2The assembler from GNU binutils 2.17 and earlier has a bug in the way d894 1 a894 1 runtime linker stubs in very large programs, like libgcj.so, to d897 5 a901 4
mips-sgi-irix5
d903 5 a907 4
mips-sgi-irix6
d911 5 a915 4
moxie-*-elf
d917 6 a922 5
msp430-*-elf
TI MSP430 processor. d924 5 a928 4
nds32le-*-elf
d930 5 a934 4
nds32be-*-elf
d936 5 a940 4
nvptx-*-none
d942 3 a944 3Instead of GNU binutils, you will need to install nvptx-tools. d946 4 a949 4 --with-build-time-tools=[install-nvptx-tools]/nvptx-none/bin.
A nvptx port of newlib is available at nvptx-newlib. d951 1 a951 1 symbolic link to nvptx-newlib’s newlib directory to the d953 12 a964 11
Use the --disable-sjlj-exceptions and --enable-newlib-io-long-long options when configuring.
powerpc-*-*
You can specify a default version for the -mcpu=cpu_type switch by using the configure option --with-cpu-cpu_type.
You will need d967 5 a971 4
powerpc-*-darwin*
d973 2 a974 2Pre-installed versions of Mac OS X may not include any developer tools, d978 2 a979 2
This version of GCC requires at least cctools-590.36. The d983 5 a987 4
powerpc-*-elf
d989 5 a993 4
powerpc*-*-linux-gnu*
d995 5 a999 4
powerpc-*-netbsd*
d1001 5 a1005 4
powerpc-*-eabisim
d1008 5 a1012 4
powerpc-*-eabi
d1014 5 a1018 4
powerpcle-*-elf
d1020 5 a1024 4
powerpcle-*-eabisim
d1027 5 a1031 4
powerpcle-*-eabi
d1033 6 a1038 5
rl78-*-elf
The Renesas RL78 processor. d1040 5 a1044 4
rx-*-elf
d1048 5 a1052 4
s390-*-linux*
d1054 5 a1058 4
s390x-*-linux*
d1060 5 a1064 4
s390x-ibm-tpf*
d1067 10 a1076 5
*-*-solaris2*
Support for Solaris 9 has been removed in GCC 5. Support for Solaris d1079 2 a1080 2
Sun does not ship a C compiler with Solaris 2 before Solaris 10, though d1082 2 a1083 2 11, GCC 3.4.3 is available as
/usr/sfw/bin/gcc. Solaris 11 also provides GCC 4.5.2 as/usr/gcc/4.5/bin/gcc. Alternatively, d1086 3 a1088 3The Solaris 2
/bin/shwill often fail to configure ‘libstdc++-v3’, ‘boehm-gc’ or ‘libjava’. We therefore a1089 5d1091 4 a1094 1% CONFIG_SHELL=/bin/ksh % export CONFIG_SHELLand proceed as described in the configure instructions. d1096 3 a1098 3
srcdir/configure.Solaris 2 comes with a number of optional OS packages. Some of these d1104 4 a1107 4
To check whether an optional package is installed, use the
pkginfocommand. To add an optional package, use thepkgaddcommand. For further details, see the Solaris 2 d1109 3 a1111 3Trying to use the linker and other tools in /usr/ucb to install GCC has been observed to cause trouble. d1113 8 a1120 8 /usr/ucb from your
PATH.The build process works more smoothly with the legacy Sun tools so, if you have /usr/xpg4/bin in your
PATH, we recommend that you place /usr/bin before /usr/xpg4/bin for the duration of the build.We recommend the use of the Sun assembler or the GNU assembler, in conjunction with the Sun linker. The GNU
asd1123 1 a1123 1 /usr/sfw/bin/gas. Current versions of GNU binutils (2.22) d1126 5 a1130 4 combination GNUas+ Sunldshould reasonably work, the reverse combination Sunas+ GNUldmay fail to build or cause memory corruption at runtime in some cases for C++ programs. GNUldusually works as well, although the version included in d1133 8 a1140 8 features, so better stay with Sunld. To use the LTO linker plugin (-fuse-linker-plugin) with GNUld, GNU binutils must be configured with --enable-largefile.To enable symbol versioning in ‘libstdc++’ with the Sun linker, you need to have any version of GNU
c++filt, which is part of GNU binutils. ‘libstdc++’ symbol versioning will be disabled if no appropriate version is found. Sunc++filtfrom the Sun Studio d1142 3 a1144 6GNU
makeversion 3.81 or later is required to build libjava with the Sun linker.Sun bug 4296832 turns up when compiling X11 headers with GCC 2.95 or newer:
g++will complain that types are missing. These headers d1147 4 a1150 4Sun bug 4927647 sometimes causes random spurious testsuite failures related to missing diagnostic output. This bug doesn’t affect GCC itself, rather it is a kernel bug triggered by the
expectd1152 1 a1152 1 causes theexpectprogram to miss anticipated output, extra d1154 5 a1158 4
sparc*-*-*
d1162 2 a1163 2Newer versions of the GNU Multiple Precision Library (GMP), the MPFR d1168 5 a1172 4
sparc-sun-solaris2*
d1174 1 a1174 1 produced are smaller than the ones produced using Sun’s native tools; d1177 2 a1178 2Starting with Solaris 7, the operating system is capable of executing d1180 1 a1180 1 this; the -m64 option enables 64-bit code generation. d1182 1 a1182 1 should try the -mtune=ultrasparc option instead, which produces d1185 2 a1186 2
When configuring on a Solaris 7 or later system that is running a kernel d1188 1 a1188 1 --disable-multilib, since we will not be able to build the d1190 2 a1191 2
GCC 3.3 and GCC 3.4 trigger code generation bugs in earlier versions of d1197 2 a1198 2
GCC 3.4 triggers a code generation bug in versions 5.4 (Sun ONE Studio 7) d1202 2 a1203 2
GCC 3.4 changed the default debugging format from Stabs to DWARF-2 for d1206 1 a1206 1 an x86-only problem by Sun, probably because they do not use DWARF-2). d1208 10 a1217 12
groff1.19.1 without getting messages similar to the following:ld: warning: relocation error: R_SPARC_UA32: … external symbolic relocation against non-allocatable section .debug_info cannot be processed at runtime: relocation ignored.To work around this problem, compile with -gstabs+ instead of plain -g.
When configuring the GNU Multiple Precision Library (GMP), the MPFR d1219 2 a1220 2 target triplet must be specified as the
buildparameter on the configure line. This target triplet can be obtained by invoking./config.guessin the toplevel source directory of GCC (and d1222 7 a1228 8% ./configure --build=sparc-sun-solaris2.9 --prefix=xxx
sparc-sun-solaris2.10
d1231 9 a1239 11ld: fatal: relocation error: R_SPARC_TLS_LE_HIX22: file /var/tmp//ccamPA1v.o: symbol <unknown>: bad symbol type SECT: symbol type must be TLSThis bug is fixed in Sun patch 118683-03 or later.
sparc-*-linux*
a1243 1 d1245 4 a1248 3
sparc64-*-solaris2*
d1251 1 a1251 1 as thebuildparameter on the configure line. For example a1252 4d1254 3 a1256 1% ./configure --build=sparc64-sun-solaris2.9 --prefix=xxxThe following compiler flags must be specified in the configure d1258 16 a1273 16
% CC="cc -xarch=v9 -xildoff" srcdir/configure [options] [target]-xarch=v9 specifies the SPARC-V9 architecture to the Sun toolchain and -xildoff turns off the incremental linker.
sparcv9-*-solaris2*
This is a synonym for ‘sparc64-*-solaris2*’.
c6x-*-*
d1275 5 a1279 4
tilegx-*-linux*
d1282 5 a1286 4
tilegxbe-*-linux*
d1289 5 a1293 4
tilepro-*-linux*
d1296 6 a1301 5
visium-*-elf
CDS VISIUMcore processor. d1303 5 a1307 4
*-*-vxworks*
d1309 2 a1310 2 very recent VxWorks 5.5 (aka Tornado 2.2) release, and only on PowerPC. We welcome patches for other architectures supported by VxWorks 5.5. d1315 12 a1326 12VxWorks comes with an older version of GCC installed in $WIND_BASE/host; we recommend you do not overwrite it. Choose an installation prefix entirely outside $WIND_BASE. Before running
configure, create the directories prefix and prefix/bin. Link or copy the appropriate assembler, linker, etc. into prefix/bin, and set your PATH to include that directory while running bothconfigureandmake.You must give
configurethe --with-headers=$WIND_BASE/target/h switch so that it can d1328 4 a1331 4 target only, you must also specify --target=target.configurewill attempt to create the directory prefix/target/sys-include and copy files into it; make sure the user runningconfigurehas sufficient privilege d1333 3 a1335 3GCC’s exception handling runtime requires a special “configlette” module, contrib/gthr_supp_vxw_5x.c. Follow the instructions in d1338 5 a1342 4
x86_64-*-*, amd64-*-*
d1344 1 a1344 1 (amd64-*-* is an alias for x86_64-*-*) on GNU/Linux, FreeBSD and NetBSD. d1346 6 a1351 5 both 64-bit x86-64 and 32-bit x86 code (via the -m32 switch).
x86_64-*-solaris2.1[0-9]*
d1353 1 a1353 1 processor (‘amd64-*-*’ is an alias for ‘x86_64-*-*’) on d1356 1 a1356 1 can generate 64-bit x86-64 code with the -m64 switch. Since d1358 9 a1366 8 can generate 32-bit code with -m32. To configure and build this way, you have to provide all support libraries like libgmp as 64-bit code, configure with --target=x86_64-pc-solaris2.1x and ‘CC=gcc -m64’.
xtensa*-*-elf
d1368 1 a1368 1 ‘newlib’ C library. It uses ELF but does not support shared d1372 3 a1374 3The Xtensa configuration information must be specified prior to building GCC. The include/xtensa-config.h header d1379 5 a1383 4
xtensa*-*-linux*
d1387 1 a1387 1 -fpic or -fPIC options are used. In other d1389 7 a1395 5 ‘xtensa*-*-elf’ target.
Microsoft Windows
a1396 2Intel 16-bit versions
d1399 2 a1400 2However, the 32-bit port has limited support for Microsoft d1402 3 a1404 3
Intel 32-bit versions
a1408 11d1410 13 a1422 2
- Cygwin *-*-cygwin: Cygwin provides a user-space Linux API emulation layer in the Win32 subsystem.
- Interix *-*-interix: The Interix subsystem provides native support for POSIX.
- MinGW *-*-mingw32: MinGW is a native GCC port for the Win32 subsystem that provides a subset of POSIX.
- MKS i386-pc-mks: NuTCracker from MKS. See http://www.mkssoftware.com/ for more information.
Intel 64-bit versions
d1424 1 a1424 1 runtime library, available from http://mingw-w64.sourceforge.net/. d1426 5 a1430 5Presently Windows for Itanium is not supported.
Windows CE
d1433 3 a1435 3Other Windows Platforms
d1437 2 a1438 2GCC no longer supports the Windows POSIX subsystem. However, it does d1440 4 a1443 4
Old target names including *-*-winnt and *-*-windowsnt are no longer used.
PW32 (i386-pc-pw32) support was never completed, and the project seems to d1445 7 a1451 6
UWIN support has been removed due to a lack of maintenance.
*-*-cygwin
d1454 5 a1458 5GCC will build under Cygwin without modification; it does not build with Microsoft’s C++ compiler and there are no plans to make it do so.
The Cygwin native compiler can be configured to target any 32-bit x86 d1463 5 a1467 4
*-*-interix
d1472 6 a1477 5
*-*-mingw32
GCC will build with and support only MinGW runtime 3.12 and later. d1480 5 a1484 4
Older systems
d1489 2 a1490 2Starting with GCC 3.1, each release has a list of “obsoleted” systems. d1492 1 a1492 1
configurewill fail unless the --enable-obsolete d1495 2 a1496 2Support for old systems as hosts for GCC can cause problems if the d1503 2 a1504 3 old-releases directory on the GCC mirror sites. Header bugs may generally be avoided using
fixincludes, but bugs or deficiencies in libraries and the d1506 2 a1507 2Support for older systems as targets for cross-compilation is less d1515 3 a1517 3
For some systems, old versions of GNU binutils may also be useful, and are available from pub/binutils/old-releases on d1519 2 a1520 2
Some of the information on specific systems above relates to d1524 5 a1528 4
all ELF targets (SVR4, Solaris 2, etc.)
a1532 1 d1534 1 a1534 2
a1535 5
d1537 5 a1542 2 @ 1.1.1.7 log @import GCC 6.4.0. see this url for details which are too large to include here: http://gcc.gnu.org/gcc-6/changes.html the main visible changes appear to be: - The default mode for C++ is now -std=gnu++14 instead of -std=gnu++98. - The C and C++ compilers now support attributes on enumerators. - Diagnostics can now contain "fix-it hints" - more warnings (some added to -Wall) @ text @d1 3 a3 10Host/Target specific installation notes for GCC a61 5Host/Target specific installation notes for GCC
Please read this document carefully before installing the GNU Compiler Collection on your machine. d63 23 a85 4Note that this list of install notes is not a list of supported hosts or targets. Not all supported hosts and targets are listed here, only the ones that require host-specific or target-specific information have to. a86 76
- aarch64*-*-*
- alpha*-*-*
- alpha*-dec-osf5.1
- amd64-*-solaris2.10
- arm-*-eabi
- avr
- Blackfin
- DOS
- *-*-freebsd*
- h8300-hms
- hppa*-hp-hpux*
- hppa*-hp-hpux10
- hppa*-hp-hpux11
- *-*-linux-gnu
- i?86-*-linux*
- i?86-*-solaris2.10
- ia64-*-linux
- ia64-*-hpux*
- *-ibm-aix*
- iq2000-*-elf
- lm32-*-elf
- lm32-*-uclinux
- m32c-*-elf
- m32r-*-elf
- m68k-*-*
- m68k-uclinux
- mep-*-elf
- microblaze-*-elf
- mips-*-*
- mips-sgi-irix5
- mips-sgi-irix6
- nds32le-*-elf
- nds32be-*-elf
- nvptx-*-none
- powerpc*-*-*
- powerpc-*-darwin*
- powerpc-*-elf
- powerpc*-*-linux-gnu*
- powerpc-*-netbsd*
- powerpc-*-eabisim
- powerpc-*-eabi
- powerpcle-*-elf
- powerpcle-*-eabisim
- powerpcle-*-eabi
- s390-*-linux*
- s390x-*-linux*
- s390x-ibm-tpf*
- *-*-solaris2*
- sparc*-*-*
- sparc-sun-solaris2*
- sparc-sun-solaris2.10
- sparc-*-linux*
- sparc64-*-solaris2*
- sparcv9-*-solaris2*
- c6x-*-*
- tilegx-*-linux*
- tilegxbe-*-linux*
- tilepro-*-linux*
- visium-*-elf
- *-*-vxworks*
- x86_64-*-* amd64-*-*
- x86_64-*-solaris2.1[0-9]*
- xtensa*-*-elf
- xtensa*-*-linux*
- Microsoft Windows
- *-*-cygwin
- *-*-interix
- *-*-mingw32
- OS/2
- Older systems
a87 2
- all ELF targets (SVR4, Solaris 2, etc.)
d89 5 a93 1aarch64*-*-*
d95 91 a185 1Binutils pre 2.24 does not have support for selecting -mabi and d187 3 a189 3 not support option -mabi=ilp32.
To enable a workaround for the Cortex-A53 erratum number 835769 by default d191 1 a191 1 --enable-fix-cortex-a53-835769 option. This will enable the fix by d193 2 a194 2 -mno-fix-cortex-a53-835769 option. Conversely, --disable-fix-cortex-a53-835769 will disable the workaround by d196 4 a199 4 --enable-fix-cortex-a53-835769 or --disable-fix-cortex-a53-835769 is given at configure time.
To enable a workaround for the Cortex-A53 erratum number 843419 by default d201 1 a201 1 --enable-fix-cortex-a53-843419 option. This workaround is applied at d204 2 a205 2 -mno-fix-cortex-a53-843419 option. Conversely, --disable-fix-cortex-a53-843419 will disable the workaround by default. d207 6 a212 7 --enable-fix-cortex-a53-843419 or --disable-fix-cortex-a53-843419 is given at configure time.
alpha*-*-*
d217 2 a218 2We require binutils 2.11.2 or newer. d222 4 a225 5
alpha*-dec-osf5.1
d229 2 a230 2Support for Tru64 UNIX V5.1 has been removed in GCC 4.8. As of GCC 4.6, d234 23 a256 25
amd64-*-solaris2.1[0-9]*
This is a synonym for ‘x86_64-*-solaris2.1[0-9]*’.
arc-*-elf32
Use ‘configure --target=arc-elf32 --with-cpu=cpu --enable-languages="c,c++"’ to configure GCC, with cpu being one of ‘arc600’, ‘arc601’, or ‘arc700’.
arc-linux-uclibc
Use ‘configure --target=arc-linux-uclibc --with-cpu=arc700 --enable-languages="c,c++"’ to configure GCC.
arm-*-eabi
d261 4 a264 9Building the Ada frontend commonly fails (an infinite loop executing
xsinfo) if the host compiler is GNAT 4.8. Host compilers built from the GNAT 4.6, 4.9 or 5 release branches are known to succeed.
avr
d266 1 a266 1 applications. There are no standard Unix configurations. d269 4 a272 4Use ‘configure --target=avr --enable-languages="c"’ to configure GCC.
Further installation notes and other useful information about AVR tools d274 19 a292 18
We strongly recommend using binutils 2.13 or newer.
The following error:
Error: register requiredindicates that you should upgrade to a newer version of the binutils.
Blackfin
The Blackfin processor, an Analog Devices DSP. d294 2 a295 2
More information, and a version of binutils with support for this processor, d297 4 a300 5
CR16
d303 1 d305 11 a315 12See “CR16 Options” in the main manual for a list of CR16-specific options.
Use ‘configure --target=cr16-elf --enable-languages=c,c++’ to configure GCC for building a CR16 elf cross-compiler.
Use ‘configure --target=cr16-uclinux --enable-languages=c,c++’ to configure GCC for building a CR16 uclinux cross-compiler.
CRIS
d318 2 a319 2See “CRIS Options” in the main manual d321 11 a331 7
There are a few different CRIS targets:
cris-axis-elf- Mainly for monolithic embedded systems. Includes a multilib for the ‘v10’ core used in ‘ETRAX 100 LX’.
cris-axis-linux-gnu- A GNU/Linux port for the CRIS architecture, currently targeting ‘ETRAX 100 LX’ by default. d334 1 a334 1
For
cris-axis-elfyou need binutils 2.11 d336 2 a337 2Pre-packaged tools can be obtained from d341 4 a344 5
DOS
d346 2 a347 2You cannot install GCC by itself on MSDOS; it will not compile under d351 5 a355 6
epiphany-*-elf
Adapteva Epiphany. d357 4 a360 5
*-*-freebsd*
d364 2 a365 2In order to better utilize FreeBSD base system functionality and match d370 1 a370 1 libgcc_s.so.1 and boehm-gc (on FreeBSD 7 or later) is enabled d372 4 a375 4
We support FreeBSD using the ELF file format with DWARF 2 debugging for all CPU architectures. You may use -gstabs instead of -g, if you really want the old debugging format. There are d379 1 a379 1 GCC. In particular, --enable-threads is now configured by d385 2 a386 2
The version of binutils installed in /usr/bin probably works d388 1 a388 1 binutils and/or the version found in /usr/ports/devel/binutils has d393 4 a396 12
ft32-*-elf
The FT32 processor. This configuration is intended for embedded systems.
h8300-hms
d398 4 a401 4Please have a look at the binaries page.
The calling convention and structure layout has changed in release 2.6. d405 4 a408 5
hppa*-hp-hpux*
d410 2 a411 2We require using gas/binutils on all hppa platforms. Version 2.19 or d413 7 a419 7
It may be helpful to configure GCC with the --with-gnu-as and --with-as=... options to ensure that GCC can find GAS.
The HP assembler should not be used with GCC. It is rarely tested and may not work. It shouldn't be used with any languages other than C due to its d421 2 a422 2
Specifically, -g does not work (HP-UX uses a peculiar debugging d426 3 a428 3 ‘make all-host all-target’ after getting the failure from ‘make’.
Various GCC features are not supported. For example, it does not support weak d432 2 a433 2
There are two default scheduling models for instructions. These are d435 1 a435 1 architecture specified for the target machine when configuring. d437 3 a439 3 the target is a ‘hppa1*’ machine.
The PROCESSOR_8000 model is not well suited to older processors. Thus, d444 3 a446 3
As of GCC 4.0, GCC uses the UNIX 95 namespace for HP-UX 10.10 through 11.00, and the UNIX 98 namespace for HP-UX 11.11 and later. d450 3 a452 3 in a number of ways. With HP cc, UNIX_STD can be set to ‘95’ or ‘98’. Another way is to add an appropriate set of predefines to CC. The description for the munix= option contains d454 6 a459 7
More specific information to ‘hppa*-hp-hpux*’ targets follows.
hppa*-hp-hpux10
d462 2 a463 2The C++ ABI has changed incompatibly in GCC 4.0. COMDAT subspaces are d467 4 a470 5
hppa*-hp-hpux11
d473 4 a476 4The libffi and libjava libraries haven't been ported to 64-bit HP-UX and don't build.
Refer to binaries for information about obtaining d478 1 a478 1 to build the Ada language as it can't be bootstrapped using C. Ada is d480 3 a482 3
Starting with GCC 3.4 an ISO C compiler is required to bootstrap. The bundled compiler supports only traditional C; you will need either HP's d484 2 a485 2
It is possible to build GCC 3.3 starting with the bundled HP compiler, d488 1 a488 1 can't be built with the HP bundled compiler. This problem can be d490 1 a490 1 --enable-languages="c,c++,f77,objc" option in your configure d492 2 a493 2
There are several possible approaches to building the distribution. d496 1 a496 1 first using the HP tools, then build binutils, then rebuild GCC. d499 2 a500 2
On 64-bit capable systems, there are two distinct targets. Different d502 3 a504 3 the same system. The ‘hppa[1-2]*-hp-hpux11*’ target generates code for the 32-bit PA-RISC runtime architecture and uses the HP linker. The ‘hppa64-hp-hpux11*’ target generates 64-bit code for the d506 11 a516 11
The script config.guess now selects the target type based on the compiler detected during configuration. You must define PATH or CC so that configure finds an appropriate compiler for the initial bootstrap. When CC is used, the definition should contain the options that are needed whenever CC is used.
Specifically, options that determine the runtime architecture must be in CC to correctly select the target for the build. It is also convenient to place many other compiler options in CC. For example, CC="cc -Ac +DA2.0W -Wp,-H16376 -D_CLASSIC_TYPES -D_HPUX_SOURCE" d518 2 a519 2 64-bit K&R/bundled mode. The +DA2.0W option will result in the automatic selection of the ‘hppa64-hp-hpux11*’ target. The d523 4 a526 4 -Ac option. These defines aren't necessary with -Ae.
It is best to explicitly configure the ‘hppa64-hp-hpux11*’ target with the --with-ld=... option. This overrides the standard d529 1 a529 1 result, it's not possible to switch linkers in the middle of a GCC build. d532 2 a533 2
A recent linker patch must be installed for the correct operation of d537 1 a537 1
PHSS_24304, might be usable but it hasn't been tested. These d540 2 a541 2The patches are necessary for the support of weak symbols on the d544 1 a544 1 to HP-UX 11, there are bugs in the linker support for secondary symbols. d548 2 a549 2
GCC 3.3 uses the ELF DT_INIT_ARRAY and DT_FINI_ARRAY capabilities to d551 1 a551 1 uses the linker +init and +fini options for the same d554 1 a554 1 problem on the 64-bit port resulting from HP's non-standard use of d556 3 a558 3
Although the HP and GNU linkers are both supported for the ‘hppa64-hp-hpux11*’ target, it is strongly recommended that the d560 3 a562 3
At this time, the GNU linker does not support the creation of long branch stubs. As a result, it can't successfully link binaries d565 5 a569 5 with -static, and with dwarf2 unwind and exception support. It also doesn't provide stubs for internal calls to global functions in shared libraries, so these calls can't be overloaded.
The HP dynamic loader does not support GNU symbol versioning, so symbol d571 8 a578 9 versioning with --disable-symvers when using GNU ld.
POSIX threads are the default. The optional DCE thread library is not supported, so --enable-threads=dce does not work.
*-*-linux-gnu
d582 5 a586 6
i?86-*-linux*
As of GCC 3.3, binutils 2.13.1 or later is required for this platform. d588 2 a589 2
If you receive Signal 11 errors when building on GNU/Linux, then it is d592 4 a595 5
i?86-*-solaris2.10
d597 25 a621 33 with GCC 4.7, there is also a 64-bit ‘amd64-*-solaris2.1[0-9]*’ or ‘x86_64-*-solaris2.1[0-9]*’ configuration that corresponds to ‘sparcv9-sun-solaris2*’.It is recommended that you configure GCC to use the GNU assembler. The versions included in Solaris 10, from GNU binutils 2.15 (in /usr/sfw/bin/gas), and Solaris 11, from GNU binutils 2.19 or newer (also available as /usr/bin/gas and /usr/gnu/bin/as), work fine. Please note that the current version, from GNU binutils 2.26, only works on Solaris 12 when using the Solaris linker. On Solaris 10 and 11, you either have to wait for GNU binutils 2.26.1 or newer, or stay with GNU binutils 2.25.1. Recent versions of the Solaris assembler in /usr/ccs/bin/as work almost as well, though.
For linking, the Solaris linker, is preferred. If you want to use the GNU linker instead, note that due to a packaging bug the version in Solaris 10, from GNU binutils 2.15 (in /usr/sfw/bin/gld), cannot be used, while the version in Solaris 11, from GNU binutils 2.19 or newer (also in /usr/gnu/bin/ld and /usr/bin/gld), works, as does the latest version, from GNU binutils 2.26.
To use GNU as, configure with the options --with-gnu-as --with-as=/usr/sfw/bin/gas. It may be necessary to configure with --without-gnu-ld --with-ld=/usr/ccs/bin/ld to guarantee use of Sun ld.
ia64-*-linux
d624 3 a626 3If you are using the installed system libunwind library with --with-system-libunwind, then you must use libunwind 0.98 or d628 2 a629 2
None of the following versions of GCC has an ABI that is compatible d632 3 a634 3 3.1, 3.0.2, 3.0.1, 3.0, Red Hat 2.96, and Trillian 000717. This primarily affects C++ programs and programs that create shared libraries. GCC 3.1 or later is recommended for compiling linux, the kernel. d637 4 a640 5
ia64-*-hpux*
d643 6 a648 6 the option --with-gnu-as may be necessary.The GCC libunwind library has not been ported to HPUX. This means that for GCC versions 3.2.3 and earlier, --enable-libunwind-exceptions is required to build GCC. For GCC 3.3 and later, this is the default. For gcc 3.4.3 and later, --enable-libunwind-exceptions is d650 6 a655 7
*-ibm-aix*
Support for AIX version 3 and older was discontinued in GCC 3.4. d657 2 a658 2
“out of memory” bootstrap failures may indicate a problem with d660 3 a662 7 /etc/security/limits system configuration file.
GCC 4.9 and above require a C++ compiler for bootstrap. IBM VAC++ / xlC cannot bootstrap GCC. xlc can bootstrap an older version of GCC and G++ can bootstrap recent releases of GCC.
GCC can bootstrap with recent versions of IBM XLC, but bootstrapping d666 5 d672 2 a673 5
% LDR_CNTRL=MAXDATA=0x50000000 % export LDR_CNTRLOne can start with a pre-compiled version of GCC to build from sources. One may delete GCC's “fixed” header files when starting d675 8 d684 2 a685 7
To speed up the configuration phases of bootstrapping and installing GCC, one may use GNU Bash instead of AIX /bin/sh, e.g.,
% CONFIG_SHELL=/opt/freeware/bin/bash % export CONFIG_SHELLand then proceed as described in the build instructions, where we strongly recommend specifying an absolute path d687 2 a688 2
Because GCC on AIX is built as a 32-bit executable by default, d692 2 a693 2
Errors involving
allocawhen building GCC generally are due d696 5 a700 5 the build, the native AIX compiler must be invoked as cc (not xlc). Once configure has been informed of xlc, one needs to use ‘make distclean’ to remove the configure cache files and ensure that CC environment variable does not provide a definition that will confuse configure. d703 2 a704 2The native as and ld are recommended for d707 1 a707 1 AIX 5. The GNU Assembler has not been updated to support AIX 6 or d709 2 a710 8
AIX 7.1 added partial support for DWARF debugging, but full support requires AIX 7.1 TL03 SP7 that supports additional DWARF sections and fixes a bug in the assembler. AIX 7.1 TL03 SP5 distributed a version of libm.a missing important symbols; a fix for IV77796 will be included in SP6.
AIX 5.3 TL10, AIX 6.1 TL05 and AIX 7.1 TL00 introduced an AIX d718 2 a719 2
Building libstdc++.a requires a fix for an AIX Assembler bug d723 3 a725 3
‘libstdc++’ in GCC 3.4 increments the major version number of the shared object and GCC installation places the libstdc++.a d729 3 a731 3 versions of the ‘libstdc++’ shared object needs to be available to the AIX runtime loader. The GCC 3.1 ‘libstdc++.so.4’, if present, and GCC 3.3 ‘libstdc++.so.5’ shared objects can be d733 8 a740 2 the ‘F_LOADONLY’ flag in the shared object for each multilib libstdc++.a installed: d742 1 a742 5
Extract the shared objects from the currently installed libstdc++.a archive:
% ar -x libstdc++.a libstdc++.so.4 libstdc++.so.5Enable the ‘F_LOADONLY’ flag so that the shared object will be d744 12 a755 8
% strip -e libstdc++.so.4 libstdc++.so.5Archive the runtime-only shared object in the GCC 3.4 libstdc++.a archive:
% ar -q libstdc++.a libstdc++.so.4 libstdc++.so.5Eventually, the --with-aix-soname=svr4 d758 2 a759 2
Linking executables and shared libraries may produce warnings of d765 2 a766 2
AIX 4.3 utilizes a “large format” archive to support both 32-bit and d768 1 a768 1 to parse archive libraries did not handle the new format correctly. d771 1 a771 1 with AIX 4.3.1 should work for a 32-bit environment. The -g d775 3 a777 3
Some versions of the AIX binder (linker) can fail with a relocation overflow severe error when the -bbigtoc option is used to link d783 2 a784 2
The AIX 4.3.2.1 linker (bos.rte.bind_cmds Level 4.3.2.1) will dump core d789 2 a790 2
The initial assembler shipped with AIX 4.3.0 generates incorrect object d795 2 a796 2
AIX provides National Language Support (NLS). Compilers and assemblers d798 1 a798 1 formats including floating-point numbers (e.g., ‘.’ vs ‘,’ for d801 9 a809 10 expects. If one encounters this problem, set the LANG environment variable to ‘C’ or ‘En_US’.
A default can be specified with the -mcpu=cpu_type switch and using the configure option --with-cpu-cpu_type.
iq2000-*-elf
d812 5 a816 6
lm32-*-elf
Lattice Mico32 processor. d818 5 a822 6
lm32-*-uclinux
Lattice Mico32 processor. d824 5 a828 6
m32c-*-elf
Renesas M32C processor. d830 5 a834 6
m32r-*-elf
Renesas M32R processor. d836 4 a839 5
m68k-*-*
d841 2 a842 2 ‘m68k-*-elf*’, ‘m68k-*-rtems’, ‘m68k-*-uclinux’ and ‘m68k-*-linux’ d845 3 a847 3 --with-arch=m68k to configure. Alternatively, you can omit the M680x0 libraries by passing --with-arch=cf to configure. These targets default to 5206 or 5475 code as d849 4 a852 4 configured with --with-arch=cf and 68020 code otherwise.The ‘m68k-*-netbsd’ and ‘m68k-*-openbsd’ targets also support the --with-arch d854 13 a866 14 --with-arch=cf and 68020 code otherwise.
You can override the default processors listed above by configuring with --with-cpu=target. This target can either be a -mcpu argument or one of the following values: ‘m68000’, ‘m68010’, ‘m68020’, ‘m68030’, ‘m68040’, ‘m68060’, ‘m68020-40’ and ‘m68020-60’.
GCC requires at least binutils version 2.17 on these targets.
m68k-*-uclinux
d868 1 a868 1 ‘m68k-linux-gnu’ ABI rather than the ‘m68k-elf’ ABI. d871 5 a875 6
mep-*-elf
Toshiba Media embedded Processor. d877 5 a881 6
microblaze-*-elf
Xilinx MicroBlaze processor. d883 4 a886 5
mips-*-*
d888 1 a888 1 sections for all it's [sic] sectons [sic]”, don't worry about it. This d892 2 a893 2It would be nice to extend GAS to produce the gp tables, but they are d895 2 a896 2
The libstdc++ atomic locking routines for MIPS targets requires MIPS II d898 3 a900 3 make ‘mips*-*-*’ use the generic implementation instead. You can also configure for ‘mipsel-elf’ as a workaround. The ‘mips*-*-linux*’ target continues to use the MIPS II routines. More d902 1 d904 4 a907 6
The built-in
__sync_*functions are available on MIPS II and later systems and others that support the ‘ll’, ‘sc’ and ‘sync’ instructions. This can be overridden by passing --with-llsc or --without-llsc when configuring GCC. d909 4 a912 4 missing, the default for ‘mips*-*-linux*’ targets is --with-llsc. The --with-llsc and --without-llsc configure options may be overridden at compile time by passing the -mllsc or -mno-llsc options to d914 3 a916 3MIPS systems check for division by zero (unless -mno-check-zero-division is passed to the compiler) by d921 2 a922 2 the use of break, use the --with-divide=breaks configure option when configuring GCC. The default is to d924 2 a925 2
The assembler from GNU binutils 2.17 and earlier has a bug in the way d929 1 a929 1 runtime linker stubs in very large programs, like libgcj.so, to d932 4 a935 5
mips-sgi-irix5
d937 4 a940 5
mips-sgi-irix6
d944 4 a947 5
moxie-*-elf
d949 5 a953 6
msp430-*-elf
TI MSP430 processor. d955 4 a958 5
nds32le-*-elf
d960 4 a963 5
nds32be-*-elf
d965 4 a968 5
nvptx-*-none
d970 3 a972 3Instead of GNU binutils, you will need to install nvptx-tools. d974 4 a977 4 --with-build-time-tools=[install-nvptx-tools]/nvptx-none/bin.
A nvptx port of newlib is available at nvptx-newlib. d979 1 a979 1 symbolic link to nvptx-newlib's newlib directory to the d981 11 a991 12
Use the --disable-sjlj-exceptions and --enable-newlib-io-long-long options when configuring.
powerpc-*-*
You can specify a default version for the -mcpu=cpu_type switch by using the configure option --with-cpu-cpu_type.
You will need d994 4 a997 5
powerpc-*-darwin*
d999 2 a1000 2Pre-installed versions of Mac OS X may not include any developer tools, d1004 2 a1005 2
This version of GCC requires at least cctools-590.36. The d1009 4 a1012 5
powerpc-*-elf
d1014 4 a1017 5
powerpc*-*-linux-gnu*
d1019 4 a1022 5
powerpc-*-netbsd*
d1024 4 a1027 5
powerpc-*-eabisim
d1030 4 a1033 5
powerpc-*-eabi
d1035 4 a1038 5
powerpcle-*-elf
d1040 4 a1043 5
powerpcle-*-eabisim
d1046 4 a1049 5
powerpcle-*-eabi
d1051 5 a1055 6
rl78-*-elf
The Renesas RL78 processor. d1057 4 a1060 5
rx-*-elf
d1064 4 a1067 5
s390-*-linux*
d1069 4 a1072 5
s390x-*-linux*
d1074 4 a1077 5
s390x-ibm-tpf*
d1080 4 a1083 9
*-*-solaris2*
d1087 2 a1088 2Sun does not ship a C compiler with Solaris 2 before Solaris 10, though d1090 2 a1091 3 11, GCC 3.4.3 is available as /usr/sfw/bin/gcc. Solaris 11 also provides GCC 4.5.2, 4.7.3, and 4.8.2 as /usr/gcc/4.5/bin/gcc or similar. Alternatively, d1094 3 a1096 3
The Solaris 2 /bin/sh will often fail to configure ‘libstdc++-v3’, ‘boehm-gc’ or ‘libjava’. We therefore d1098 5 d1104 1 a1104 4
% CONFIG_SHELL=/bin/ksh % export CONFIG_SHELLand proceed as described in the configure instructions. d1106 3 a1108 3 srcdir/configure.
Solaris 10 comes with a number of optional OS packages. Some of these d1112 6 a1117 5 optional packages when installing Solaris 10, you will need to verify that the packages that GCC needs are installed. To check whether an optional package is installed, use the pkginfo command. To add an optional package, use the pkgadd command. For further details, see the Solaris 10 d1119 3 a1121 8
Starting with Solaris 11, the package management has changed, so you need to check for
system/header,system/linker, anddeveloper/assemblerpackages. Checking for and installing packages is done with the pkg command now.Trying to use the linker and other tools in /usr/ucb to install GCC has been observed to cause trouble. d1123 17 a1139 21 /usr/ucb from your PATH.
The build process works more smoothly with the legacy Sun tools so, if you have /usr/xpg4/bin in your PATH, we recommend that you place /usr/bin before /usr/xpg4/bin for the duration of the build.
We recommend the use of the Solaris assembler or the GNU assembler, in conjunction with the Solaris linker. The GNU as versions included in Solaris 10, from GNU binutils 2.15 (in /usr/sfw/bin/gas), and Solaris 11, from GNU binutils 2.19 or newer (also in /usr/bin/gas and /usr/gnu/bin/as), are known to work. Current versions of GNU binutils (2.26) are known to work as well, with the caveat mentioned in i?86-*-solaris2.10 . Note that your mileage may vary if you use a combination of the GNU tools and the Solaris tools: while the combination GNU as + Sun ld should reasonably work, the reverse combination Sun as + GNU ld may fail to build or cause memory corruption at runtime in some cases for C++ programs. GNU ld usually works as well, although the version included in d1141 22 a1162 17 version (2.26) is known to work, but generally lacks platform specific features, so better stay with Solaris ld. To use the LTO linker plugin (-fuse-linker-plugin) with GNU ld, GNU binutils must be configured with --enable-largefile.
To enable symbol versioning in ‘libstdc++’ with the Solaris linker, you need to have any version of GNU c++filt, which is part of GNU binutils. ‘libstdc++’ symbol versioning will be disabled if no appropriate version is found. Solaris c++filt from the Solaris Studio compilers does not work.
GNU make version 3.81 or later is required to build libjava with the Solaris linker.
Sun bug 4927647 sometimes causes random spurious testsuite failures related to missing diagnostic output. This bug doesn't affect GCC itself, rather it is a kernel bug triggered by the expect d1164 1 a1164 1 causes the expect program to miss anticipated output, extra d1166 4 a1169 5
sparc*-*-*
d1173 2 a1174 2Newer versions of the GNU Multiple Precision Library (GMP), the MPFR d1179 4 a1182 5
sparc-sun-solaris2*
d1184 1 a1184 1 produced are smaller than the ones produced using Sun's native tools; d1187 2 a1188 2Starting with Solaris 7, the operating system is capable of executing d1190 1 a1190 1 this; the -m64 option enables 64-bit code generation. d1192 1 a1192 1 should try the -mtune=ultrasparc option instead, which produces d1195 35 a1229 2
When configuring the GNU Multiple Precision Library (GMP), the MPFR d1231 2 a1232 2 target triplet must be specified as the build parameter on the configure line. This target triplet can be obtained by invoking ./config.guess in the toplevel source directory of GCC (and d1234 8 a1241 7
% ./configure --build=sparc-sun-solaris2.9 --prefix=xxx
sparc-sun-solaris2.10
d1244 11 a1254 9ld: fatal: relocation error: R_SPARC_TLS_LE_HIX22: file /var/tmp//ccamPA1v.o: symbol <unknown>: bad symbol type SECT: symbol type must be TLSThis bug is fixed in Sun patch 118683-03 or later.
sparc-*-linux*
d1259 1 d1261 3 a1263 4
sparc64-*-solaris2*
d1266 1 a1266 1 as the build parameter on the configure line. For example d1268 23 a1290 13% ./configure --build=sparc64-sun-solaris2.9 --prefix=xxx
sparcv9-*-solaris2*
This is a synonym for ‘sparc64-*-solaris2*’.
c6x-*-*
d1292 4 a1295 5
tilegx-*-linux*
d1298 4 a1301 5
tilegxbe-*-linux*
d1304 4 a1307 5
tilepro-*-linux*
d1310 5 a1314 6
visium-*-elf
CDS VISIUMcore processor. d1316 4 a1319 5
*-*-vxworks*
d1321 2 a1322 2 very recent VxWorks 5.5 (aka Tornado 2.2) release, and only on PowerPC. We welcome patches for other architectures supported by VxWorks 5.5. d1327 12 a1338 12VxWorks comes with an older version of GCC installed in $WIND_BASE/host; we recommend you do not overwrite it. Choose an installation prefix entirely outside $WIND_BASE. Before running configure, create the directories prefix and prefix/bin. Link or copy the appropriate assembler, linker, etc. into prefix/bin, and set your PATH to include that directory while running both configure and make.
You must give configure the --with-headers=$WIND_BASE/target/h switch so that it can d1340 4 a1343 4 target only, you must also specify --target=target. configure will attempt to create the directory prefix/target/sys-include and copy files into it; make sure the user running configure has sufficient privilege d1345 3 a1347 3
GCC's exception handling runtime requires a special “configlette” module, contrib/gthr_supp_vxw_5x.c. Follow the instructions in d1350 4 a1353 5
x86_64-*-*, amd64-*-*
d1355 1 a1355 1 (amd64-*-* is an alias for x86_64-*-*) on GNU/Linux, FreeBSD and NetBSD. d1357 5 a1361 6 both 64-bit x86-64 and 32-bit x86 code (via the -m32 switch).
x86_64-*-solaris2.1[0-9]*
d1363 1 a1363 1 processor (‘amd64-*-*’ is an alias for ‘x86_64-*-*’) on d1366 10 a1375 11 can generate 64-bit x86-64 code with the -m64 switch. Since GCC 4.7, there is also a configuration that defaults to 64-bit code, but can generate 32-bit code with -m32. To configure and build this way, you have to provide all support libraries like libgmp as 64-bit code, configure with --target=x86_64-pc-solaris2.1x and ‘CC=gcc -m64’.
xtensa*-*-elf
d1377 1 a1377 1 ‘newlib’ C library. It uses ELF but does not support shared d1381 3 a1383 3The Xtensa configuration information must be specified prior to building GCC. The include/xtensa-config.h header d1388 4 a1391 5
xtensa*-*-linux*
d1395 1 a1395 1 -fpic or -fPIC options are used. In other d1397 5 a1401 7 ‘xtensa*-*-elf’ target.
Microsoft Windows
Intel 16-bit versions
d1403 2 d1407 2 a1408 2However, the 32-bit port has limited support for Microsoft d1410 3 a1412 3
Intel 32-bit versions
d1417 11 d1429 2 a1430 13
- Cygwin *-*-cygwin: Cygwin provides a user-space Linux API emulation layer in the Win32 subsystem.
- Interix *-*-interix: The Interix subsystem provides native support for POSIX.
- MinGW *-*-mingw32: MinGW is a native GCC port for the Win32 subsystem that provides a subset of POSIX.
- MKS i386-pc-mks: NuTCracker from MKS. See http://www.mkssoftware.com/ for more information.
Intel 64-bit versions
d1432 1 a1432 1 runtime library, available from http://mingw-w64.sourceforge.net/. d1434 5 a1438 5Presently Windows for Itanium is not supported.
Windows CE
d1441 3 a1443 3Other Windows Platforms
d1445 2 a1446 2GCC no longer supports the Windows POSIX subsystem. However, it does d1448 4 a1451 4
Old target names including *-*-winnt and *-*-windowsnt are no longer used.
PW32 (i386-pc-pw32) support was never completed, and the project seems to d1453 6 a1458 7
UWIN support has been removed due to a lack of maintenance.
*-*-cygwin
d1461 5 a1465 5GCC will build under Cygwin without modification; it does not build with Microsoft's C++ compiler and there are no plans to make it do so.
The Cygwin native compiler can be configured to target any 32-bit x86 d1470 4 a1473 5
*-*-interix
d1478 5 a1482 6
*-*-mingw32
GCC will build with and support only MinGW runtime 3.12 and later. d1485 4 a1488 5
Older systems
d1493 2 a1494 2Starting with GCC 3.1, each release has a list of “obsoleted” systems. d1496 1 a1496 1 configure will fail unless the --enable-obsolete d1499 2 a1500 2
Support for old systems as hosts for GCC can cause problems if the d1507 3 a1509 2 old-releases directory on the GCC mirror sites. Header bugs may generally be avoided using fixincludes, but bugs or deficiencies in libraries and the d1511 2 a1512 2
Support for older systems as targets for cross-compilation is less d1520 3 a1522 3
For some systems, old versions of GNU binutils may also be useful, and are available from pub/binutils/old-releases on d1524 2 a1525 2
Some of the information on specific systems above relates to d1529 4 a1532 5
all ELF targets (SVR4, Solaris 2, etc.)
d1537 1 d1539 2 a1540 1
d1542 5 a1547 5 d1549 2 @ 1.1.1.8 log @import GCC 6.5.0. this is largely a maint release with no particularly features listed here: http://gcc.gnu.org/gcc-6/changes.html this fixes over 250 PRs in the GCC bugzilla: https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=6.5 @ text @d1 10 a10 3Installing GCC d47 4 a50 33 d52 76 d129 2 a130 5Installing GCC
d132 1 d134 3 d138 9 d148 10 d159 1 d161 1 d163 4 d168 4 d173 1 d175 1 d177 3 d181 4 d186 1 d188 1 d190 1 d192 1 d194 1 d196 3 d200 1 d202 1 d204 1 d206 1 d208 1 a208 5 a209 162Please read this document carefully before installing the GNU Compiler Collection on your machine.
Note that this list of install notes is not a list of supported hosts or targets. Not all supported hosts and targets are listed here, only the ones that require host-specific or target-specific information have to.
- aarch64*-*-*
- alpha*-*-*
- alpha*-dec-osf5.1
- amd64-*-solaris2.10
- arm-*-eabi
- avr
- Blackfin
- DOS
- *-*-freebsd*
- h8300-hms
- hppa*-hp-hpux*
- hppa*-hp-hpux10
- hppa*-hp-hpux11
- *-*-linux-gnu
- i?86-*-linux*
- i?86-*-solaris2.10
- ia64-*-linux
- ia64-*-hpux*
- *-ibm-aix*
- iq2000-*-elf
- lm32-*-elf
- lm32-*-uclinux
- m32c-*-elf
- m32r-*-elf
- m68k-*-*
- m68k-uclinux
- mep-*-elf
- microblaze-*-elf
- mips-*-*
- mips-sgi-irix5
- mips-sgi-irix6
- nds32le-*-elf
- nds32be-*-elf
- nvptx-*-none
- powerpc*-*-*
- powerpc-*-darwin*
- powerpc-*-elf
- powerpc*-*-linux-gnu*
- powerpc-*-netbsd*
- powerpc-*-eabisim
- powerpc-*-eabi
- powerpcle-*-elf
- powerpcle-*-eabisim
- powerpcle-*-eabi
- s390-*-linux*
- s390x-*-linux*
- s390x-ibm-tpf*
- *-*-solaris2*
- sparc*-*-*
- sparc-sun-solaris2*
- sparc-sun-solaris2.10
- sparc-*-linux*
- sparc64-*-solaris2*
- sparcv9-*-solaris2*
- c6x-*-*
- tilegx-*-linux*
- tilegxbe-*-linux*
- tilepro-*-linux*
- visium-*-elf
- *-*-vxworks*
- x86_64-*-*, amd64-*-*
- x86_64-*-solaris2.1[0-9]*
- xtensa*-*-elf
- xtensa*-*-linux*
- Microsoft Windows
- *-*-cygwin
- *-*-interix
- *-*-mingw32
- OS/2
- Older systems
- all ELF targets (SVR4, Solaris 2, etc.)
aarch64*-*-*
Binutils pre 2.24 does not have support for selecting -mabi and does not support ILP32. If it is used to build GCC 4.9 or later, GCC will not support option -mabi=ilp32.
To enable a workaround for the Cortex-A53 erratum number 835769 by default (for all CPUs regardless of -mcpu option given) at configure time use the --enable-fix-cortex-a53-835769 option. This will enable the fix by default and can be explicitly disabled during compilation by passing the -mno-fix-cortex-a53-835769 option. Conversely, --disable-fix-cortex-a53-835769 will disable the workaround by default. The workaround is disabled by default if neither of --enable-fix-cortex-a53-835769 or --disable-fix-cortex-a53-835769 is given at configure time.
To enable a workaround for the Cortex-A53 erratum number 843419 by default (for all CPUs regardless of -mcpu option given) at configure time use the --enable-fix-cortex-a53-843419 option. This workaround is applied at link time. Enabling the workaround will cause GCC to pass the relevant option to the linker. It can be explicitly disabled during compilation by passing the -mno-fix-cortex-a53-843419 option. Conversely, --disable-fix-cortex-a53-843419 will disable the workaround by default. The workaround is disabled by default if neither of --enable-fix-cortex-a53-843419 or --disable-fix-cortex-a53-843419 is given at configure time.
alpha*-*-*
This section contains general configuration information for all alpha-based platforms using ELF (in particular, ignore this section for DEC OSF/1, Digital UNIX and Tru64 UNIX). In addition to reading this section, please read all other sections that match your target.
We require binutils 2.11.2 or newer. Previous binutils releases had a number of problems with DWARF 2 debugging information, not the least of which is incorrect linking of shared libraries.
alpha*-dec-osf5.1
Systems using processors that implement the DEC Alpha architecture and are running the DEC/Compaq/HP Unix (DEC OSF/1, Digital UNIX, or Compaq/HP Tru64 UNIX) operating system, for example the DEC Alpha AXP systems.
Support for Tru64 UNIX V5.1 has been removed in GCC 4.8. As of GCC 4.6, support for Tru64 UNIX V4.0 and V5.0 has been removed. As of GCC 3.2, versions before
alpha*-dec-osf4are no longer supported. (These are the versions which identify themselves as DEC OSF/1.)
amd64-*-solaris2.1[0-9]*
This is a synonym for ‘x86_64-*-solaris2.1[0-9]*’.
arc-*-elf32
Use ‘configure --target=arc-elf32 --with-cpu=cpu --enable-languages="c,c++"’ to configure GCC, with cpu being one of ‘arc600’, ‘arc601’, or ‘arc700’.
arc-linux-uclibc
Use ‘configure --target=arc-linux-uclibc --with-cpu=arc700 --enable-languages="c,c++"’ to configure GCC.
arm-*-eabi
d214 2 a215 2Building the Ada frontend commonly fails (an infinite loop executing d218 5 a222 4
avr
d224 1 a224 1 applications. There are no standard Unix configurations. d227 4 a230 4Use ‘configure --target=avr --enable-languages="c"’ to configure GCC.
Further installation notes and other useful information about AVR tools d232 18 a249 19
We strongly recommend using binutils 2.13 or newer.
The following error:
Error: register requiredindicates that you should upgrade to a newer version of the binutils.
Blackfin
The Blackfin processor, an Analog Devices DSP. d251 2 a252 2
More information, and a version of binutils with support for this processor, d254 5 a258 4
CR16
a260 1 d262 12 a273 11See “CR16 Options” in the main manual for a list of CR16-specific options.
Use ‘configure --target=cr16-elf --enable-languages=c,c++’ to configure GCC for building a CR16 elf cross-compiler.
Use ‘configure --target=cr16-uclinux --enable-languages=c,c++’ to configure GCC for building a CR16 uclinux cross-compiler.
CRIS
d276 2 a277 2See “CRIS Options” in the main manual d279 7 a285 11
There are a few different CRIS targets:
cris-axis-elfMainly for monolithic embedded systems. Includes a multilib for the ‘v10’ core used in ‘ETRAX 100 LX’.
cris-axis-linux-gnu- d288 1 a288 1
A GNU/Linux port for the CRIS architecture, currently targeting ‘ETRAX 100 LX’ by default.
For
cris-axis-elfyou need binutils 2.11 d290 2 a291 2Pre-packaged tools can be obtained from d295 5 a299 4
DOS
d301 2 a302 2You cannot install GCC by itself on MSDOS; it will not compile under d306 6 a311 5
epiphany-*-elf
Adapteva Epiphany. d313 5 a317 4
*-*-freebsd*
d321 2 a322 2In order to better utilize FreeBSD base system functionality and match d327 1 a327 1 libgcc_s.so.1 and boehm-gc (on FreeBSD 7 or later) is enabled d329 4 a332 4
We support FreeBSD using the ELF file format with DWARF 2 debugging for all CPU architectures. You may use -gstabs instead of -g, if you really want the old debugging format. There are d336 1 a336 1 GCC. In particular, --enable-threads is now configured by d342 2 a343 2
The version of binutils installed in /usr/bin probably works d345 1 a345 1 binutils and/or the version found in /usr/ports/devel/binutils has d350 6 a355 5
ft32-*-elf
The FT32 processor. d357 5 a361 4
h8300-hms
d363 4 a366 4Please have a look at the binaries page.
The calling convention and structure layout has changed in release 2.6. d370 5 a374 4
hppa*-hp-hpux*
d376 2 a377 2We require using gas/binutils on all hppa platforms. Version 2.19 or d379 7 a385 7
It may be helpful to configure GCC with the --with-gnu-as and --with-as=… options to ensure that GCC can find GAS.
The HP assembler should not be used with GCC. It is rarely tested and may not work. It shouldn’t be used with any languages other than C due to its d387 2 a388 2
Specifically, -g does not work (HP-UX uses a peculiar debugging d392 3 a394 3 ‘make all-host all-target’ after getting the failure from ‘make’.
Various GCC features are not supported. For example, it does not support weak d398 2 a399 2
There are two default scheduling models for instructions. These are d401 1 a401 1 architecture specified for the target machine when configuring. d403 3 a405 3 the target is a ‘hppa1*’ machine.
The PROCESSOR_8000 model is not well suited to older processors. Thus, d410 3 a412 3
As of GCC 4.0, GCC uses the UNIX 95 namespace for HP-UX 10.10 through 11.00, and the UNIX 98 namespace for HP-UX 11.11 and later. d416 3 a418 3 in a number of ways. With HP cc,
UNIX_STDcan be set to ‘95’ or ‘98’. Another way is to add an appropriate set of predefines toCC. The description for the munix= option contains d420 7 a426 6More specific information to ‘hppa*-hp-hpux*’ targets follows.
hppa*-hp-hpux10
d429 2 a430 2The C++ ABI has changed incompatibly in GCC 4.0. COMDAT subspaces are d434 5 a438 4
hppa*-hp-hpux11
d441 4 a444 4The libffi and libjava libraries haven’t been ported to 64-bit HP-UX and don’t build.
Refer to binaries for information about obtaining d446 1 a446 1 to build the Ada language as it can’t be bootstrapped using C. Ada is d448 3 a450 3
Starting with GCC 3.4 an ISO C compiler is required to bootstrap. The bundled compiler supports only traditional C; you will need either HP’s d452 2 a453 2
It is possible to build GCC 3.3 starting with the bundled HP compiler, d456 1 a456 1 can’t be built with the HP bundled compiler. This problem can be d458 1 a458 1 --enable-languages="c,c++,f77,objc" option in your configure d460 2 a461 2
There are several possible approaches to building the distribution. d464 1 a464 1 first using the HP tools, then build binutils, then rebuild GCC. d467 2 a468 2
On 64-bit capable systems, there are two distinct targets. Different d470 3 a472 3 the same system. The ‘hppa[1-2]*-hp-hpux11*’ target generates code for the 32-bit PA-RISC runtime architecture and uses the HP linker. The ‘hppa64-hp-hpux11*’ target generates 64-bit code for the d474 11 a484 11
The script config.guess now selects the target type based on the compiler detected during configuration. You must define
PATHorCCso that configure finds an appropriate compiler for the initial bootstrap. WhenCCis used, the definition should contain the options that are needed wheneverCCis used.Specifically, options that determine the runtime architecture must be in
CCto correctly select the target for the build. It is also convenient to place many other compiler options inCC. For example,CC="cc -Ac +DA2.0W -Wp,-H16376 -D_CLASSIC_TYPES -D_HPUX_SOURCE"d486 2 a487 2 64-bit K&R/bundled mode. The +DA2.0W option will result in the automatic selection of the ‘hppa64-hp-hpux11*’ target. The d491 4 a494 4 -Ac option. These defines aren’t necessary with -Ae.It is best to explicitly configure the ‘hppa64-hp-hpux11*’ target with the --with-ld=… option. This overrides the standard d497 1 a497 1 result, it’s not possible to switch linkers in the middle of a GCC build. d500 2 a501 2
A recent linker patch must be installed for the correct operation of d505 1 a505 1
PHSS_24304, might be usable but it hasn’t been tested. These d508 2 a509 2The patches are necessary for the support of weak symbols on the d512 1 a512 1 to HP-UX 11, there are bugs in the linker support for secondary symbols. d516 2 a517 2
GCC 3.3 uses the ELF DT_INIT_ARRAY and DT_FINI_ARRAY capabilities to d519 1 a519 1 uses the linker +init and +fini options for the same d522 1 a522 1 problem on the 64-bit port resulting from HP’s non-standard use of d524 3 a526 3
Although the HP and GNU linkers are both supported for the ‘hppa64-hp-hpux11*’ target, it is strongly recommended that the d528 3 a530 3
At this time, the GNU linker does not support the creation of long branch stubs. As a result, it can’t successfully link binaries d533 5 a537 5 with -static, and with dwarf2 unwind and exception support. It also doesn’t provide stubs for internal calls to global functions in shared libraries, so these calls can’t be overloaded.
The HP dynamic loader does not support GNU symbol versioning, so symbol d539 9 a547 8 versioning with --disable-symvers when using GNU ld.
POSIX threads are the default. The optional DCE thread library is not supported, so --enable-threads=dce does not work.
*-*-linux-gnu
d551 6 a556 5
i?86-*-linux*
As of GCC 3.3, binutils 2.13.1 or later is required for this platform. d558 2 a559 2
If you receive Signal 11 errors when building on GNU/Linux, then it is d562 5 a566 4
i?86-*-solaris2.10
d568 5 a572 5 with GCC 4.7, there is also a 64-bit ‘amd64-*-solaris2.1[0-9]*’ or ‘x86_64-*-solaris2.1[0-9]*’ configuration that corresponds to ‘sparcv9-sun-solaris2*’.It is recommended that you configure GCC to use the GNU assembler. The d574 3 a576 3 /usr/sfw/bin/gas), and Solaris 11, from GNU binutils 2.19 or newer (also available as /usr/bin/gas and /usr/gnu/bin/as), work fine. Please note that the current d580 5 a584 4 versions of the Solaris assembler in /usr/ccs/bin/as work almost as well, though.
For linking, the Solaris linker, is preferred. If you want to use the GNU d586 1 a586 1 10, from GNU binutils 2.15 (in /usr/sfw/bin/gld), cannot be used, d588 1 a588 1 in /usr/gnu/bin/ld and /usr/bin/gld), works, as does the d590 11 a600 9
To use GNU
as, configure with the options --with-gnu-as --with-as=/usr/sfw/bin/gas. It may be necessary to configure with --without-gnu-ld --with-ld=/usr/ccs/bin/ld to guarantee use of Sunld.
ia64-*-linux
d603 3 a605 3If you are using the installed system libunwind library with --with-system-libunwind, then you must use libunwind 0.98 or d607 2 a608 2
None of the following versions of GCC has an ABI that is compatible d611 3 a613 3 3.1, 3.0.2, 3.0.1, 3.0, Red Hat 2.96, and Trillian 000717. This primarily affects C++ programs and programs that create shared libraries. GCC 3.1 or later is recommended for compiling linux, the kernel. d616 5 a620 4
ia64-*-hpux*
d623 6 a628 6 the option --with-gnu-as may be necessary.The GCC libunwind library has not been ported to HPUX. This means that for GCC versions 3.2.3 and earlier, --enable-libunwind-exceptions is required to build GCC. For GCC 3.3 and later, this is the default. For gcc 3.4.3 and later, --enable-libunwind-exceptions is d630 7 a636 6
*-ibm-aix*
Support for AIX version 3 and older was discontinued in GCC 3.4. d638 2 a639 2
“out of memory” bootstrap failures may indicate a problem with d641 3 a643 3 /etc/security/limits system configuration file.
GCC 4.9 and above require a C++ compiler for bootstrap. IBM VAC++ / xlC d646 2 a647 2
GCC can bootstrap with recent versions of IBM XLC, but bootstrapping a650 5
d652 5 a656 2% LDR_CNTRL=MAXDATA=0x50000000 % export LDR_CNTRLOne can start with a pre-compiled version of GCC to build from sources. One may delete GCC’s “fixed” header files when starting a657 8
To speed up the configuration phases of bootstrapping and installing GCC, one may use GNU Bash instead of AIX
/bin/sh, e.g.,d659 7 a665 2% CONFIG_SHELL=/opt/freeware/bin/bash % export CONFIG_SHELLand then proceed as described in the build instructions, where we strongly recommend specifying an absolute path d667 2 a668 2
Because GCC on AIX is built as a 32-bit executable by default, d672 2 a673 2
Errors involving
allocawhen building GCC generally are due d676 5 a680 5 the build, the native AIX compiler must be invoked ascc(notxlc). Onceconfigurehas been informed ofxlc, one needs to use ‘make distclean’ to remove the configure cache files and ensure thatCCenvironment variable does not provide a definition that will confuseconfigure. d683 2 a684 2The native
asandldare recommended for d687 1 a687 1 AIX 5. The GNU Assembler has not been updated to support AIX 6 or d689 2 a690 2AIX 7.1 added partial support for DWARF debugging, but full support d695 2 a696 2
AIX 5.3 TL10, AIX 6.1 TL05 and AIX 7.1 TL00 introduced an AIX d704 2 a705 2
Building libstdc++.a requires a fix for an AIX Assembler bug d709 3 a711 3
‘libstdc++’ in GCC 3.4 increments the major version number of the shared object and GCC installation places the libstdc++.a d715 3 a717 3 versions of the ‘libstdc++’ shared object needs to be available to the AIX runtime loader. The GCC 3.1 ‘libstdc++.so.4’, if present, and GCC 3.3 ‘libstdc++.so.5’ shared objects can be d719 2 a720 8 the ‘F_LOADONLY’ flag in the shared object for each multilib libstdc++.a installed:
Extract the shared objects from the currently installed libstdc++.a archive:
d722 5 a726 1% ar -x libstdc++.a libstdc++.so.4 libstdc++.so.5Enable the ‘F_LOADONLY’ flag so that the shared object will be d728 8 a735 12
% strip -e libstdc++.so.4 libstdc++.so.5Archive the runtime-only shared object in the GCC 3.4 libstdc++.a archive:
% ar -q libstdc++.a libstdc++.so.4 libstdc++.so.5Eventually, the --with-aix-soname=svr4 d738 2 a739 2
Linking executables and shared libraries may produce warnings of d745 2 a746 2
AIX 4.3 utilizes a “large format” archive to support both 32-bit and d748 1 a748 1 to parse archive libraries did not handle the new format correctly. d751 1 a751 1 with AIX 4.3.1 should work for a 32-bit environment. The -g d755 3 a757 3
Some versions of the AIX binder (linker) can fail with a relocation overflow severe error when the -bbigtoc option is used to link d763 2 a764 2
The AIX 4.3.2.1 linker (bos.rte.bind_cmds Level 4.3.2.1) will dump core d769 2 a770 2
The initial assembler shipped with AIX 4.3.0 generates incorrect object d775 2 a776 2
AIX provides National Language Support (NLS). Compilers and assemblers d778 1 a778 1 formats including floating-point numbers (e.g., ‘.’ vs ‘,’ for d781 10 a790 9 expects. If one encounters this problem, set the
LANGenvironment variable to ‘C’ or ‘En_US’.A default can be specified with the -mcpu=cpu_type switch and using the configure option --with-cpu-cpu_type.
iq2000-*-elf
d793 6 a798 5
lm32-*-elf
Lattice Mico32 processor. d800 6 a805 5
lm32-*-uclinux
Lattice Mico32 processor. d807 6 a812 5
m32c-*-elf
Renesas M32C processor. d814 6 a819 5
m32r-*-elf
Renesas M32R processor. d821 5 a825 4
m68k-*-*
d827 2 a828 2 ‘m68k-*-elf*’, ‘m68k-*-rtems’, ‘m68k-*-uclinux’ and ‘m68k-*-linux’ d831 3 a833 3 --with-arch=m68k toconfigure. Alternatively, you can omit the M680x0 libraries by passing --with-arch=cf toconfigure. These targets default to 5206 or 5475 code as d835 4 a838 4 configured with --with-arch=cf and 68020 code otherwise.The ‘m68k-*-netbsd’ and ‘m68k-*-openbsd’ targets also support the --with-arch d840 14 a853 13 --with-arch=cf and 68020 code otherwise.
You can override the default processors listed above by configuring with --with-cpu=target. This target can either be a -mcpu argument or one of the following values: ‘m68000’, ‘m68010’, ‘m68020’, ‘m68030’, ‘m68040’, ‘m68060’, ‘m68020-40’ and ‘m68020-60’.
GCC requires at least binutils version 2.17 on these targets.
m68k-*-uclinux
d855 1 a855 1 ‘m68k-linux-gnu’ ABI rather than the ‘m68k-elf’ ABI. d858 6 a863 5
mep-*-elf
Toshiba Media embedded Processor. d865 6 a870 5
microblaze-*-elf
Xilinx MicroBlaze processor. d872 5 a876 4
mips-*-*
d878 1 a878 1 sections for all it’s [sic] sectons [sic]”, don’t worry about it. This d882 2 a883 2It would be nice to extend GAS to produce the gp tables, but they are d885 2 a886 2
The libstdc++ atomic locking routines for MIPS targets requires MIPS II d888 3 a890 3 make ‘mips*-*-*’ use the generic implementation instead. You can also configure for ‘mipsel-elf’ as a workaround. The ‘mips*-*-linux*’ target continues to use the MIPS II routines. More a891 1
d893 6 a898 4The built-in
__sync_*functions are available on MIPS II and later systems and others that support the ‘ll’, ‘sc’ and ‘sync’ instructions. This can be overridden by passing --with-llsc or --without-llsc when configuring GCC. d900 4 a903 4 missing, the default for ‘mips*-*-linux*’ targets is --with-llsc. The --with-llsc and --without-llsc configure options may be overridden at compile time by passing the -mllsc or -mno-llsc options to d905 3 a907 3MIPS systems check for division by zero (unless -mno-check-zero-division is passed to the compiler) by d912 2 a913 2 the use of break, use the --with-divide=breaks
configureoption when configuring GCC. The default is to d915 2 a916 2The assembler from GNU binutils 2.17 and earlier has a bug in the way d920 1 a920 1 runtime linker stubs in very large programs, like libgcj.so, to d923 5 a927 4
mips-sgi-irix5
d929 5 a933 4
mips-sgi-irix6
d937 5 a941 4
moxie-*-elf
d943 6 a948 5
msp430-*-elf
TI MSP430 processor. d950 5 a954 4
nds32le-*-elf
d956 5 a960 4
nds32be-*-elf
d962 5 a966 4
nvptx-*-none
d968 3 a970 3Instead of GNU binutils, you will need to install nvptx-tools. d972 4 a975 4 --with-build-time-tools=[install-nvptx-tools]/nvptx-none/bin.
A nvptx port of newlib is available at nvptx-newlib. d977 1 a977 1 symbolic link to nvptx-newlib’s newlib directory to the d979 12 a990 11
Use the --disable-sjlj-exceptions and --enable-newlib-io-long-long options when configuring.
powerpc-*-*
You can specify a default version for the -mcpu=cpu_type switch by using the configure option --with-cpu-cpu_type.
You will need d993 5 a997 4
powerpc-*-darwin*
d999 2 a1000 2Pre-installed versions of Mac OS X may not include any developer tools, d1004 2 a1005 2
This version of GCC requires at least cctools-590.36. The d1009 5 a1013 4
powerpc-*-elf
d1015 5 a1019 4
powerpc*-*-linux-gnu*
d1021 5 a1025 4
powerpc-*-netbsd*
d1027 5 a1031 4
powerpc-*-eabisim
d1034 5 a1038 4
powerpc-*-eabi
d1040 5 a1044 4
powerpcle-*-elf
d1046 5 a1050 4
powerpcle-*-eabisim
d1053 5 a1057 4
powerpcle-*-eabi
d1059 6 a1064 5
rl78-*-elf
The Renesas RL78 processor. d1066 5 a1070 4
rx-*-elf
d1074 5 a1078 4
s390-*-linux*
d1080 5 a1084 4
s390x-*-linux*
d1086 5 a1090 4
s390x-ibm-tpf*
d1093 9 a1101 4
*-*-solaris2*
d1105 2 a1106 2Sun does not ship a C compiler with Solaris 2 before Solaris 10, though d1108 1 a1108 1 11, GCC 3.4.3 is available as
/usr/sfw/bin/gcc. Solaris 11 d1110 1 a1110 1/usr/gcc/4.5/bin/gccor similar. Alternatively, d1113 3 a1115 3The Solaris 2
/bin/shwill often fail to configure ‘libstdc++-v3’, ‘boehm-gc’ or ‘libjava’. We therefore a1116 5d1118 4 a1121 1% CONFIG_SHELL=/bin/ksh % export CONFIG_SHELLand proceed as described in the configure instructions. d1123 3 a1125 3
srcdir/configure.Solaris 10 comes with a number of optional OS packages. Some of these d1130 1 a1130 1 the packages that GCC needs are installed. d1132 2 a1133 2 the
pkginfocommand. To add an optional package, use thepkgaddcommand. For further details, see the Solaris 10 d1135 2 a1136 2Starting with Solaris 11, the package management has changed, so you d1139 4 a1142 4 packages is done with the
pkgcommand now.Trying to use the linker and other tools in /usr/ucb to install GCC has been observed to cause trouble. d1144 8 a1151 8 /usr/ucb from your
PATH.The build process works more smoothly with the legacy Sun tools so, if you have /usr/xpg4/bin in your
PATH, we recommend that you place /usr/bin before /usr/xpg4/bin for the duration of the build.We recommend the use of the Solaris assembler or the GNU assembler, in conjunction with the Solaris linker. The GNU
asd1153 3 a1155 3 /usr/sfw/bin/gas), and Solaris 11, from GNU binutils 2.19 or newer (also in /usr/bin/gas and /usr/gnu/bin/as), are known to work. d1160 5 a1164 4 combination GNUas+ Sunldshould reasonably work, the reverse combination Sunas+ GNUldmay fail to build or cause memory corruption at runtime in some cases for C++ programs. GNUldusually works as well, although the version included in d1167 8 a1174 8 features, so better stay with Solarisld. To use the LTO linker plugin (-fuse-linker-plugin) with GNUld, GNU binutils must be configured with --enable-largefile.To enable symbol versioning in ‘libstdc++’ with the Solaris linker, you need to have any version of GNU
c++filt, which is part of GNU binutils. ‘libstdc++’ symbol versioning will be disabled if no appropriate version is found. Solarisc++filtfrom the Solaris d1176 2 a1177 2GNU
makeversion 3.81 or later is required to build libjava d1179 4 a1182 4Sun bug 4927647 sometimes causes random spurious testsuite failures related to missing diagnostic output. This bug doesn’t affect GCC itself, rather it is a kernel bug triggered by the
expectd1184 1 a1184 1 causes theexpectprogram to miss anticipated output, extra d1186 5 a1190 4
sparc*-*-*
d1194 2 a1195 2Newer versions of the GNU Multiple Precision Library (GMP), the MPFR d1200 5 a1204 4
sparc-sun-solaris2*
d1206 1 a1206 1 produced are smaller than the ones produced using Sun’s native tools; d1209 2 a1210 2Starting with Solaris 7, the operating system is capable of executing d1212 1 a1212 1 this; the -m64 option enables 64-bit code generation. d1214 1 a1214 1 should try the -mtune=ultrasparc option instead, which produces d1217 2 a1218 2
When configuring the GNU Multiple Precision Library (GMP), the MPFR d1220 2 a1221 2 target triplet must be specified as the
buildparameter on the configure line. This target triplet can be obtained by invoking./config.guessin the toplevel source directory of GCC (and d1223 7 a1229 8% ./configure --build=sparc-sun-solaris2.9 --prefix=xxx
sparc-sun-solaris2.10
d1232 9 a1240 11ld: fatal: relocation error: R_SPARC_TLS_LE_HIX22: file /var/tmp//ccamPA1v.o: symbol <unknown>: bad symbol type SECT: symbol type must be TLSThis bug is fixed in Sun patch 118683-03 or later.
sparc-*-linux*
a1244 1 d1246 4 a1249 3
sparc64-*-solaris2*
d1252 1 a1252 1 as thebuildparameter on the configure line. For example d1254 13 a1266 13% ./configure --build=sparc64-sun-solaris2.9 --prefix=xxx
sparcv9-*-solaris2*
This is a synonym for ‘sparc64-*-solaris2*’.
c6x-*-*
d1268 5 a1272 4
tilegx-*-linux*
d1275 5 a1279 4
tilegxbe-*-linux*
d1282 5 a1286 4
tilepro-*-linux*
d1289 6 a1294 5
visium-*-elf
CDS VISIUMcore processor. d1296 5 a1300 4
*-*-vxworks*
d1302 2 a1303 2 very recent VxWorks 5.5 (aka Tornado 2.2) release, and only on PowerPC. We welcome patches for other architectures supported by VxWorks 5.5. d1308 12 a1319 12VxWorks comes with an older version of GCC installed in $WIND_BASE/host; we recommend you do not overwrite it. Choose an installation prefix entirely outside $WIND_BASE. Before running
configure, create the directories prefix and prefix/bin. Link or copy the appropriate assembler, linker, etc. into prefix/bin, and set your PATH to include that directory while running bothconfigureandmake.You must give
configurethe --with-headers=$WIND_BASE/target/h switch so that it can d1321 4 a1324 4 target only, you must also specify --target=target.configurewill attempt to create the directory prefix/target/sys-include and copy files into it; make sure the user runningconfigurehas sufficient privilege d1326 3 a1328 3GCC’s exception handling runtime requires a special “configlette” module, contrib/gthr_supp_vxw_5x.c. Follow the instructions in d1331 5 a1335 4
x86_64-*-*, amd64-*-*
d1337 1 a1337 1 (amd64-*-* is an alias for x86_64-*-*) on GNU/Linux, FreeBSD and NetBSD. d1339 6 a1344 5 both 64-bit x86-64 and 32-bit x86 code (via the -m32 switch).
x86_64-*-solaris2.1[0-9]*
d1346 1 a1346 1 processor (‘amd64-*-*’ is an alias for ‘x86_64-*-*’) on d1349 1 a1349 1 can generate 64-bit x86-64 code with the -m64 switch. Since d1351 9 a1359 8 can generate 32-bit code with -m32. To configure and build this way, you have to provide all support libraries like libgmp as 64-bit code, configure with --target=x86_64-pc-solaris2.1x and ‘CC=gcc -m64’.
xtensa*-*-elf
d1361 1 a1361 1 ‘newlib’ C library. It uses ELF but does not support shared d1365 3 a1367 3The Xtensa configuration information must be specified prior to building GCC. The include/xtensa-config.h header d1372 5 a1376 4
xtensa*-*-linux*
d1380 1 a1380 1 -fpic or -fPIC options are used. In other d1382 7 a1388 5 ‘xtensa*-*-elf’ target.
Microsoft Windows
a1389 2Intel 16-bit versions
d1392 2 a1393 2However, the 32-bit port has limited support for Microsoft d1395 3 a1397 3
Intel 32-bit versions
a1401 11d1403 13 a1415 2
- Cygwin *-*-cygwin: Cygwin provides a user-space Linux API emulation layer in the Win32 subsystem.
- Interix *-*-interix: The Interix subsystem provides native support for POSIX.
- MinGW *-*-mingw32: MinGW is a native GCC port for the Win32 subsystem that provides a subset of POSIX.
- MKS i386-pc-mks: NuTCracker from MKS. See http://www.mkssoftware.com/ for more information.
Intel 64-bit versions
d1417 1 a1417 1 runtime library, available from http://mingw-w64.sourceforge.net/. d1419 5 a1423 5Presently Windows for Itanium is not supported.
Windows CE
d1426 3 a1428 3Other Windows Platforms
d1430 2 a1431 2GCC no longer supports the Windows POSIX subsystem. However, it does d1433 4 a1436 4
Old target names including *-*-winnt and *-*-windowsnt are no longer used.
PW32 (i386-pc-pw32) support was never completed, and the project seems to d1438 7 a1444 6
UWIN support has been removed due to a lack of maintenance.
*-*-cygwin
d1447 5 a1451 5GCC will build under Cygwin without modification; it does not build with Microsoft’s C++ compiler and there are no plans to make it do so.
The Cygwin native compiler can be configured to target any 32-bit x86 d1456 5 a1460 4
*-*-interix
d1465 6 a1470 5
*-*-mingw32
GCC will build with and support only MinGW runtime 3.12 and later. d1473 5 a1477 4
Older systems
d1482 2 a1483 2Starting with GCC 3.1, each release has a list of “obsoleted” systems. d1485 1 a1485 1
configurewill fail unless the --enable-obsolete d1488 2 a1489 2Support for old systems as hosts for GCC can cause problems if the d1496 2 a1497 3 old-releases directory on the GCC mirror sites. Header bugs may generally be avoided using
fixincludes, but bugs or deficiencies in libraries and the d1499 2 a1500 2Support for older systems as targets for cross-compilation is less d1508 3 a1510 3
For some systems, old versions of GNU binutils may also be useful, and are available from pub/binutils/old-releases on d1512 2 a1513 2
Some of the information on specific systems above relates to d1517 5 a1521 4
all ELF targets (SVR4, Solaris 2, etc.)
a1525 1 d1527 1 a1527 2
a1528 5
d1530 5 a1535 2 @ 1.1.1.9 log @import GCC 7.4.0. main changes include: The non-standard C++0x type traits has_trivial_default_constructor, has_trivial_copy_constructor and has_trivial_copy_assign have been removed. On ARM targets (arm*-*-*), a bug introduced in GCC 5 that affects conformance to the procedure call standard (AAPCS) has been fixed. Many optimiser improvements DWARF-5 support. Many new and enhanced warnings. Warnings about format strings now underline the pertinent part of the string, and can offer suggested fixes. Several new warnings related to buffer overflows and buffer truncation. New __builtin_add_overflow_p, __builtin_sub_overflow_p, __builtin_mul_overflow_p built-ins added that test for overflow. The C++ front end has experimental support for all of the current C++17 draft. The -fverbose-asm option has been expanded to prints comments showing the source lines that correspond to the assembly. The gcc and g++ driver programs will now provide suggestions for misspelled arguments to command-line options. AArch64 specific: GCC has been updated to the latest revision of the procedure call standard (AAPCS64) to provide support for parameter passing when data types have been over-aligned. The ARMv8.2-A and ARMv8.3-A architecture are now supported. ARM specific: Support for the ARMv5 and ARMv5E architectures has been deprecated (which have no known implementations). A new command-line option -mpure-code has been added. It does not allow constant data to be placed in code sections. x86 specific: Support for the AVX-512 4FMAPS, 4VNNIW, VPOPCNTDQ and Software Guard Extensions (SGX) ISA extensions has been added. PPC specific: GCC now diagnoses inline assembly that clobbers register r2. RISC-V specific: Support for the RISC-V instruction set has been added. SH specific: Support for SH5/SH64 has been removed. Support for SH2A has been enhanced. @ text @d1 3 a3 10Host/Target specific installation notes for GCC Host/Target specific installation notes for GCC
Please read this document carefully before installing the GNU Compiler Collection on your machine. a59 4Note that this list of install notes is not a list of supported hosts or targets. Not all supported hosts and targets are listed here, only the ones that require host-specific or target-specific information have to. d61 1 a61 78
- aarch64*-*-*
- alpha*-*-*
- alpha*-dec-osf5.1
- amd64-*-solaris2.10
- arm-*-eabi
- avr
- Blackfin
- DOS
- *-*-freebsd*
- h8300-hms
- hppa*-hp-hpux*
- hppa*-hp-hpux10
- hppa*-hp-hpux11
- *-*-linux-gnu
- i?86-*-linux*
- i?86-*-solaris2.10
- ia64-*-linux
- ia64-*-hpux*
- *-ibm-aix*
- iq2000-*-elf
- lm32-*-elf
- lm32-*-uclinux
- m32c-*-elf
- m32r-*-elf
- m68k-*-*
- m68k-uclinux
- microblaze-*-elf
- mips-*-*
- mips-sgi-irix5
- mips-sgi-irix6
- nds32le-*-elf
- nds32be-*-elf
- nvptx-*-none
- powerpc*-*-*
- powerpc-*-darwin*
- powerpc-*-elf
- powerpc*-*-linux-gnu*
- powerpc-*-netbsd*
- powerpc-*-eabisim
- powerpc-*-eabi
- powerpcle-*-elf
- powerpcle-*-eabisim
- powerpcle-*-eabi
- riscv32-*-elf
- riscv32-*-linux
- riscv64-*-elf
- riscv64-*-linux
- s390-*-linux*
- s390x-*-linux*
- s390x-ibm-tpf*
- *-*-solaris2*
- sparc*-*-*
- sparc-sun-solaris2*
- sparc-sun-solaris2.10
- sparc-*-linux*
- sparc64-*-solaris2*
- sparcv9-*-solaris2*
- c6x-*-*
- tilegx-*-linux*
- tilegxbe-*-linux*
- tilepro-*-linux*
- visium-*-elf
- *-*-vxworks*
- x86_64-*-* amd64-*-*
- x86_64-*-solaris2.1[0-9]*
- xtensa*-*-elf
- xtensa*-*-linux*
- Microsoft Windows
- *-*-cygwin
- *-*-mingw32
- OS/2
- Older systems
d63 2 a64 2
- all ELF targets (SVR4, Solaris 2, etc.)
a65 1aarch64*-*-*
a66 3Binutils pre 2.24 does not have support for selecting -mabi and does not support ILP32. If it is used to build GCC 4.9 or later, GCC will not support option -mabi=ilp32. a67 9
To enable a workaround for the Cortex-A53 erratum number 835769 by default (for all CPUs regardless of -mcpu option given) at configure time use the --enable-fix-cortex-a53-835769 option. This will enable the fix by default and can be explicitly disabled during compilation by passing the -mno-fix-cortex-a53-835769 option. Conversely, --disable-fix-cortex-a53-835769 will disable the workaround by default. The workaround is disabled by default if neither of --enable-fix-cortex-a53-835769 or --disable-fix-cortex-a53-835769 is given at configure time. a68 10
To enable a workaround for the Cortex-A53 erratum number 843419 by default (for all CPUs regardless of -mcpu option given) at configure time use the --enable-fix-cortex-a53-843419 option. This workaround is applied at link time. Enabling the workaround will cause GCC to pass the relevant option to the linker. It can be explicitly disabled during compilation by passing the -mno-fix-cortex-a53-843419 option. Conversely, --disable-fix-cortex-a53-843419 will disable the workaround by default. The workaround is disabled by default if neither of --enable-fix-cortex-a53-843419 or --disable-fix-cortex-a53-843419 is given at configure time. a69 1
a70 1alpha*-*-*
a71 4This section contains general configuration information for all alpha-based platforms using ELF (in particular, ignore this section for DEC OSF/1, Digital UNIX and Tru64 UNIX). In addition to reading this section, please read all other sections that match your target. a72 4
We require binutils 2.11.2 or newer. Previous binutils releases had a number of problems with DWARF 2 debugging information, not the least of which is incorrect linking of shared libraries. a73 1
a74 1alpha*-dec-osf5.1
a75 3Systems using processors that implement the DEC Alpha architecture and are running the DEC/Compaq/HP Unix (DEC OSF/1, Digital UNIX, or Compaq/HP Tru64 UNIX) operating system, for example the DEC Alpha AXP systems. a76 4
Support for Tru64 UNIX V5.1 has been removed in GCC 4.8. As of GCC 4.6, support for Tru64 UNIX V4.0 and V5.0 has been removed. As of GCC 3.2, versions before
alpha*-dec-osf4are no longer supported. (These are the versions which identify themselves as DEC OSF/1.) a77 1
a78 1amd64-*-solaris2.1[0-9]*
a79 1This is a synonym for ‘x86_64-*-solaris2.1[0-9]*’. a80 1
a81 1arc-*-elf32
a82 3Use ‘configure --target=arc-elf32 --with-cpu=cpu --enable-languages="c,c++"’ to configure GCC, with cpu being one of ‘arc600’, ‘arc601’, or ‘arc700’. a83 1
a84 1arc-linux-uclibc
a85 1Use ‘configure --target=arc-linux-uclibc --with-cpu=arc700 --enable-languages="c,c++"’ to configure GCC. a86 1
a87 1arm-*-eabi
d89 5 a93 1ARM-family processors. d95 168 a262 1
Building the Ada frontend commonly fails (an infinite loop executing d265 4 a268 5
avr
d270 1 a270 1 applications. There are no standard Unix configurations. d273 4 a276 4Use ‘configure --target=avr --enable-languages="c"’ to configure GCC.
Further installation notes and other useful information about AVR tools d278 19 a296 16
The following error:
Error: register requiredindicates that you should upgrade to a newer version of the binutils.
Blackfin
The Blackfin processor, an Analog Devices DSP. d298 7 a304 8
More information, and a version of binutils with support for this processor, is available at https://blackfin.uclinux.org
CR16
d307 1 d309 11 a319 12See “CR16 Options” in the main manual for a list of CR16-specific options.
Use ‘configure --target=cr16-elf --enable-languages=c,c++’ to configure GCC for building a CR16 elf cross-compiler.
Use ‘configure --target=cr16-uclinux --enable-languages=c,c++’ to configure GCC for building a CR16 uclinux cross-compiler.
CRIS
d322 2 a323 2See “CRIS Options” in the main manual d325 11 a335 7
There are a few different CRIS targets:
cris-axis-elf- Mainly for monolithic embedded systems. Includes a multilib for the ‘v10’ core used in ‘ETRAX 100 LX’.
cris-axis-linux-gnu- A GNU/Linux port for the CRIS architecture, currently targeting ‘ETRAX 100 LX’ by default. d338 4 a341 1
Pre-packaged tools can be obtained from d345 4 a348 5
DOS
d350 2 a351 2You cannot install GCC by itself on MSDOS; it will not compile under d355 5 a359 6
epiphany-*-elf
Adapteva Epiphany. d361 4 a364 5
*-*-freebsd*
d368 2 a369 2In order to better utilize FreeBSD base system functionality and match d374 1 a374 1 libgcc_s.so.1 and boehm-gc (on FreeBSD 7 or later) is enabled d376 4 a379 4
We support FreeBSD using the ELF file format with DWARF 2 debugging for all CPU architectures. You may use -gstabs instead of -g, if you really want the old debugging format. There are d383 1 a383 1 GCC. In particular, --enable-threads is now configured by d389 2 a390 2
The version of binutils installed in /usr/bin probably works d392 1 a392 1 binutils and/or the version found in /usr/ports/devel/binutils has d394 8 a401 9 results. However, it is currently known that boehm-gc may not configure properly on FreeBSD prior to the FreeBSD 7.0 release with GNU binutils after 2.16.1.
ft32-*-elf
The FT32 processor. d403 4 a406 5
h8300-hms
d408 4 a411 4Please have a look at the binaries page.
The calling convention and structure layout has changed in release 2.6. d415 4 a418 5
hppa*-hp-hpux*
d420 2 a421 2We require using gas/binutils on all hppa platforms. Version 2.19 or d423 7 a429 7
It may be helpful to configure GCC with the --with-gnu-as and --with-as=... options to ensure that GCC can find GAS.
The HP assembler should not be used with GCC. It is rarely tested and may not work. It shouldn't be used with any languages other than C due to its d431 2 a432 2
Specifically, -g does not work (HP-UX uses a peculiar debugging d436 3 a438 3 ‘make all-host all-target’ after getting the failure from ‘make’.
Various GCC features are not supported. For example, it does not support weak d442 2 a443 2
There are two default scheduling models for instructions. These are d445 1 a445 1 architecture specified for the target machine when configuring. d447 3 a449 3 the target is a ‘hppa1*’ machine.
The PROCESSOR_8000 model is not well suited to older processors. Thus, d454 3 a456 3
As of GCC 4.0, GCC uses the UNIX 95 namespace for HP-UX 10.10 through 11.00, and the UNIX 98 namespace for HP-UX 11.11 and later. d460 3 a462 3 in a number of ways. With HP cc, UNIX_STD can be set to ‘95’ or ‘98’. Another way is to add an appropriate set of predefines to CC. The description for the munix= option contains d464 6 a469 7
More specific information to ‘hppa*-hp-hpux*’ targets follows.
hppa*-hp-hpux10
d472 2 a473 2The C++ ABI has changed incompatibly in GCC 4.0. COMDAT subspaces are d477 4 a480 5
hppa*-hp-hpux11
d483 4 a486 4The libffi library haven't been ported to 64-bit HP-UX and doesn't build.
Refer to binaries for information about obtaining d488 1 a488 1 to build the Ada language as it cannot be bootstrapped using C. Ada is d490 3 a492 3
Starting with GCC 3.4 an ISO C compiler is required to bootstrap. The bundled compiler supports only traditional C; you will need either HP's d494 2 a495 2
It is possible to build GCC 3.3 starting with the bundled HP compiler, d497 7 a503 3 build later versions.
There are several possible approaches to building the distribution. d506 1 a506 1 first using the HP tools, then build binutils, then rebuild GCC. d509 2 a510 2
On 64-bit capable systems, there are two distinct targets. Different d512 3 a514 3 the same system. The ‘hppa[1-2]*-hp-hpux11*’ target generates code for the 32-bit PA-RISC runtime architecture and uses the HP linker. The ‘hppa64-hp-hpux11*’ target generates 64-bit code for the d516 11 a526 11
The script config.guess now selects the target type based on the compiler detected during configuration. You must define PATH or CC so that configure finds an appropriate compiler for the initial bootstrap. When CC is used, the definition should contain the options that are needed whenever CC is used.
Specifically, options that determine the runtime architecture must be in CC to correctly select the target for the build. It is also convenient to place many other compiler options in CC. For example, CC="cc -Ac +DA2.0W -Wp,-H16376 -D_CLASSIC_TYPES -D_HPUX_SOURCE" d528 2 a529 2 64-bit K&R/bundled mode. The +DA2.0W option will result in the automatic selection of the ‘hppa64-hp-hpux11*’ target. The d533 4 a536 4 -Ac option. These defines aren't necessary with -Ae.
It is best to explicitly configure the ‘hppa64-hp-hpux11*’ target with the --with-ld=... option. This overrides the standard d539 1 a539 1 result, it's not possible to switch linkers in the middle of a GCC build. d542 2 a543 2
A recent linker patch must be installed for the correct operation of d547 1 a547 1
PHSS_24304, might be usable but it hasn't been tested. These d550 2 a551 2The patches are necessary for the support of weak symbols on the d554 1 a554 1 to HP-UX 11, there are bugs in the linker support for secondary symbols. d558 2 a559 2
GCC 3.3 uses the ELF DT_INIT_ARRAY and DT_FINI_ARRAY capabilities to d561 1 a561 1 uses the linker +init and +fini options for the same d564 1 a564 1 problem on the 64-bit port resulting from HP's non-standard use of d566 3 a568 3
Although the HP and GNU linkers are both supported for the ‘hppa64-hp-hpux11*’ target, it is strongly recommended that the d570 3 a572 3
At this time, the GNU linker does not support the creation of long branch stubs. As a result, it cannot successfully link binaries d575 5 a579 5 with -static, and with dwarf2 unwind and exception support. It also doesn't provide stubs for internal calls to global functions in shared libraries, so these calls cannot be overloaded.
The HP dynamic loader does not support GNU symbol versioning, so symbol d581 8 a588 9 versioning with --disable-symvers when using GNU ld.
POSIX threads are the default. The optional DCE thread library is not supported, so --enable-threads=dce does not work.
*-*-linux-gnu
d592 5 a596 6
i?86-*-linux*
As of GCC 3.3, binutils 2.13.1 or later is required for this platform. d598 2 a599 2
If you receive Signal 11 errors when building on GNU/Linux, then it is d602 4 a605 5
i?86-*-solaris2.10
d607 5 a611 5 with GCC 4.7, there is also a 64-bit ‘amd64-*-solaris2.1[0-9]*’ or ‘x86_64-*-solaris2.1[0-9]*’ configuration that corresponds to ‘sparcv9-sun-solaris2*’.It is recommended that you configure GCC to use the GNU assembler. The d613 3 a615 3 /usr/sfw/bin/gas), and Solaris 11, from GNU binutils 2.19 or newer (also available as /usr/bin/gas and /usr/gnu/bin/as), work fine. Please note that the current d619 4 a622 5 versions of the Solaris assembler in /usr/ccs/bin/as work almost as well, though.
For linking, the Solaris linker, is preferred. If you want to use the GNU d624 1 a624 1 10, from GNU binutils 2.15 (in /usr/sfw/bin/gld), cannot be used, d626 1 a626 1 in /usr/gnu/bin/ld and /usr/bin/gld), works, as does the d628 9 a636 11
To use GNU as, configure with the options --with-gnu-as --with-as=/usr/sfw/bin/gas. It may be necessary to configure with --without-gnu-ld --with-ld=/usr/ccs/bin/ld to guarantee use of Sun ld.
ia64-*-linux
d639 3 a641 3If you are using the installed system libunwind library with --with-system-libunwind, then you must use libunwind 0.98 or d643 2 a644 2
None of the following versions of GCC has an ABI that is compatible d647 3 a649 3 3.1, 3.0.2, 3.0.1, 3.0, Red Hat 2.96, and Trillian 000717. This primarily affects C++ programs and programs that create shared libraries. GCC 3.1 or later is recommended for compiling linux, the kernel. d652 4 a655 5
ia64-*-hpux*
d658 6 a663 6 the option --with-gnu-as may be necessary.The GCC libunwind library has not been ported to HPUX. This means that for GCC versions 3.2.3 and earlier, --enable-libunwind-exceptions is required to build GCC. For GCC 3.3 and later, this is the default. For gcc 3.4.3 and later, --enable-libunwind-exceptions is d665 6 a670 7
*-ibm-aix*
Support for AIX version 3 and older was discontinued in GCC 3.4. d672 2 a673 2
“out of memory” bootstrap failures may indicate a problem with d675 3 a677 3 /etc/security/limits system configuration file.
GCC 4.9 and above require a C++ compiler for bootstrap. IBM VAC++ / xlC d680 2 a681 2
GCC can bootstrap with recent versions of IBM XLC, but bootstrapping d685 5 d691 2 a692 5
% LDR_CNTRL=MAXDATA=0x50000000 % export LDR_CNTRLOne can start with a pre-compiled version of GCC to build from sources. One may delete GCC's “fixed” header files when starting d694 8 d703 2 a704 7
To speed up the configuration phases of bootstrapping and installing GCC, one may use GNU Bash instead of AIX /bin/sh, e.g.,
% CONFIG_SHELL=/opt/freeware/bin/bash % export CONFIG_SHELLand then proceed as described in the build instructions, where we strongly recommend specifying an absolute path d706 2 a707 2
Because GCC on AIX is built as a 32-bit executable by default, d711 2 a712 2
Errors involving
allocawhen building GCC generally are due d715 5 a719 5 the build, the native AIX compiler must be invoked as cc (not xlc). Once configure has been informed of xlc, one needs to use ‘make distclean’ to remove the configure cache files and ensure that CC environment variable does not provide a definition that will confuse configure. d722 2 a723 2The native as and ld are recommended for d726 1 a726 1 AIX 5. The GNU Assembler has not been updated to support AIX 6 or d728 2 a729 2
AIX 7.1 added partial support for DWARF debugging, but full support d734 2 a735 2
AIX 5.3 TL10, AIX 6.1 TL05 and AIX 7.1 TL00 introduced an AIX d743 2 a744 2
Building libstdc++.a requires a fix for an AIX Assembler bug d748 3 a750 3
‘libstdc++’ in GCC 3.4 increments the major version number of the shared object and GCC installation places the libstdc++.a d754 3 a756 3 versions of the ‘libstdc++’ shared object needs to be available to the AIX runtime loader. The GCC 3.1 ‘libstdc++.so.4’, if present, and GCC 3.3 ‘libstdc++.so.5’ shared objects can be d758 8 a765 2 the ‘F_LOADONLY’ flag in the shared object for each multilib libstdc++.a installed: d767 1 a767 5
Extract the shared objects from the currently installed libstdc++.a archive:
% ar -x libstdc++.a libstdc++.so.4 libstdc++.so.5Enable the ‘F_LOADONLY’ flag so that the shared object will be d769 12 a780 8
% strip -e libstdc++.so.4 libstdc++.so.5Archive the runtime-only shared object in the GCC 3.4 libstdc++.a archive:
% ar -q libstdc++.a libstdc++.so.4 libstdc++.so.5Eventually, the --with-aix-soname=svr4 d783 2 a784 2
Linking executables and shared libraries may produce warnings of d790 2 a791 2
AIX 4.3 utilizes a “large format” archive to support both 32-bit and d793 1 a793 1 to parse archive libraries did not handle the new format correctly. d796 1 a796 1 with AIX 4.3.1 should work for a 32-bit environment. The -g d800 3 a802 3
Some versions of the AIX binder (linker) can fail with a relocation overflow severe error when the -bbigtoc option is used to link d808 2 a809 2
The AIX 4.3.2.1 linker (bos.rte.bind_cmds Level 4.3.2.1) will dump core d814 2 a815 2
The initial assembler shipped with AIX 4.3.0 generates incorrect object d820 2 a821 2
AIX provides National Language Support (NLS). Compilers and assemblers d823 1 a823 1 formats including floating-point numbers (e.g., ‘.’ vs ‘,’ for d826 9 a834 10 expects. If one encounters this problem, set the LANG environment variable to ‘C’ or ‘En_US’.
A default can be specified with the -mcpu=cpu_type switch and using the configure option --with-cpu-cpu_type.
iq2000-*-elf
d837 5 a841 6
lm32-*-elf
Lattice Mico32 processor. d843 5 a847 6
lm32-*-uclinux
Lattice Mico32 processor. d849 5 a853 6
m32c-*-elf
Renesas M32C processor. d855 5 a859 6
m32r-*-elf
Renesas M32R processor. d861 4 a864 5
m68k-*-*
d866 2 a867 2 ‘m68k-*-elf*’, ‘m68k-*-rtems’, ‘m68k-*-uclinux’ and ‘m68k-*-linux’ d870 3 a872 3 --with-arch=m68k to configure. Alternatively, you can omit the M680x0 libraries by passing --with-arch=cf to configure. These targets default to 5206 or 5475 code as d874 4 a877 4 configured with --with-arch=cf and 68020 code otherwise.The ‘m68k-*-netbsd’ and ‘m68k-*-openbsd’ targets also support the --with-arch d879 13 a891 14 --with-arch=cf and 68020 code otherwise.
You can override the default processors listed above by configuring with --with-cpu=target. This target can either be a -mcpu argument or one of the following values: ‘m68000’, ‘m68010’, ‘m68020’, ‘m68030’, ‘m68040’, ‘m68060’, ‘m68020-40’ and ‘m68020-60’.
GCC requires at least binutils version 2.17 on these targets.
m68k-*-uclinux
d893 1 a893 1 ‘m68k-linux-gnu’ ABI rather than the ‘m68k-elf’ ABI. d896 11 a906 6
microblaze-*-elf
Xilinx MicroBlaze processor. d908 4 a911 5
mips-*-*
d913 1 a913 1 sections for all it's [sic] sectons [sic]”, don't worry about it. This d917 2 a918 2It would be nice to extend GAS to produce the gp tables, but they are d920 2 a921 2
The libstdc++ atomic locking routines for MIPS targets requires MIPS II d923 3 a925 3 make ‘mips*-*-*’ use the generic implementation instead. You can also configure for ‘mipsel-elf’ as a workaround. The ‘mips*-*-linux*’ target continues to use the MIPS II routines. More d927 1 d929 4 a932 6
The built-in
__sync_*functions are available on MIPS II and later systems and others that support the ‘ll’, ‘sc’ and ‘sync’ instructions. This can be overridden by passing --with-llsc or --without-llsc when configuring GCC. d934 4 a937 4 missing, the default for ‘mips*-*-linux*’ targets is --with-llsc. The --with-llsc and --without-llsc configure options may be overridden at compile time by passing the -mllsc or -mno-llsc options to d939 3 a941 3MIPS systems check for division by zero (unless -mno-check-zero-division is passed to the compiler) by d946 2 a947 2 the use of break, use the --with-divide=breaks configure option when configuring GCC. The default is to d949 12 a960 5
mips-sgi-irix5
d962 4 a965 5
mips-sgi-irix6
d969 4 a972 5
moxie-*-elf
d974 5 a978 6
msp430-*-elf
TI MSP430 processor. d980 4 a983 5
nds32le-*-elf
d985 4 a988 5
nds32be-*-elf
d990 4 a993 5
nvptx-*-none
d995 3 a997 3Instead of GNU binutils, you will need to install nvptx-tools. d999 4 a1002 4 --with-build-time-tools=[install-nvptx-tools]/nvptx-none/bin.
A nvptx port of newlib is available at nvptx-newlib. d1004 1 a1004 1 symbolic link to nvptx-newlib's newlib directory to the d1006 17 a1022 17
Use the --disable-sjlj-exceptions and --enable-newlib-io-long-long options when configuring.
powerpc-*-*
You can specify a default version for the -mcpu=cpu_type switch by using the configure option --with-cpu-cpu_type.
You will need GNU binutils 2.15 or newer.
powerpc-*-darwin*
d1024 2 a1025 2Pre-installed versions of Mac OS X may not include any developer tools, d1028 3 a1030 3 https://opensource.apple.com.
This version of GCC requires at least cctools-590.36. The d1034 4 a1037 5
powerpc-*-elf
d1039 4 a1042 5
powerpc*-*-linux-gnu*
d1044 4 a1047 5
powerpc-*-netbsd*
d1049 4 a1052 5
powerpc-*-eabisim
d1055 4 a1058 5
powerpc-*-eabi
d1060 4 a1063 5
powerpcle-*-elf
d1065 4 a1068 5
powerpcle-*-eabisim
d1071 4 a1074 5
powerpcle-*-eabi
d1076 5 a1080 6
rl78-*-elf
The Renesas RL78 processor. d1082 11 a1092 45
riscv32-*-elf
The RISC-V RV32 instruction set. This configuration is intended for embedded systems. This (and all other RISC-V) targets are supported upstream as of the binutils 2.28 release.
riscv32-*-linux
The RISC-V RV32 instruction set running GNU/Linux. This (and all other RISC-V) targets are supported upstream as of the binutils 2.28 release.
riscv64-*-elf
The RISC-V RV64 instruction set. This configuration is intended for embedded systems. This (and all other RISC-V) targets are supported upstream as of the binutils 2.28 release.
riscv64-*-linux
The RISC-V RV64 instruction set running GNU/Linux. This (and all other RISC-V) targets are supported upstream as of the binutils 2.28 release.
rx-*-elf
The Renesas RX processor.
s390-*-linux*
d1094 4 a1097 5
s390x-*-linux*
d1099 4 a1102 5
s390x-ibm-tpf*
d1105 4 a1108 9
*-*-solaris2*
d1112 2 a1113 2Sun does not ship a C compiler with Solaris 2 before Solaris 10, though d1115 1 a1115 1 11, GCC 3.4.3 is available as /usr/sfw/bin/gcc. Solaris 11 d1117 1 a1117 1 /usr/gcc/4.5/bin/gcc or similar. Alternatively, d1120 9 d1130 1 a1130 8
The Solaris 2 /bin/sh will often fail to configure ‘libstdc++-v3’or ‘boehm-gc’. We therefore recommend using the following initial sequence of commands
% CONFIG_SHELL=/bin/ksh % export CONFIG_SHELLand proceed as described in the configure instructions. d1132 3 a1134 3 srcdir/configure.
Solaris 10 comes with a number of optional OS packages. Some of these d1139 1 a1139 1 the packages that GCC needs are installed. d1141 2 a1142 2 the pkginfo command. To add an optional package, use the pkgadd command. For further details, see the Solaris 10 d1144 2 a1145 2
Starting with Solaris 11, the package management has changed, so you d1148 4 a1151 4 packages is done with the pkg command now.
Trying to use the linker and other tools in /usr/ucb to install GCC has been observed to cause trouble. d1153 8 a1160 8 /usr/ucb from your PATH.
The build process works more smoothly with the legacy Sun tools so, if you have /usr/xpg4/bin in your PATH, we recommend that you place /usr/bin before /usr/xpg4/bin for the duration of the build.
We recommend the use of the Solaris assembler or the GNU assembler, in conjunction with the Solaris linker. The GNU as d1162 3 a1164 3 /usr/sfw/bin/gas), and Solaris 11, from GNU binutils 2.19 or newer (also in /usr/bin/gas and /usr/gnu/bin/as), are known to work. d1169 4 a1172 5 combination GNU as + Sun ld should reasonably work, the reverse combination Sun as + GNU ld may fail to build or cause memory corruption at runtime in some cases for C++ programs. GNU ld usually works as well, although the version included in d1175 8 a1182 8 features, so better stay with Solaris ld. To use the LTO linker plugin (-fuse-linker-plugin) with GNU ld, GNU binutils must be configured with --enable-largefile.
To enable symbol versioning in ‘libstdc++’ with the Solaris linker, you need to have any version of GNU c++filt, which is part of GNU binutils. ‘libstdc++’ symbol versioning will be disabled if no appropriate version is found. Solaris c++filt from the Solaris d1184 7 a1190 4
Sun bug 4927647 sometimes causes random spurious testsuite failures related to missing diagnostic output. This bug doesn't affect GCC itself, rather it is a kernel bug triggered by the expect d1192 1 a1192 1 causes the expect program to miss anticipated output, extra d1194 4 a1197 5
sparc*-*-*
d1201 2 a1202 2Newer versions of the GNU Multiple Precision Library (GMP), the MPFR d1207 4 a1210 5
sparc-sun-solaris2*
d1212 1 a1212 1 produced are smaller than the ones produced using Sun's native tools; d1215 2 a1216 2Starting with Solaris 7, the operating system is capable of executing d1218 1 a1218 1 this; the -m64 option enables 64-bit code generation. d1220 1 a1220 1 should try the -mtune=ultrasparc option instead, which produces d1223 2 a1224 2
When configuring the GNU Multiple Precision Library (GMP), the MPFR d1226 2 a1227 2 target triplet must be specified as the build parameter on the configure line. This target triplet can be obtained by invoking ./config.guess in the toplevel source directory of GCC (and d1229 8 a1236 7
% ./configure --build=sparc-sun-solaris2.9 --prefix=xxx
sparc-sun-solaris2.10
d1239 20 a1258 14ld: fatal: relocation error: R_SPARC_TLS_LE_HIX22: file /var/tmp//ccamPA1v.o: symbol <unknown>: bad symbol type SECT: symbol type must be TLSThis bug is fixed in Sun patch 118683-03 or later.
sparc-*-linux*
sparc64-*-solaris2*
d1261 1 a1261 1 as the build parameter on the configure line. For example d1263 13 a1275 13% ./configure --build=sparc64-sun-solaris2.9 --prefix=xxx
sparcv9-*-solaris2*
This is a synonym for ‘sparc64-*-solaris2*’.
c6x-*-*
d1277 4 a1280 5
tilegx-*-linux*
d1283 4 a1286 5
tilegxbe-*-linux*
d1289 4 a1292 5
tilepro-*-linux*
d1295 5 a1299 6
visium-*-elf
CDS VISIUMcore processor. d1301 4 a1304 5
*-*-vxworks*
d1306 2 a1307 2 very recent VxWorks 5.5 (aka Tornado 2.2) release, and only on PowerPC. We welcome patches for other architectures supported by VxWorks 5.5. d1312 12 a1323 12VxWorks comes with an older version of GCC installed in $WIND_BASE/host; we recommend you do not overwrite it. Choose an installation prefix entirely outside $WIND_BASE. Before running configure, create the directories prefix and prefix/bin. Link or copy the appropriate assembler, linker, etc. into prefix/bin, and set your PATH to include that directory while running both configure and make.
You must give configure the --with-headers=$WIND_BASE/target/h switch so that it can d1325 4 a1328 4 target only, you must also specify --target=target. configure will attempt to create the directory prefix/target/sys-include and copy files into it; make sure the user running configure has sufficient privilege d1330 3 a1332 3
GCC's exception handling runtime requires a special “configlette” module, contrib/gthr_supp_vxw_5x.c. Follow the instructions in d1335 4 a1338 5
x86_64-*-*, amd64-*-*
d1340 1 a1340 1 (amd64-*-* is an alias for x86_64-*-*) on GNU/Linux, FreeBSD and NetBSD. d1342 5 a1346 6 both 64-bit x86-64 and 32-bit x86 code (via the -m32 switch).
x86_64-*-solaris2.1[0-9]*
d1348 1 a1348 1 processor (‘amd64-*-*’ is an alias for ‘x86_64-*-*’) on d1351 1 a1351 1 can generate 64-bit x86-64 code with the -m64 switch. Since d1353 8 a1360 9 can generate 32-bit code with -m32. To configure and build this way, you have to provide all support libraries like libgmp as 64-bit code, configure with --target=x86_64-pc-solaris2.1x and ‘CC=gcc -m64’.
xtensa*-*-elf
d1362 1 a1362 1 ‘newlib’ C library. It uses ELF but does not support shared d1366 3 a1368 3The Xtensa configuration information must be specified prior to building GCC. The include/xtensa-config.h header d1373 4 a1376 5
xtensa*-*-linux*
d1380 1 a1380 1 -fpic or -fPIC options are used. In other d1382 5 a1386 7 ‘xtensa*-*-elf’ target.
Microsoft Windows
Intel 16-bit versions
d1388 2 d1392 2 a1393 2However, the 32-bit port has limited support for Microsoft d1395 3 a1397 3
Intel 32-bit versions
d1402 11 d1414 2 a1415 11
- Cygwin *-*-cygwin: Cygwin provides a user-space Linux API emulation layer in the Win32 subsystem.
- MinGW *-*-mingw32: MinGW is a native GCC port for the Win32 subsystem that provides a subset of POSIX.
- MKS i386-pc-mks: NuTCracker from MKS. See http://www.mkssoftware.com/ for more information.
Intel 64-bit versions
d1417 1 a1417 1 runtime library, available from http://mingw-w64.org/doku.php. d1419 5 a1423 5Presently Windows for Itanium is not supported.
Windows CE
d1426 3 a1428 3Other Windows Platforms
d1430 2 a1431 2GCC no longer supports the Windows POSIX subsystem. However, it does d1433 4 a1436 4
Old target names including *-*-winnt and *-*-windowsnt are no longer used.
PW32 (i386-pc-pw32) support was never completed, and the project seems to d1438 6 a1443 7
UWIN support has been removed due to a lack of maintenance.
*-*-cygwin
d1446 5 a1450 5GCC will build under Cygwin without modification; it does not build with Microsoft's C++ compiler and there are no plans to make it do so.
The Cygwin native compiler can be configured to target any 32-bit x86 d1455 13 a1467 6
*-*-mingw32
GCC will build with and support only MinGW runtime 3.12 and later. d1470 4 a1473 5
Older systems
d1478 2 a1479 2Starting with GCC 3.1, each release has a list of “obsoleted” systems. d1481 1 a1481 1 configure will fail unless the --enable-obsolete d1484 2 a1485 2
Support for old systems as hosts for GCC can cause problems if the d1492 3 a1494 2 old-releases directory on the GCC mirror sites. Header bugs may generally be avoided using fixincludes, but bugs or deficiencies in libraries and the d1496 2 a1497 2
Support for older systems as targets for cross-compilation is less d1505 6 a1510 6
For some systems, old versions of GNU binutils may also be useful, and are available from pub/binutils/old-releases on sourceware.org mirror sites.
Some of the information on specific systems above relates to d1514 4 a1517 5
all ELF targets (SVR4, Solaris 2, etc.)
d1522 1 d1524 2 a1525 1
d1527 5 a1532 5 d1534 2 @ 1.1.1.10 log @import GCC 8.3. it includes these new features: - many optimisations improved: inter-procedural, profile-directed, LTO, loops including user-controllable unroll support, and more. - columns numbers added to line numbers in dwarf - gcov extended significantly - many sanitizer updates - many new warning messages - many better hints and more useful error messages - minor ABI changes on x86-64 libstdc++, and some c++17 modes - draft c++2a features - better c++17 experimental support - Armv8.4-A supported, better 8.2-A and 8.3-A support, including 32 bit arm port. cortex a-55, a-75 and a-55.a-75 combo support. - in the GCC bugzilla, 8.1 shows 1149 bugs fixed, 8.2 shows 100, and 8.3 shows 158. @ text @d1 10 a10 3Installing GCC d47 4 a50 32 d52 78 d131 2 a132 1 d134 1 a134 2Installing GCC
d136 3 d140 9 d150 10 d161 1 d163 1 d165 4 d170 4 d175 1 d177 1 d179 3 d183 4 d188 1 d190 1 d192 1 d194 1 d196 1 d198 3 d202 1 d204 1 d206 1 d208 1 d210 1 d212 1 d214 1 a214 157Please read this document carefully before installing the GNU Compiler Collection on your machine.
Note that this list of install notes is not a list of supported hosts or targets. Not all supported hosts and targets are listed here, only the ones that require host-specific or target-specific information have to.
- aarch64*-*-*
- alpha*-*-*
- amd64-*-solaris2.10
- arm-*-eabi
- avr
- Blackfin
- DOS
- *-*-freebsd*
- h8300-hms
- hppa*-hp-hpux*
- hppa*-hp-hpux10
- hppa*-hp-hpux11
- *-*-linux-gnu
- i?86-*-linux*
- i?86-*-solaris2.10
- ia64-*-linux
- ia64-*-hpux*
- *-ibm-aix*
- iq2000-*-elf
- lm32-*-elf
- lm32-*-uclinux
- m32c-*-elf
- m32r-*-elf
- m68k-*-*
- m68k-uclinux
- microblaze-*-elf
- mips-*-*
- nds32le-*-elf
- nds32be-*-elf
- nvptx-*-none
- powerpc*-*-*
- powerpc-*-darwin*
- powerpc-*-elf
- powerpc*-*-linux-gnu*
- powerpc-*-netbsd*
- powerpc-*-eabisim
- powerpc-*-eabi
- powerpcle-*-elf
- powerpcle-*-eabisim
- powerpcle-*-eabi
- riscv32-*-elf
- riscv32-*-linux
- riscv64-*-elf
- riscv64-*-linux
- s390-*-linux*
- s390x-*-linux*
- s390x-ibm-tpf*
- *-*-solaris2*
- sparc*-*-*
- sparc-sun-solaris2*
- sparc-sun-solaris2.10
- sparc-*-linux*
- sparc64-*-solaris2*
- sparcv9-*-solaris2*
- c6x-*-*
- tilegx-*-linux*
- tilegxbe-*-linux*
- tilepro-*-linux*
- visium-*-elf
- *-*-vxworks*
- x86_64-*-*, amd64-*-*
- x86_64-*-solaris2.1[0-9]*
- xtensa*-*-elf
- xtensa*-*-linux*
- Microsoft Windows
- *-*-cygwin
- *-*-mingw32
- OS/2
- Older systems
- all ELF targets (SVR4, Solaris 2, etc.)
aarch64*-*-*
Binutils pre 2.24 does not have support for selecting -mabi and does not support ILP32. If it is used to build GCC 4.9 or later, GCC will not support option -mabi=ilp32.
To enable a workaround for the Cortex-A53 erratum number 835769 by default (for all CPUs regardless of -mcpu option given) at configure time use the --enable-fix-cortex-a53-835769 option. This will enable the fix by default and can be explicitly disabled during compilation by passing the -mno-fix-cortex-a53-835769 option. Conversely, --disable-fix-cortex-a53-835769 will disable the workaround by default. The workaround is disabled by default if neither of --enable-fix-cortex-a53-835769 or --disable-fix-cortex-a53-835769 is given at configure time.
To enable a workaround for the Cortex-A53 erratum number 843419 by default (for all CPUs regardless of -mcpu option given) at configure time use the --enable-fix-cortex-a53-843419 option. This workaround is applied at link time. Enabling the workaround will cause GCC to pass the relevant option to the linker. It can be explicitly disabled during compilation by passing the -mno-fix-cortex-a53-843419 option. Conversely, --disable-fix-cortex-a53-843419 will disable the workaround by default. The workaround is disabled by default if neither of --enable-fix-cortex-a53-843419 or --disable-fix-cortex-a53-843419 is given at configure time.
alpha*-*-*
This section contains general configuration information for all Alpha-based platforms using ELF. In addition to reading this section, please read all other sections that match your target.
We require binutils 2.11.2 or newer. Previous binutils releases had a number of problems with DWARF 2 debugging information, not the least of which is incorrect linking of shared libraries.
amd64-*-solaris2.1[0-9]*
This is a synonym for ‘x86_64-*-solaris2.1[0-9]*’.
arc-*-elf32
Use ‘configure --target=arc-elf32 --with-cpu=cpu --enable-languages="c,c++"’ to configure GCC, with cpu being one of ‘arc600’, ‘arc601’, or ‘arc700’.
arc-linux-uclibc
Use ‘configure --target=arc-linux-uclibc --with-cpu=arc700 --enable-languages="c,c++"’ to configure GCC.
arm-*-eabi
ARM-family processors.
Building the Ada frontend commonly fails (an infinite loop executing d217 5 a221 4
avr
d223 1 a223 1 applications. There are no standard Unix configurations. d226 4 a229 4Use ‘configure --target=avr --enable-languages="c"’ to configure GCC.
Further installation notes and other useful information about AVR tools d231 16 a246 17
The following error:
Error: register requiredindicates that you should upgrade to a newer version of the binutils.
Blackfin
The Blackfin processor, an Analog Devices DSP. d248 2 a249 2
More information, and a version of binutils with support for this processor, d251 5 a255 4
CR16
a257 1 d259 12 a270 11See “CR16 Options” in the main manual for a list of CR16-specific options.
Use ‘configure --target=cr16-elf --enable-languages=c,c++’ to configure GCC for building a CR16 elf cross-compiler.
Use ‘configure --target=cr16-uclinux --enable-languages=c,c++’ to configure GCC for building a CR16 uclinux cross-compiler.
CRIS
d273 2 a274 2See “CRIS Options” in the main manual d276 7 a282 11
There are a few different CRIS targets:
cris-axis-elfMainly for monolithic embedded systems. Includes a multilib for the ‘v10’ core used in ‘ETRAX 100 LX’.
cris-axis-linux-gnu- d285 1 a285 1
A GNU/Linux port for the CRIS architecture, currently targeting ‘ETRAX 100 LX’ by default.
Pre-packaged tools can be obtained from d289 5 a293 4
DOS
d295 2 a296 2You cannot install GCC by itself on MSDOS; it will not compile under d300 6 a305 5
epiphany-*-elf
Adapteva Epiphany. d307 5 a311 4
*-*-freebsd*
d315 2 a316 2In order to better utilize FreeBSD base system functionality and match d321 1 a321 1 libgcc_s.so.1 and boehm-gc (on FreeBSD 7 or later) is enabled d323 4 a326 4
We support FreeBSD using the ELF file format with DWARF 2 debugging for all CPU architectures. You may use -gstabs instead of -g, if you really want the old debugging format. There are d330 1 a330 1 GCC. In particular, --enable-threads is now configured by d336 2 a337 2
The version of binutils installed in /usr/bin probably works d339 1 a339 1 binutils and/or the version found in /usr/ports/devel/binutils has d344 6 a349 5
ft32-*-elf
The FT32 processor. d351 5 a355 4
h8300-hms
d357 4 a360 4Please have a look at the binaries page.
The calling convention and structure layout has changed in release 2.6. d364 5 a368 4
hppa*-hp-hpux*
d370 2 a371 2We require using gas/binutils on all hppa platforms. Version 2.19 or d373 7 a379 7
It may be helpful to configure GCC with the --with-gnu-as and --with-as=… options to ensure that GCC can find GAS.
The HP assembler should not be used with GCC. It is rarely tested and may not work. It shouldn’t be used with any languages other than C due to its d381 2 a382 2
Specifically, -g does not work (HP-UX uses a peculiar debugging d386 3 a388 3 ‘make all-host all-target’ after getting the failure from ‘make’.
Various GCC features are not supported. For example, it does not support weak d392 2 a393 2
There are two default scheduling models for instructions. These are d395 1 a395 1 architecture specified for the target machine when configuring. d397 3 a399 3 the target is a ‘hppa1*’ machine.
The PROCESSOR_8000 model is not well suited to older processors. Thus, d404 3 a406 3
As of GCC 4.0, GCC uses the UNIX 95 namespace for HP-UX 10.10 through 11.00, and the UNIX 98 namespace for HP-UX 11.11 and later. d410 3 a412 3 in a number of ways. With HP cc,
UNIX_STDcan be set to ‘95’ or ‘98’. Another way is to add an appropriate set of predefines toCC. The description for the munix= option contains d414 7 a420 6More specific information to ‘hppa*-hp-hpux*’ targets follows.
hppa*-hp-hpux10
d423 2 a424 2The C++ ABI has changed incompatibly in GCC 4.0. COMDAT subspaces are d428 5 a432 4
hppa*-hp-hpux11
d435 4 a438 4The libffi library haven’t been ported to 64-bit HP-UX and doesn’t build.
Refer to binaries for information about obtaining d442 3 a444 3
Starting with GCC 3.4 an ISO C compiler is required to bootstrap. The bundled compiler supports only traditional C; you will need either HP’s d446 2 a447 2
It is possible to build GCC 3.3 starting with the bundled HP compiler, d450 2 a451 2
There are several possible approaches to building the distribution. d454 1 a454 1 first using the HP tools, then build binutils, then rebuild GCC. d457 2 a458 2
On 64-bit capable systems, there are two distinct targets. Different d460 3 a462 3 the same system. The ‘hppa[1-2]*-hp-hpux11*’ target generates code for the 32-bit PA-RISC runtime architecture and uses the HP linker. The ‘hppa64-hp-hpux11*’ target generates 64-bit code for the d464 11 a474 11
The script config.guess now selects the target type based on the compiler detected during configuration. You must define
PATHorCCso that configure finds an appropriate compiler for the initial bootstrap. WhenCCis used, the definition should contain the options that are needed wheneverCCis used.Specifically, options that determine the runtime architecture must be in
CCto correctly select the target for the build. It is also convenient to place many other compiler options inCC. For example,CC="cc -Ac +DA2.0W -Wp,-H16376 -D_CLASSIC_TYPES -D_HPUX_SOURCE"d476 2 a477 2 64-bit K&R/bundled mode. The +DA2.0W option will result in the automatic selection of the ‘hppa64-hp-hpux11*’ target. The d481 4 a484 4 -Ac option. These defines aren’t necessary with -Ae.It is best to explicitly configure the ‘hppa64-hp-hpux11*’ target with the --with-ld=… option. This overrides the standard d487 1 a487 1 result, it’s not possible to switch linkers in the middle of a GCC build. d490 2 a491 2
A recent linker patch must be installed for the correct operation of d495 1 a495 1
PHSS_24304, might be usable but it hasn’t been tested. These d498 2 a499 2The patches are necessary for the support of weak symbols on the d502 1 a502 1 to HP-UX 11, there are bugs in the linker support for secondary symbols. d506 2 a507 2
GCC 3.3 uses the ELF DT_INIT_ARRAY and DT_FINI_ARRAY capabilities to d509 1 a509 1 uses the linker +init and +fini options for the same d512 1 a512 1 problem on the 64-bit port resulting from HP’s non-standard use of d514 3 a516 3
Although the HP and GNU linkers are both supported for the ‘hppa64-hp-hpux11*’ target, it is strongly recommended that the d518 2 a519 2
At this time, the GNU linker does not support the creation of long d523 2 a524 2 with -static, and with dwarf2 unwind and exception support. It also doesn’t provide stubs for internal calls to global functions d526 2 a527 2
The HP dynamic loader does not support GNU symbol versioning, so symbol d529 9 a537 8 versioning with --disable-symvers when using GNU ld.
POSIX threads are the default. The optional DCE thread library is not supported, so --enable-threads=dce does not work.
*-*-linux-gnu
d541 6 a546 5
i?86-*-linux*
As of GCC 3.3, binutils 2.13.1 or later is required for this platform. d548 2 a549 2
If you receive Signal 11 errors when building on GNU/Linux, then it is d552 5 a556 4
i?86-*-solaris2.10
d558 5 a562 5 with GCC 4.7, there is also a 64-bit ‘amd64-*-solaris2.1[0-9]*’ or ‘x86_64-*-solaris2.1[0-9]*’ configuration that corresponds to ‘sparcv9-sun-solaris2*’.It is recommended that you configure GCC to use the GNU assembler. The d564 11 a574 8 /usr/sfw/bin/gas), and Solaris 11, from GNU binutils 2.19 or newer (also available as /usr/bin/gas and /usr/gnu/bin/as), work fine. The current version, from GNU binutils 2.29, is known to work, but the version from GNU binutils 2.26 must be avoided. Recent versions of the Solaris assembler in /usr/ccs/bin/as work almost as well, though.
For linking, the Solaris linker, is preferred. If you want to use the GNU d576 1 a576 1 10, from GNU binutils 2.15 (in /usr/sfw/bin/gld), cannot be used, d578 13 a590 11 in /usr/gnu/bin/ld and /usr/bin/gld), works, as does the latest version, from GNU binutils 2.29.
To use GNU
as, configure with the options --with-gnu-as --with-as=/usr/sfw/bin/gas. It may be necessary to configure with --without-gnu-ld --with-ld=/usr/ccs/bin/ld to guarantee use of Sunld.
ia64-*-linux
d593 3 a595 3If you are using the installed system libunwind library with --with-system-libunwind, then you must use libunwind 0.98 or d597 2 a598 2
None of the following versions of GCC has an ABI that is compatible d601 3 a603 3 3.1, 3.0.2, 3.0.1, 3.0, Red Hat 2.96, and Trillian 000717. This primarily affects C++ programs and programs that create shared libraries. GCC 3.1 or later is recommended for compiling linux, the kernel. d606 5 a610 4
ia64-*-hpux*
d613 6 a618 6 the option --with-gnu-as may be necessary.The GCC libunwind library has not been ported to HPUX. This means that for GCC versions 3.2.3 and earlier, --enable-libunwind-exceptions is required to build GCC. For GCC 3.3 and later, this is the default. For gcc 3.4.3 and later, --enable-libunwind-exceptions is d620 7 a626 6
*-ibm-aix*
Support for AIX version 3 and older was discontinued in GCC 3.4. d628 2 a629 2
“out of memory” bootstrap failures may indicate a problem with d631 3 a633 3 /etc/security/limits system configuration file.
GCC 4.9 and above require a C++ compiler for bootstrap. IBM VAC++ / xlC d636 2 a637 2
GCC can bootstrap with recent versions of IBM XLC, but bootstrapping a640 5
d642 5 a646 2% LDR_CNTRL=MAXDATA=0x50000000 % export LDR_CNTRLOne can start with a pre-compiled version of GCC to build from sources. One may delete GCC’s “fixed” header files when starting a647 8
To speed up the configuration phases of bootstrapping and installing GCC, one may use GNU Bash instead of AIX
/bin/sh, e.g.,d649 7 a655 2% CONFIG_SHELL=/opt/freeware/bin/bash % export CONFIG_SHELLand then proceed as described in the build instructions, where we strongly recommend specifying an absolute path d657 2 a658 2
Because GCC on AIX is built as a 32-bit executable by default, d662 2 a663 2
Errors involving
allocawhen building GCC generally are due d666 5 a670 5 the build, the native AIX compiler must be invoked ascc(notxlc). Onceconfigurehas been informed ofxlc, one needs to use ‘make distclean’ to remove the configure cache files and ensure thatCCenvironment variable does not provide a definition that will confuseconfigure. d673 2 a674 2The native
asandldare recommended for d677 1 a677 1 AIX 5. The GNU Assembler has not been updated to support AIX 6 or d679 2 a680 2AIX 7.1 added partial support for DWARF debugging, but full support d685 2 a686 2
AIX 5.3 TL10, AIX 6.1 TL05 and AIX 7.1 TL00 introduced an AIX d694 2 a695 2
Building libstdc++.a requires a fix for an AIX Assembler bug d699 3 a701 3
‘libstdc++’ in GCC 3.4 increments the major version number of the shared object and GCC installation places the libstdc++.a d705 3 a707 3 versions of the ‘libstdc++’ shared object needs to be available to the AIX runtime loader. The GCC 3.1 ‘libstdc++.so.4’, if present, and GCC 3.3 ‘libstdc++.so.5’ shared objects can be d709 2 a710 8 the ‘F_LOADONLY’ flag in the shared object for each multilib libstdc++.a installed:
Extract the shared objects from the currently installed libstdc++.a archive:
d712 5 a716 1% ar -x libstdc++.a libstdc++.so.4 libstdc++.so.5Enable the ‘F_LOADONLY’ flag so that the shared object will be d718 8 a725 12
% strip -e libstdc++.so.4 libstdc++.so.5Archive the runtime-only shared object in the GCC 3.4 libstdc++.a archive:
% ar -q libstdc++.a libstdc++.so.4 libstdc++.so.5Eventually, the --with-aix-soname=svr4 d728 2 a729 2
Linking executables and shared libraries may produce warnings of d735 2 a736 2
AIX 4.3 utilizes a “large format” archive to support both 32-bit and d738 1 a738 1 to parse archive libraries did not handle the new format correctly. d741 1 a741 1 with AIX 4.3.1 should work for a 32-bit environment. The -g d745 3 a747 3
Some versions of the AIX binder (linker) can fail with a relocation overflow severe error when the -bbigtoc option is used to link d753 2 a754 2
The AIX 4.3.2.1 linker (bos.rte.bind_cmds Level 4.3.2.1) will dump core d759 2 a760 2
The initial assembler shipped with AIX 4.3.0 generates incorrect object d765 2 a766 2
AIX provides National Language Support (NLS). Compilers and assemblers d768 1 a768 1 formats including floating-point numbers (e.g., ‘.’ vs ‘,’ for d771 10 a780 9 expects. If one encounters this problem, set the
LANGenvironment variable to ‘C’ or ‘En_US’.A default can be specified with the -mcpu=cpu_type switch and using the configure option --with-cpu-cpu_type.
iq2000-*-elf
d783 6 a788 5
lm32-*-elf
Lattice Mico32 processor. d790 6 a795 5
lm32-*-uclinux
Lattice Mico32 processor. d797 6 a802 5
m32c-*-elf
Renesas M32C processor. d804 6 a809 5
m32r-*-elf
Renesas M32R processor. d811 5 a815 4
m68k-*-*
d817 2 a818 2 ‘m68k-*-elf*’, ‘m68k-*-rtems’, ‘m68k-*-uclinux’ and ‘m68k-*-linux’ d821 3 a823 3 --with-arch=m68k toconfigure. Alternatively, you can omit the M680x0 libraries by passing --with-arch=cf toconfigure. These targets default to 5206 or 5475 code as d825 4 a828 4 configured with --with-arch=cf and 68020 code otherwise.The ‘m68k-*-netbsd’ and ‘m68k-*-openbsd’ targets also support the --with-arch d830 14 a843 13 --with-arch=cf and 68020 code otherwise.
You can override the default processors listed above by configuring with --with-cpu=target. This target can either be a -mcpu argument or one of the following values: ‘m68000’, ‘m68010’, ‘m68020’, ‘m68030’, ‘m68040’, ‘m68060’, ‘m68020-40’ and ‘m68020-60’.
GCC requires at least binutils version 2.17 on these targets.
m68k-*-uclinux
d845 1 a845 1 ‘m68k-linux-gnu’ ABI rather than the ‘m68k-elf’ ABI. d848 6 a853 5
microblaze-*-elf
Xilinx MicroBlaze processor. d855 5 a859 4
mips-*-*
d861 1 a861 1 sections for all it’s [sic] sectons [sic]”, don’t worry about it. This d865 2 a866 2It would be nice to extend GAS to produce the gp tables, but they are d868 2 a869 2
The libstdc++ atomic locking routines for MIPS targets requires MIPS II d871 3 a873 3 make ‘mips*-*-*’ use the generic implementation instead. You can also configure for ‘mipsel-elf’ as a workaround. The ‘mips*-*-linux*’ target continues to use the MIPS II routines. More a874 1
d876 6 a881 4The built-in
__sync_*functions are available on MIPS II and later systems and others that support the ‘ll’, ‘sc’ and ‘sync’ instructions. This can be overridden by passing --with-llsc or --without-llsc when configuring GCC. d883 4 a886 4 missing, the default for ‘mips*-*-linux*’ targets is --with-llsc. The --with-llsc and --without-llsc configure options may be overridden at compile time by passing the -mllsc or -mno-llsc options to d888 3 a890 3MIPS systems check for division by zero (unless -mno-check-zero-division is passed to the compiler) by d895 2 a896 2 the use of break, use the --with-divide=breaks
configureoption when configuring GCC. The default is to d898 19 a916 4
moxie-*-elf
d918 6 a923 5
msp430-*-elf
TI MSP430 processor. d925 5 a929 4
nds32le-*-elf
d931 5 a935 4
nds32be-*-elf
d937 5 a941 4
nvptx-*-none
d943 3 a945 3Instead of GNU binutils, you will need to install nvptx-tools. d947 24 a970 22 --with-build-time-tools=[install-nvptx-tools]/nvptx-none/bin.
You will need newlib 3.0 git revision cd31fbb2aea25f94d7ecedc9db16dfc87ab0c316 or later. It can be automatically built together with GCC. For this, add a symbolic link to nvptx-newlib’s newlib directory to the directory containing the GCC sources.
Use the --disable-sjlj-exceptions and --enable-newlib-io-long-long options when configuring.
powerpc-*-*
You can specify a default version for the -mcpu=cpu_type switch by using the configure option --with-cpu-cpu_type.
You will need GNU binutils 2.15 or newer.
powerpc-*-darwin*
d972 2 a973 2Pre-installed versions of Mac OS X may not include any developer tools, d977 2 a978 2
This version of GCC requires at least cctools-590.36. The d982 5 a986 4
powerpc-*-elf
d988 5 a992 4
powerpc*-*-linux-gnu*
d994 5 a998 4
powerpc-*-netbsd*
d1000 5 a1004 4
powerpc-*-eabisim
d1007 5 a1011 4
powerpc-*-eabi
d1013 5 a1017 4
powerpcle-*-elf
d1019 5 a1023 4
powerpcle-*-eabisim
d1026 5 a1030 4
powerpcle-*-eabi
d1032 6 a1037 11
rl78-*-elf
The Renesas RL78 processor. This configuration is intended for embedded systems.
riscv32-*-elf
The RISC-V RV32 instruction set. d1039 7 d1048 6 a1053 5
riscv32-*-linux
The RISC-V RV32 instruction set running GNU/Linux. d1056 7 a1062 6
riscv64-*-elf
The RISC-V RV64 instruction set. This configuration is intended for embedded systems. d1065 6 a1070 5
riscv64-*-linux
The RISC-V RV64 instruction set running GNU/Linux. d1073 5 a1077 4
rx-*-elf
d1079 5 a1083 4
s390-*-linux*
d1085 5 a1089 4
s390x-*-linux*
d1091 5 a1095 4
s390x-ibm-tpf*
d1098 9 a1106 4
*-*-solaris2*
d1110 2 a1111 2Sun does not ship a C compiler with Solaris 2 before Solaris 10, though d1113 1 a1113 1 11, GCC 3.4.3 is available as
/usr/sfw/bin/gcc. Solaris 11 d1115 1 a1115 1/usr/gcc/4.5/bin/gccor similar. Alternatively, d1118 3 a1120 3The Solaris 2
/bin/shwill often fail to configure ‘libstdc++-v3’or ‘boehm-gc’. We therefore recommend using the a1121 5d1123 4 a1126 1% CONFIG_SHELL=/bin/ksh % export CONFIG_SHELLand proceed as described in the configure instructions. d1128 3 a1130 3
srcdir/configure.Solaris 10 comes with a number of optional OS packages. Some of these d1135 1 a1135 1 the packages that GCC needs are installed. d1137 2 a1138 2 the
pkginfocommand. To add an optional package, use thepkgaddcommand. For further details, see the Solaris 10 d1140 2 a1141 2Starting with Solaris 11, the package management has changed, so you d1144 4 a1147 4 packages is done with the
pkgcommand now.Trying to use the linker and other tools in /usr/ucb to install GCC has been observed to cause trouble. d1149 8 a1156 8 /usr/ucb from your
PATH.The build process works more smoothly with the legacy Sun tools so, if you have /usr/xpg4/bin in your
PATH, we recommend that you place /usr/bin before /usr/xpg4/bin for the duration of the build.We recommend the use of the Solaris assembler or the GNU assembler, in conjunction with the Solaris linker. The GNU
asd1158 6 a1163 5 /usr/sfw/bin/gas), and Solaris 11, from GNU binutils 2.19 or newer (also in /usr/bin/gas and /usr/gnu/bin/as), are known to work. The current version, from GNU binutils 2.29, is known to work as well. Note that your mileage may vary d1165 5 a1169 4 combination GNUas+ Sunldshould reasonably work, the reverse combination Sunas+ GNUldmay fail to build or cause memory corruption at runtime in some cases for C++ programs. GNUldusually works as well, although the version included in d1171 9 a1179 9 version (2.29) is known to work, but generally lacks platform specific features, so better stay with Solarisld. To use the LTO linker plugin (-fuse-linker-plugin) with GNUld, GNU binutils must be configured with --enable-largefile.To enable symbol versioning in ‘libstdc++’ with the Solaris linker, you need to have any version of GNU
c++filt, which is part of GNU binutils. ‘libstdc++’ symbol versioning will be disabled if no appropriate version is found. Solarisc++filtfrom the Solaris d1181 4 a1184 4Sun bug 4927647 sometimes causes random spurious testsuite failures related to missing diagnostic output. This bug doesn’t affect GCC itself, rather it is a kernel bug triggered by the
expectd1186 1 a1186 1 causes theexpectprogram to miss anticipated output, extra d1188 5 a1192 4
sparc*-*-*
d1196 2 a1197 2Newer versions of the GNU Multiple Precision Library (GMP), the MPFR d1202 5 a1206 4
sparc-sun-solaris2*
d1208 1 a1208 1 produced are smaller than the ones produced using Sun’s native tools; d1211 2 a1212 2Starting with Solaris 7, the operating system is capable of executing d1214 1 a1214 1 this; the -m64 option enables 64-bit code generation. d1216 1 a1216 1 should try the -mtune=ultrasparc option instead, which produces d1219 2 a1220 2
When configuring the GNU Multiple Precision Library (GMP), the MPFR d1222 2 a1223 2 target triplet must be specified as the
buildparameter on the configure line. This target triplet can be obtained by invoking./config.guessin the toplevel source directory of GCC (and d1225 7 a1231 8% ./configure --build=sparc-sun-solaris2.9 --prefix=xxx
sparc-sun-solaris2.10
d1234 14 a1247 15ld: fatal: relocation error: R_SPARC_TLS_LE_HIX22: file /var/tmp//ccamPA1v.o: symbol <unknown>: bad symbol type SECT: symbol type must be TLSThis bug is fixed in Sun patch 118683-03 or later.
sparc-*-linux*
sparc64-*-solaris2*
d1250 1 a1250 1 as thebuildparameter on the configure line. For example d1252 13 a1264 13% ./configure --build=sparc64-sun-solaris2.9 --prefix=xxx
sparcv9-*-solaris2*
This is a synonym for ‘sparc64-*-solaris2*’.
c6x-*-*
d1266 5 a1270 4
tilegx-*-linux*
d1273 5 a1277 4
tilegxbe-*-linux*
d1280 5 a1284 4
tilepro-*-linux*
d1287 6 a1292 5
visium-*-elf
CDS VISIUMcore processor. d1294 5 a1298 4
*-*-vxworks*
d1300 2 a1301 2 very recent VxWorks 5.5 (aka Tornado 2.2) release, and only on PowerPC. We welcome patches for other architectures supported by VxWorks 5.5. d1306 12 a1317 12VxWorks comes with an older version of GCC installed in $WIND_BASE/host; we recommend you do not overwrite it. Choose an installation prefix entirely outside $WIND_BASE. Before running
configure, create the directories prefix and prefix/bin. Link or copy the appropriate assembler, linker, etc. into prefix/bin, and set your PATH to include that directory while running bothconfigureandmake.You must give
configurethe --with-headers=$WIND_BASE/target/h switch so that it can d1319 4 a1322 4 target only, you must also specify --target=target.configurewill attempt to create the directory prefix/target/sys-include and copy files into it; make sure the user runningconfigurehas sufficient privilege d1324 3 a1326 3GCC’s exception handling runtime requires a special “configlette” module, contrib/gthr_supp_vxw_5x.c. Follow the instructions in d1329 5 a1333 4
x86_64-*-*, amd64-*-*
d1335 1 a1335 1 (amd64-*-* is an alias for x86_64-*-*) on GNU/Linux, FreeBSD and NetBSD. d1337 6 a1342 5 both 64-bit x86-64 and 32-bit x86 code (via the -m32 switch).
x86_64-*-solaris2.1[0-9]*
d1344 1 a1344 1 processor (‘amd64-*-*’ is an alias for ‘x86_64-*-*’) on d1347 1 a1347 1 can generate 64-bit x86-64 code with the -m64 switch. Since d1349 9 a1357 8 can generate 32-bit code with -m32. To configure and build this way, you have to provide all support libraries like libgmp as 64-bit code, configure with --target=x86_64-pc-solaris2.1x and ‘CC=gcc -m64’.
xtensa*-*-elf
d1359 1 a1359 1 ‘newlib’ C library. It uses ELF but does not support shared d1363 3 a1365 3The Xtensa configuration information must be specified prior to building GCC. The include/xtensa-config.h header d1370 5 a1374 4
xtensa*-*-linux*
d1378 1 a1378 1 -fpic or -fPIC options are used. In other d1380 7 a1386 5 ‘xtensa*-*-elf’ target.
Microsoft Windows
a1387 2Intel 16-bit versions
d1390 2 a1391 2However, the 32-bit port has limited support for Microsoft d1393 3 a1395 3
Intel 32-bit versions
a1399 9d1401 11 a1411 2
- Cygwin *-*-cygwin: Cygwin provides a user-space Linux API emulation layer in the Win32 subsystem.
- MinGW *-*-mingw32: MinGW is a native GCC port for the Win32 subsystem that provides a subset of POSIX.
- MKS i386-pc-mks: NuTCracker from MKS. See https://www.mkssoftware.com for more information.
Intel 64-bit versions
d1413 1 a1413 1 runtime library, available from http://mingw-w64.org/doku.php. d1415 5 a1419 5Presently Windows for Itanium is not supported.
Windows CE
d1422 3 a1424 3Other Windows Platforms
d1426 2 a1427 2GCC no longer supports the Windows POSIX subsystem. However, it does d1429 4 a1432 4
Old target names including *-*-winnt and *-*-windowsnt are no longer used.
PW32 (i386-pc-pw32) support was never completed, and the project seems to d1434 7 a1440 6
UWIN support has been removed due to a lack of maintenance.
*-*-cygwin
d1443 5 a1447 5GCC will build under Cygwin without modification; it does not build with Microsoft’s C++ compiler and there are no plans to make it do so.
The Cygwin native compiler can be configured to target any 32-bit x86 d1452 6 a1457 5
*-*-mingw32
GCC will build with and support only MinGW runtime 3.12 and later. d1460 5 a1464 4
Older systems
d1469 2 a1470 2Starting with GCC 3.1, each release has a list of “obsoleted” systems. d1472 1 a1472 1
configurewill fail unless the --enable-obsolete d1475 2 a1476 2Support for old systems as hosts for GCC can cause problems if the d1483 2 a1484 3 old-releases directory on the GCC mirror sites. Header bugs may generally be avoided using
fixincludes, but bugs or deficiencies in libraries and the d1486 2 a1487 2Support for older systems as targets for cross-compilation is less d1495 3 a1497 3
For some systems, old versions of GNU binutils may also be useful, and are available from pub/binutils/old-releases on d1499 2 a1500 2
Some of the information on specific systems above relates to d1504 5 a1508 4
all ELF targets (SVR4, Solaris 2, etc.)
a1512 1 d1514 1 a1514 2
a1515 5
d1517 5 a1522 2 @ 1.1.1.11 log @import GCC 7.5.0. doing this here so that the vendor branch has the code we'll merge into gcc.old and the netbsd-9 tree gcc tree. GCC 8.4.0 will be imported immediately on top of this again, restoring the current status. these PRs in the GCC bugzilla are fixed with this update: 89869 80693 89795 84272 85593 86669 87148 87647 87895 88103 88107 88563 88870 88976 89002 89187 89195 89234 89303 89314 89354 89361 89403 89412 89512 89520 89590 89621 89663 89679 89704 89734 89872 89933 90090 90208 87075 85870 89009 89242 88167 80864 81933 85890 86608 87145 88857 89024 89119 89214 89511 89612 89705 89400 81740 82186 84552 86554 87609 88105 88149 88415 88739 88903 89135 89223 89296 89505 89572 89677 89698 89710 90006 90020 90071 90328 90474 91126 91162 91812 91887 90075 88998 89945 87047 87506 88074 88656 88740 91137 89008 84010 89349 91136 91347 91995 89397 87030 60702 78884 85594 87649 87725 88181 88470 88553 88568 88588 88620 88644 88906 88949 89246 89587 89726 89768 89796 89998 90108 90756 90950 91704 88825 88983 86538 51333 89446 90220 91308 92143 89392 90213 90278 91131 91200 91510 89037 91481 87673 88418 88938 88948 90547 27221 58321 61250 67183 67958 77583 83531 86215 88648 88720 88726 89091 89466 89629 90105 90329 90585 90760 90924 91087 89222 81956 71861 35031 69455 81849 82993 85798 88138 88155 88169 88205 88206 88228 88249 88269 88376 77703 80260 82077 86248 88393 90786 57048 66089 66695 67679 68009 71723 72714 84394 85544 87734 88298 90937 91557 63891 64132 65342 68649 68717 71066 71860 71935 77746 78421 78645 78865 78983 79485 79540 85953 88326 89651 90744 @ text @d1 3 a3 10Host/Target specific installation notes for GCC a61 5Host/Target specific installation notes for GCC
Please read this document carefully before installing the GNU Compiler Collection on your machine. d63 2 a64 4Note that this list of install notes is not a list of supported hosts or targets. Not all supported hosts and targets are listed here, only the ones that require host-specific or target-specific information have to. a65 78
- aarch64*-*-*
- alpha*-*-*
- alpha*-dec-osf5.1
- amd64-*-solaris2.10
- arm-*-eabi
- avr
- Blackfin
- DOS
- *-*-freebsd*
- h8300-hms
- hppa*-hp-hpux*
- hppa*-hp-hpux10
- hppa*-hp-hpux11
- *-*-linux-gnu
- i?86-*-linux*
- i?86-*-solaris2.10
- ia64-*-linux
- ia64-*-hpux*
- *-ibm-aix*
- iq2000-*-elf
- lm32-*-elf
- lm32-*-uclinux
- m32c-*-elf
- m32r-*-elf
- m68k-*-*
- m68k-uclinux
- microblaze-*-elf
- mips-*-*
- mips-sgi-irix5
- mips-sgi-irix6
- nds32le-*-elf
- nds32be-*-elf
- nvptx-*-none
- powerpc*-*-*
- powerpc-*-darwin*
- powerpc-*-elf
- powerpc*-*-linux-gnu*
- powerpc-*-netbsd*
- powerpc-*-eabisim
- powerpc-*-eabi
- powerpcle-*-elf
- powerpcle-*-eabisim
- powerpcle-*-eabi
- riscv32-*-elf
- riscv32-*-linux
- riscv64-*-elf
- riscv64-*-linux
- s390-*-linux*
- s390x-*-linux*
- s390x-ibm-tpf*
- *-*-solaris2*
- sparc*-*-*
- sparc-sun-solaris2*
- sparc-sun-solaris2.10
- sparc-*-linux*
- sparc64-*-solaris2*
- sparcv9-*-solaris2*
- c6x-*-*
- tilegx-*-linux*
- tilegxbe-*-linux*
- tilepro-*-linux*
- visium-*-elf
- *-*-vxworks*
- x86_64-*-* amd64-*-*
- x86_64-*-solaris2.1[0-9]*
- xtensa*-*-elf
- xtensa*-*-linux*
- Microsoft Windows
- *-*-cygwin
- *-*-mingw32
- OS/2
- Older systems
a66 2
- all ELF targets (SVR4, Solaris 2, etc.)
a67 1aarch64*-*-*
a68 3Binutils pre 2.24 does not have support for selecting -mabi and does not support ILP32. If it is used to build GCC 4.9 or later, GCC will not support option -mabi=ilp32. a69 9
To enable a workaround for the Cortex-A53 erratum number 835769 by default (for all CPUs regardless of -mcpu option given) at configure time use the --enable-fix-cortex-a53-835769 option. This will enable the fix by default and can be explicitly disabled during compilation by passing the -mno-fix-cortex-a53-835769 option. Conversely, --disable-fix-cortex-a53-835769 will disable the workaround by default. The workaround is disabled by default if neither of --enable-fix-cortex-a53-835769 or --disable-fix-cortex-a53-835769 is given at configure time. a70 10
To enable a workaround for the Cortex-A53 erratum number 843419 by default (for all CPUs regardless of -mcpu option given) at configure time use the --enable-fix-cortex-a53-843419 option. This workaround is applied at link time. Enabling the workaround will cause GCC to pass the relevant option to the linker. It can be explicitly disabled during compilation by passing the -mno-fix-cortex-a53-843419 option. Conversely, --disable-fix-cortex-a53-843419 will disable the workaround by default. The workaround is disabled by default if neither of --enable-fix-cortex-a53-843419 or --disable-fix-cortex-a53-843419 is given at configure time. a71 1
a72 1alpha*-*-*
a73 4This section contains general configuration information for all alpha-based platforms using ELF (in particular, ignore this section for DEC OSF/1, Digital UNIX and Tru64 UNIX). In addition to reading this section, please read all other sections that match your target. a74 4
We require binutils 2.11.2 or newer. Previous binutils releases had a number of problems with DWARF 2 debugging information, not the least of which is incorrect linking of shared libraries. a75 1
a76 1alpha*-dec-osf5.1
a77 3Systems using processors that implement the DEC Alpha architecture and are running the DEC/Compaq/HP Unix (DEC OSF/1, Digital UNIX, or Compaq/HP Tru64 UNIX) operating system, for example the DEC Alpha AXP systems. a78 4
Support for Tru64 UNIX V5.1 has been removed in GCC 4.8. As of GCC 4.6, support for Tru64 UNIX V4.0 and V5.0 has been removed. As of GCC 3.2, versions before
alpha*-dec-osf4are no longer supported. (These are the versions which identify themselves as DEC OSF/1.) a79 1
a80 1amd64-*-solaris2.1[0-9]*
a81 1This is a synonym for ‘x86_64-*-solaris2.1[0-9]*’. a82 1
a83 1arc-*-elf32
a84 3Use ‘configure --target=arc-elf32 --with-cpu=cpu --enable-languages="c,c++"’ to configure GCC, with cpu being one of ‘arc600’, ‘arc601’, or ‘arc700’. a85 1
a86 1arc-linux-uclibc
a87 1Use ‘configure --target=arc-linux-uclibc --with-cpu=arc700 --enable-languages="c,c++"’ to configure GCC. d89 5 a93 3
arm-*-eabi
d95 148 d244 2 a245 2Building the Ada frontend commonly fails (an infinite loop executing d248 4 a251 5
avr
d253 1 a253 1 applications. There are no standard Unix configurations. d256 4 a259 4Use ‘configure --target=avr --enable-languages="c"’ to configure GCC.
Further installation notes and other useful information about AVR tools d261 17 a277 16
The following error:
Error: register requiredindicates that you should upgrade to a newer version of the binutils.
Blackfin
The Blackfin processor, an Analog Devices DSP. d279 2 a280 2
More information, and a version of binutils with support for this processor, d282 4 a285 5
CR16
d288 1 d290 11 a300 12See “CR16 Options” in the main manual for a list of CR16-specific options.
Use ‘configure --target=cr16-elf --enable-languages=c,c++’ to configure GCC for building a CR16 elf cross-compiler.
Use ‘configure --target=cr16-uclinux --enable-languages=c,c++’ to configure GCC for building a CR16 uclinux cross-compiler.
CRIS
d303 2 a304 2See “CRIS Options” in the main manual d306 11 a316 7
There are a few different CRIS targets:
cris-axis-elf- Mainly for monolithic embedded systems. Includes a multilib for the ‘v10’ core used in ‘ETRAX 100 LX’.
cris-axis-linux-gnu- A GNU/Linux port for the CRIS architecture, currently targeting ‘ETRAX 100 LX’ by default. d319 1 a319 1
Pre-packaged tools can be obtained from d323 4 a326 5
DOS
d328 2 a329 2You cannot install GCC by itself on MSDOS; it will not compile under d333 5 a337 6
epiphany-*-elf
Adapteva Epiphany. d339 4 a342 5
*-*-freebsd*
d346 2 a347 2In order to better utilize FreeBSD base system functionality and match d352 1 a352 1 libgcc_s.so.1 and boehm-gc (on FreeBSD 7 or later) is enabled d354 4 a357 4
We support FreeBSD using the ELF file format with DWARF 2 debugging for all CPU architectures. You may use -gstabs instead of -g, if you really want the old debugging format. There are d361 1 a361 1 GCC. In particular, --enable-threads is now configured by d367 2 a368 2
The version of binutils installed in /usr/bin probably works d370 1 a370 1 binutils and/or the version found in /usr/ports/devel/binutils has d375 5 a379 6
ft32-*-elf
The FT32 processor. d381 4 a384 5
h8300-hms
d386 4 a389 4Please have a look at the binaries page.
The calling convention and structure layout has changed in release 2.6. d393 4 a396 5
hppa*-hp-hpux*
d398 2 a399 2We require using gas/binutils on all hppa platforms. Version 2.19 or d401 7 a407 7
It may be helpful to configure GCC with the --with-gnu-as and --with-as=... options to ensure that GCC can find GAS.
The HP assembler should not be used with GCC. It is rarely tested and may not work. It shouldn't be used with any languages other than C due to its d409 2 a410 2
Specifically, -g does not work (HP-UX uses a peculiar debugging d414 3 a416 3 ‘make all-host all-target’ after getting the failure from ‘make’.
Various GCC features are not supported. For example, it does not support weak d420 2 a421 2
There are two default scheduling models for instructions. These are d423 1 a423 1 architecture specified for the target machine when configuring. d425 3 a427 3 the target is a ‘hppa1*’ machine.
The PROCESSOR_8000 model is not well suited to older processors. Thus, d432 3 a434 3
As of GCC 4.0, GCC uses the UNIX 95 namespace for HP-UX 10.10 through 11.00, and the UNIX 98 namespace for HP-UX 11.11 and later. d438 3 a440 3 in a number of ways. With HP cc, UNIX_STD can be set to ‘95’ or ‘98’. Another way is to add an appropriate set of predefines to CC. The description for the munix= option contains d442 6 a447 7
More specific information to ‘hppa*-hp-hpux*’ targets follows.
hppa*-hp-hpux10
d450 2 a451 2The C++ ABI has changed incompatibly in GCC 4.0. COMDAT subspaces are d455 4 a458 5
hppa*-hp-hpux11
d461 4 a464 4The libffi library haven't been ported to 64-bit HP-UX and doesn't build.
Refer to binaries for information about obtaining d468 3 a470 3
Starting with GCC 3.4 an ISO C compiler is required to bootstrap. The bundled compiler supports only traditional C; you will need either HP's d472 2 a473 2
It is possible to build GCC 3.3 starting with the bundled HP compiler, d476 2 a477 2
There are several possible approaches to building the distribution. d480 1 a480 1 first using the HP tools, then build binutils, then rebuild GCC. d483 2 a484 2
On 64-bit capable systems, there are two distinct targets. Different d486 3 a488 3 the same system. The ‘hppa[1-2]*-hp-hpux11*’ target generates code for the 32-bit PA-RISC runtime architecture and uses the HP linker. The ‘hppa64-hp-hpux11*’ target generates 64-bit code for the d490 11 a500 11
The script config.guess now selects the target type based on the compiler detected during configuration. You must define PATH or CC so that configure finds an appropriate compiler for the initial bootstrap. When CC is used, the definition should contain the options that are needed whenever CC is used.
Specifically, options that determine the runtime architecture must be in CC to correctly select the target for the build. It is also convenient to place many other compiler options in CC. For example, CC="cc -Ac +DA2.0W -Wp,-H16376 -D_CLASSIC_TYPES -D_HPUX_SOURCE" d502 2 a503 2 64-bit K&R/bundled mode. The +DA2.0W option will result in the automatic selection of the ‘hppa64-hp-hpux11*’ target. The d507 4 a510 4 -Ac option. These defines aren't necessary with -Ae.
It is best to explicitly configure the ‘hppa64-hp-hpux11*’ target with the --with-ld=... option. This overrides the standard d513 1 a513 1 result, it's not possible to switch linkers in the middle of a GCC build. d516 2 a517 2
A recent linker patch must be installed for the correct operation of d521 1 a521 1
PHSS_24304, might be usable but it hasn't been tested. These d524 2 a525 2The patches are necessary for the support of weak symbols on the d528 1 a528 1 to HP-UX 11, there are bugs in the linker support for secondary symbols. d532 2 a533 2
GCC 3.3 uses the ELF DT_INIT_ARRAY and DT_FINI_ARRAY capabilities to d535 1 a535 1 uses the linker +init and +fini options for the same d538 1 a538 1 problem on the 64-bit port resulting from HP's non-standard use of d540 3 a542 3
Although the HP and GNU linkers are both supported for the ‘hppa64-hp-hpux11*’ target, it is strongly recommended that the d544 2 a545 2
At this time, the GNU linker does not support the creation of long d549 2 a550 2 with -static, and with dwarf2 unwind and exception support. It also doesn't provide stubs for internal calls to global functions d552 2 a553 2
The HP dynamic loader does not support GNU symbol versioning, so symbol d555 8 a562 9 versioning with --disable-symvers when using GNU ld.
POSIX threads are the default. The optional DCE thread library is not supported, so --enable-threads=dce does not work.
*-*-linux-gnu
d566 5 a570 6
i?86-*-linux*
As of GCC 3.3, binutils 2.13.1 or later is required for this platform. d572 2 a573 2
If you receive Signal 11 errors when building on GNU/Linux, then it is d576 4 a579 5
i?86-*-solaris2.10
d581 5 a585 5 with GCC 4.7, there is also a 64-bit ‘amd64-*-solaris2.1[0-9]*’ or ‘x86_64-*-solaris2.1[0-9]*’ configuration that corresponds to ‘sparcv9-sun-solaris2*’.It is recommended that you configure GCC to use the GNU assembler. The d587 8 a594 11 /usr/sfw/bin/gas), and Solaris 11, from GNU binutils 2.19 or newer (also available as /usr/bin/gas and /usr/gnu/bin/as), work fine. Please note that the current version, from GNU binutils 2.26, only works on Solaris 12 when using the Solaris linker. On Solaris 10 and 11, you either have to wait for GNU binutils 2.26.1 or newer, or stay with GNU binutils 2.25.1. Recent versions of the Solaris assembler in /usr/ccs/bin/as work almost as well, though.
For linking, the Solaris linker, is preferred. If you want to use the GNU d596 1 a596 1 10, from GNU binutils 2.15 (in /usr/sfw/bin/gld), cannot be used, d598 11 a608 13 in /usr/gnu/bin/ld and /usr/bin/gld), works, as does the latest version, from GNU binutils 2.26.
To use GNU as, configure with the options --with-gnu-as --with-as=/usr/sfw/bin/gas. It may be necessary to configure with --without-gnu-ld --with-ld=/usr/ccs/bin/ld to guarantee use of Sun ld.
ia64-*-linux
d611 3 a613 3If you are using the installed system libunwind library with --with-system-libunwind, then you must use libunwind 0.98 or d615 2 a616 2
None of the following versions of GCC has an ABI that is compatible d619 3 a621 3 3.1, 3.0.2, 3.0.1, 3.0, Red Hat 2.96, and Trillian 000717. This primarily affects C++ programs and programs that create shared libraries. GCC 3.1 or later is recommended for compiling linux, the kernel. d624 4 a627 5
ia64-*-hpux*
d630 6 a635 6 the option --with-gnu-as may be necessary.The GCC libunwind library has not been ported to HPUX. This means that for GCC versions 3.2.3 and earlier, --enable-libunwind-exceptions is required to build GCC. For GCC 3.3 and later, this is the default. For gcc 3.4.3 and later, --enable-libunwind-exceptions is d637 6 a642 7
*-ibm-aix*
Support for AIX version 3 and older was discontinued in GCC 3.4. d644 2 a645 2
“out of memory” bootstrap failures may indicate a problem with d647 3 a649 3 /etc/security/limits system configuration file.
GCC 4.9 and above require a C++ compiler for bootstrap. IBM VAC++ / xlC d652 2 a653 2
GCC can bootstrap with recent versions of IBM XLC, but bootstrapping d657 5 d663 2 a664 5
% LDR_CNTRL=MAXDATA=0x50000000 % export LDR_CNTRLOne can start with a pre-compiled version of GCC to build from sources. One may delete GCC's “fixed” header files when starting d666 8 d675 2 a676 7
To speed up the configuration phases of bootstrapping and installing GCC, one may use GNU Bash instead of AIX /bin/sh, e.g.,
% CONFIG_SHELL=/opt/freeware/bin/bash % export CONFIG_SHELLand then proceed as described in the build instructions, where we strongly recommend specifying an absolute path d678 2 a679 2
Because GCC on AIX is built as a 32-bit executable by default, d683 2 a684 2
Errors involving
allocawhen building GCC generally are due d687 5 a691 5 the build, the native AIX compiler must be invoked as cc (not xlc). Once configure has been informed of xlc, one needs to use ‘make distclean’ to remove the configure cache files and ensure that CC environment variable does not provide a definition that will confuse configure. d694 2 a695 2The native as and ld are recommended for d698 1 a698 1 AIX 5. The GNU Assembler has not been updated to support AIX 6 or d700 2 a701 2
AIX 7.1 added partial support for DWARF debugging, but full support d706 2 a707 2
AIX 5.3 TL10, AIX 6.1 TL05 and AIX 7.1 TL00 introduced an AIX d715 2 a716 2
Building libstdc++.a requires a fix for an AIX Assembler bug d720 3 a722 3
‘libstdc++’ in GCC 3.4 increments the major version number of the shared object and GCC installation places the libstdc++.a d726 3 a728 3 versions of the ‘libstdc++’ shared object needs to be available to the AIX runtime loader. The GCC 3.1 ‘libstdc++.so.4’, if present, and GCC 3.3 ‘libstdc++.so.5’ shared objects can be d730 8 a737 2 the ‘F_LOADONLY’ flag in the shared object for each multilib libstdc++.a installed: d739 1 a739 5
Extract the shared objects from the currently installed libstdc++.a archive:
% ar -x libstdc++.a libstdc++.so.4 libstdc++.so.5Enable the ‘F_LOADONLY’ flag so that the shared object will be d741 12 a752 8
% strip -e libstdc++.so.4 libstdc++.so.5Archive the runtime-only shared object in the GCC 3.4 libstdc++.a archive:
% ar -q libstdc++.a libstdc++.so.4 libstdc++.so.5Eventually, the --with-aix-soname=svr4 d755 2 a756 2
Linking executables and shared libraries may produce warnings of d762 2 a763 2
AIX 4.3 utilizes a “large format” archive to support both 32-bit and d765 1 a765 1 to parse archive libraries did not handle the new format correctly. d768 1 a768 1 with AIX 4.3.1 should work for a 32-bit environment. The -g d772 3 a774 3
Some versions of the AIX binder (linker) can fail with a relocation overflow severe error when the -bbigtoc option is used to link d780 2 a781 2
The AIX 4.3.2.1 linker (bos.rte.bind_cmds Level 4.3.2.1) will dump core d786 2 a787 2
The initial assembler shipped with AIX 4.3.0 generates incorrect object d792 2 a793 2
AIX provides National Language Support (NLS). Compilers and assemblers d795 1 a795 1 formats including floating-point numbers (e.g., ‘.’ vs ‘,’ for d798 9 a806 10 expects. If one encounters this problem, set the LANG environment variable to ‘C’ or ‘En_US’.
A default can be specified with the -mcpu=cpu_type switch and using the configure option --with-cpu-cpu_type.
iq2000-*-elf
d809 5 a813 6
lm32-*-elf
Lattice Mico32 processor. d815 5 a819 6
lm32-*-uclinux
Lattice Mico32 processor. d821 5 a825 6
m32c-*-elf
Renesas M32C processor. d827 5 a831 6
m32r-*-elf
Renesas M32R processor. d833 4 a836 5
m68k-*-*
d838 2 a839 2 ‘m68k-*-elf*’, ‘m68k-*-rtems’, ‘m68k-*-uclinux’ and ‘m68k-*-linux’ d842 3 a844 3 --with-arch=m68k to configure. Alternatively, you can omit the M680x0 libraries by passing --with-arch=cf to configure. These targets default to 5206 or 5475 code as d846 4 a849 4 configured with --with-arch=cf and 68020 code otherwise.The ‘m68k-*-netbsd’ and ‘m68k-*-openbsd’ targets also support the --with-arch d851 13 a863 14 --with-arch=cf and 68020 code otherwise.
You can override the default processors listed above by configuring with --with-cpu=target. This target can either be a -mcpu argument or one of the following values: ‘m68000’, ‘m68010’, ‘m68020’, ‘m68030’, ‘m68040’, ‘m68060’, ‘m68020-40’ and ‘m68020-60’.
GCC requires at least binutils version 2.17 on these targets.
m68k-*-uclinux
d865 1 a865 1 ‘m68k-linux-gnu’ ABI rather than the ‘m68k-elf’ ABI. d868 5 a872 6
microblaze-*-elf
Xilinx MicroBlaze processor. d874 4 a877 5
mips-*-*
d879 1 a879 1 sections for all it's [sic] sectons [sic]”, don't worry about it. This d883 2 a884 2It would be nice to extend GAS to produce the gp tables, but they are d886 2 a887 2
The libstdc++ atomic locking routines for MIPS targets requires MIPS II d889 3 a891 3 make ‘mips*-*-*’ use the generic implementation instead. You can also configure for ‘mipsel-elf’ as a workaround. The ‘mips*-*-linux*’ target continues to use the MIPS II routines. More d893 1 d895 4 a898 6
The built-in
__sync_*functions are available on MIPS II and later systems and others that support the ‘ll’, ‘sc’ and ‘sync’ instructions. This can be overridden by passing --with-llsc or --without-llsc when configuring GCC. d900 4 a903 4 missing, the default for ‘mips*-*-linux*’ targets is --with-llsc. The --with-llsc and --without-llsc configure options may be overridden at compile time by passing the -mllsc or -mno-llsc options to d905 3 a907 3MIPS systems check for division by zero (unless -mno-check-zero-division is passed to the compiler) by d912 2 a913 2 the use of break, use the --with-divide=breaks configure option when configuring GCC. The default is to d915 4 a918 19
mips-sgi-irix5
Support for IRIX 5 has been removed in GCC 4.6.
mips-sgi-irix6
Support for IRIX 6.5 has been removed in GCC 4.8. Support for IRIX 6 releases before 6.5 has been removed in GCC 4.6, as well as support for the O32 ABI.
moxie-*-elf
d920 5 a924 6
msp430-*-elf
TI MSP430 processor. d926 4 a929 5
nds32le-*-elf
d931 4 a934 5
nds32be-*-elf
d936 4 a939 5
nvptx-*-none
d941 3 a943 3Instead of GNU binutils, you will need to install nvptx-tools. d945 22 a966 24 --with-build-time-tools=[install-nvptx-tools]/nvptx-none/bin.
A nvptx port of newlib is available at nvptx-newlib. It can be automatically built together with GCC. For this, add a symbolic link to nvptx-newlib's newlib directory to the directory containing the GCC sources.
Use the --disable-sjlj-exceptions and --enable-newlib-io-long-long options when configuring.
powerpc-*-*
You can specify a default version for the -mcpu=cpu_type switch by using the configure option --with-cpu-cpu_type.
You will need GNU binutils 2.15 or newer.
powerpc-*-darwin*
d968 2 a969 2Pre-installed versions of Mac OS X may not include any developer tools, d973 2 a974 2
This version of GCC requires at least cctools-590.36. The d978 4 a981 5
powerpc-*-elf
d983 4 a986 5
powerpc*-*-linux-gnu*
d988 4 a991 5
powerpc-*-netbsd*
d993 4 a996 5
powerpc-*-eabisim
d999 4 a1002 5
powerpc-*-eabi
d1004 4 a1007 5
powerpcle-*-elf
d1009 4 a1012 5
powerpcle-*-eabisim
d1015 4 a1018 5
powerpcle-*-eabi
d1020 11 a1030 6
rl78-*-elf
The Renesas RL78 processor. a1031 7
riscv32-*-elf
The RISC-V RV32 instruction set. This configuration is intended for embedded systems. d1034 5 a1038 6
riscv32-*-linux
The RISC-V RV32 instruction set running GNU/Linux. d1041 6 a1046 7
riscv64-*-elf
The RISC-V RV64 instruction set. This configuration is intended for embedded systems. d1049 5 a1053 6
riscv64-*-linux
The RISC-V RV64 instruction set running GNU/Linux. d1056 4 a1059 5
rx-*-elf
d1061 4 a1064 5
s390-*-linux*
d1066 4 a1069 5
s390x-*-linux*
d1071 4 a1074 5
s390x-ibm-tpf*
d1077 4 a1080 9
*-*-solaris2*
d1084 2 a1085 2Sun does not ship a C compiler with Solaris 2 before Solaris 10, though d1087 1 a1087 1 11, GCC 3.4.3 is available as /usr/sfw/bin/gcc. Solaris 11 d1089 1 a1089 1 /usr/gcc/4.5/bin/gcc or similar. Alternatively, d1092 3 a1094 3
The Solaris 2 /bin/sh will often fail to configure ‘libstdc++-v3’or ‘boehm-gc’. We therefore recommend using the d1096 5 d1102 1 a1102 4
% CONFIG_SHELL=/bin/ksh % export CONFIG_SHELLand proceed as described in the configure instructions. d1104 3 a1106 3 srcdir/configure.
Solaris 10 comes with a number of optional OS packages. Some of these d1111 1 a1111 1 the packages that GCC needs are installed. d1113 2 a1114 2 the pkginfo command. To add an optional package, use the pkgadd command. For further details, see the Solaris 10 d1116 2 a1117 2
Starting with Solaris 11, the package management has changed, so you d1120 4 a1123 4 packages is done with the pkg command now.
Trying to use the linker and other tools in /usr/ucb to install GCC has been observed to cause trouble. d1125 8 a1132 8 /usr/ucb from your PATH.
The build process works more smoothly with the legacy Sun tools so, if you have /usr/xpg4/bin in your PATH, we recommend that you place /usr/bin before /usr/xpg4/bin for the duration of the build.
We recommend the use of the Solaris assembler or the GNU assembler, in conjunction with the Solaris linker. The GNU as d1134 5 a1138 6 /usr/sfw/bin/gas), and Solaris 11, from GNU binutils 2.19 or newer (also in /usr/bin/gas and /usr/gnu/bin/as), are known to work. Current versions of GNU binutils (2.26) are known to work as well, with the caveat mentioned in i?86-*-solaris2.10 . Note that your mileage may vary d1140 4 a1143 5 combination GNU as + Sun ld should reasonably work, the reverse combination Sun as + GNU ld may fail to build or cause memory corruption at runtime in some cases for C++ programs. GNU ld usually works as well, although the version included in d1145 9 a1153 9 version (2.26) is known to work, but generally lacks platform specific features, so better stay with Solaris ld. To use the LTO linker plugin (-fuse-linker-plugin) with GNU ld, GNU binutils must be configured with --enable-largefile.
To enable symbol versioning in ‘libstdc++’ with the Solaris linker, you need to have any version of GNU c++filt, which is part of GNU binutils. ‘libstdc++’ symbol versioning will be disabled if no appropriate version is found. Solaris c++filt from the Solaris d1155 4 a1158 4
Sun bug 4927647 sometimes causes random spurious testsuite failures related to missing diagnostic output. This bug doesn't affect GCC itself, rather it is a kernel bug triggered by the expect d1160 1 a1160 1 causes the expect program to miss anticipated output, extra d1162 4 a1165 5
sparc*-*-*
d1169 2 a1170 2Newer versions of the GNU Multiple Precision Library (GMP), the MPFR d1175 4 a1178 5
sparc-sun-solaris2*
d1180 1 a1180 1 produced are smaller than the ones produced using Sun's native tools; d1183 2 a1184 2Starting with Solaris 7, the operating system is capable of executing d1186 1 a1186 1 this; the -m64 option enables 64-bit code generation. d1188 1 a1188 1 should try the -mtune=ultrasparc option instead, which produces d1191 2 a1192 2
When configuring the GNU Multiple Precision Library (GMP), the MPFR d1194 2 a1195 2 target triplet must be specified as the build parameter on the configure line. This target triplet can be obtained by invoking ./config.guess in the toplevel source directory of GCC (and d1197 8 a1204 7
% ./configure --build=sparc-sun-solaris2.9 --prefix=xxx
sparc-sun-solaris2.10
d1207 15 a1221 14ld: fatal: relocation error: R_SPARC_TLS_LE_HIX22: file /var/tmp//ccamPA1v.o: symbol <unknown>: bad symbol type SECT: symbol type must be TLSThis bug is fixed in Sun patch 118683-03 or later.
sparc-*-linux*
sparc64-*-solaris2*
d1224 1 a1224 1 as the build parameter on the configure line. For example d1226 13 a1238 13% ./configure --build=sparc64-sun-solaris2.9 --prefix=xxx
sparcv9-*-solaris2*
This is a synonym for ‘sparc64-*-solaris2*’.
c6x-*-*
d1240 4 a1243 5
tilegx-*-linux*
d1246 4 a1249 5
tilegxbe-*-linux*
d1252 4 a1255 5
tilepro-*-linux*
d1258 5 a1262 6
visium-*-elf
CDS VISIUMcore processor. d1264 4 a1267 5
*-*-vxworks*
d1269 2 a1270 2 very recent VxWorks 5.5 (aka Tornado 2.2) release, and only on PowerPC. We welcome patches for other architectures supported by VxWorks 5.5. d1275 12 a1286 12VxWorks comes with an older version of GCC installed in $WIND_BASE/host; we recommend you do not overwrite it. Choose an installation prefix entirely outside $WIND_BASE. Before running configure, create the directories prefix and prefix/bin. Link or copy the appropriate assembler, linker, etc. into prefix/bin, and set your PATH to include that directory while running both configure and make.
You must give configure the --with-headers=$WIND_BASE/target/h switch so that it can d1288 4 a1291 4 target only, you must also specify --target=target. configure will attempt to create the directory prefix/target/sys-include and copy files into it; make sure the user running configure has sufficient privilege d1293 3 a1295 3
GCC's exception handling runtime requires a special “configlette” module, contrib/gthr_supp_vxw_5x.c. Follow the instructions in d1298 4 a1301 5
x86_64-*-*, amd64-*-*
d1303 1 a1303 1 (amd64-*-* is an alias for x86_64-*-*) on GNU/Linux, FreeBSD and NetBSD. d1305 5 a1309 6 both 64-bit x86-64 and 32-bit x86 code (via the -m32 switch).
x86_64-*-solaris2.1[0-9]*
d1311 1 a1311 1 processor (‘amd64-*-*’ is an alias for ‘x86_64-*-*’) on d1314 1 a1314 1 can generate 64-bit x86-64 code with the -m64 switch. Since d1316 8 a1323 9 can generate 32-bit code with -m32. To configure and build this way, you have to provide all support libraries like libgmp as 64-bit code, configure with --target=x86_64-pc-solaris2.1x and ‘CC=gcc -m64’.
xtensa*-*-elf
d1325 1 a1325 1 ‘newlib’ C library. It uses ELF but does not support shared d1329 3 a1331 3The Xtensa configuration information must be specified prior to building GCC. The include/xtensa-config.h header d1336 4 a1339 5
xtensa*-*-linux*
d1343 1 a1343 1 -fpic or -fPIC options are used. In other d1345 5 a1349 7 ‘xtensa*-*-elf’ target.
Microsoft Windows
Intel 16-bit versions
d1351 2 d1355 2 a1356 2However, the 32-bit port has limited support for Microsoft d1358 3 a1360 3
Intel 32-bit versions
d1365 9 d1375 2 a1376 11
- Cygwin *-*-cygwin: Cygwin provides a user-space Linux API emulation layer in the Win32 subsystem.
- MinGW *-*-mingw32: MinGW is a native GCC port for the Win32 subsystem that provides a subset of POSIX.
- MKS i386-pc-mks: NuTCracker from MKS. See http://www.mkssoftware.com/ for more information.
Intel 64-bit versions
d1378 1 a1378 1 runtime library, available from http://mingw-w64.org/doku.php. d1380 5 a1384 5Presently Windows for Itanium is not supported.
Windows CE
d1387 3 a1389 3Other Windows Platforms
d1391 2 a1392 2GCC no longer supports the Windows POSIX subsystem. However, it does d1394 4 a1397 4
Old target names including *-*-winnt and *-*-windowsnt are no longer used.
PW32 (i386-pc-pw32) support was never completed, and the project seems to d1399 6 a1404 7
UWIN support has been removed due to a lack of maintenance.
*-*-cygwin
d1407 5 a1411 5GCC will build under Cygwin without modification; it does not build with Microsoft's C++ compiler and there are no plans to make it do so.
The Cygwin native compiler can be configured to target any 32-bit x86 d1416 5 a1420 6
*-*-mingw32
GCC will build with and support only MinGW runtime 3.12 and later. d1423 4 a1426 5
Older systems
d1431 2 a1432 2Starting with GCC 3.1, each release has a list of “obsoleted” systems. d1434 1 a1434 1 configure will fail unless the --enable-obsolete d1437 2 a1438 2
Support for old systems as hosts for GCC can cause problems if the d1445 3 a1447 2 old-releases directory on the GCC mirror sites. Header bugs may generally be avoided using fixincludes, but bugs or deficiencies in libraries and the d1449 2 a1450 2
Support for older systems as targets for cross-compilation is less d1458 3 a1460 3
For some systems, old versions of GNU binutils may also be useful, and are available from pub/binutils/old-releases on d1462 2 a1463 2
Some of the information on specific systems above relates to d1467 4 a1470 5
all ELF targets (SVR4, Solaris 2, etc.)
d1475 1 d1477 2 a1478 1
d1480 5 a1485 5 d1487 2 @ 1.1.1.12 log @re-import GCC 8.4.0. @ text @d1 10 a10 3Installing GCC d47 4 a50 32 d52 78 d131 2 a132 1 d134 1 a134 2Installing GCC
d136 3 d140 9 d150 10 d161 1 d163 1 d165 4 d170 4 d175 1 d177 1 d179 3 d183 4 d188 1 d190 1 d192 1 d194 1 d196 1 d198 3 d202 1 d204 1 d206 1 d208 1 d210 1 d212 1 d214 1 a214 157Please read this document carefully before installing the GNU Compiler Collection on your machine.
Note that this list of install notes is not a list of supported hosts or targets. Not all supported hosts and targets are listed here, only the ones that require host-specific or target-specific information have to.
- aarch64*-*-*
- alpha*-*-*
- amd64-*-solaris2.10
- arm-*-eabi
- avr
- Blackfin
- DOS
- *-*-freebsd*
- h8300-hms
- hppa*-hp-hpux*
- hppa*-hp-hpux10
- hppa*-hp-hpux11
- *-*-linux-gnu
- i?86-*-linux*
- i?86-*-solaris2.10
- ia64-*-linux
- ia64-*-hpux*
- *-ibm-aix*
- iq2000-*-elf
- lm32-*-elf
- lm32-*-uclinux
- m32c-*-elf
- m32r-*-elf
- m68k-*-*
- m68k-uclinux
- microblaze-*-elf
- mips-*-*
- nds32le-*-elf
- nds32be-*-elf
- nvptx-*-none
- powerpc*-*-*
- powerpc-*-darwin*
- powerpc-*-elf
- powerpc*-*-linux-gnu*
- powerpc-*-netbsd*
- powerpc-*-eabisim
- powerpc-*-eabi
- powerpcle-*-elf
- powerpcle-*-eabisim
- powerpcle-*-eabi
- riscv32-*-elf
- riscv32-*-linux
- riscv64-*-elf
- riscv64-*-linux
- s390-*-linux*
- s390x-*-linux*
- s390x-ibm-tpf*
- *-*-solaris2*
- sparc*-*-*
- sparc-sun-solaris2*
- sparc-sun-solaris2.10
- sparc-*-linux*
- sparc64-*-solaris2*
- sparcv9-*-solaris2*
- c6x-*-*
- tilegx-*-linux*
- tilegxbe-*-linux*
- tilepro-*-linux*
- visium-*-elf
- *-*-vxworks*
- x86_64-*-*, amd64-*-*
- x86_64-*-solaris2.1[0-9]*
- xtensa*-*-elf
- xtensa*-*-linux*
- Microsoft Windows
- *-*-cygwin
- *-*-mingw32
- OS/2
- Older systems
- all ELF targets (SVR4, Solaris 2, etc.)
aarch64*-*-*
Binutils pre 2.24 does not have support for selecting -mabi and does not support ILP32. If it is used to build GCC 4.9 or later, GCC will not support option -mabi=ilp32.
To enable a workaround for the Cortex-A53 erratum number 835769 by default (for all CPUs regardless of -mcpu option given) at configure time use the --enable-fix-cortex-a53-835769 option. This will enable the fix by default and can be explicitly disabled during compilation by passing the -mno-fix-cortex-a53-835769 option. Conversely, --disable-fix-cortex-a53-835769 will disable the workaround by default. The workaround is disabled by default if neither of --enable-fix-cortex-a53-835769 or --disable-fix-cortex-a53-835769 is given at configure time.
To enable a workaround for the Cortex-A53 erratum number 843419 by default (for all CPUs regardless of -mcpu option given) at configure time use the --enable-fix-cortex-a53-843419 option. This workaround is applied at link time. Enabling the workaround will cause GCC to pass the relevant option to the linker. It can be explicitly disabled during compilation by passing the -mno-fix-cortex-a53-843419 option. Conversely, --disable-fix-cortex-a53-843419 will disable the workaround by default. The workaround is disabled by default if neither of --enable-fix-cortex-a53-843419 or --disable-fix-cortex-a53-843419 is given at configure time.
alpha*-*-*
This section contains general configuration information for all Alpha-based platforms using ELF. In addition to reading this section, please read all other sections that match your target.
We require binutils 2.11.2 or newer. Previous binutils releases had a number of problems with DWARF 2 debugging information, not the least of which is incorrect linking of shared libraries.
amd64-*-solaris2.1[0-9]*
This is a synonym for ‘x86_64-*-solaris2.1[0-9]*’.
arc-*-elf32
Use ‘configure --target=arc-elf32 --with-cpu=cpu --enable-languages="c,c++"’ to configure GCC, with cpu being one of ‘arc600’, ‘arc601’, or ‘arc700’.
arc-linux-uclibc
Use ‘configure --target=arc-linux-uclibc --with-cpu=arc700 --enable-languages="c,c++"’ to configure GCC.
arm-*-eabi
ARM-family processors.
Building the Ada frontend commonly fails (an infinite loop executing d217 5 a221 4
avr
d223 1 a223 1 applications. There are no standard Unix configurations. d226 4 a229 4Use ‘configure --target=avr --enable-languages="c"’ to configure GCC.
Further installation notes and other useful information about AVR tools d231 16 a246 17
The following error:
Error: register requiredindicates that you should upgrade to a newer version of the binutils.
Blackfin
The Blackfin processor, an Analog Devices DSP. d248 2 a249 2
More information, and a version of binutils with support for this processor, d251 5 a255 4
CR16
a257 1 d259 12 a270 11See “CR16 Options” in the main manual for a list of CR16-specific options.
Use ‘configure --target=cr16-elf --enable-languages=c,c++’ to configure GCC for building a CR16 elf cross-compiler.
Use ‘configure --target=cr16-uclinux --enable-languages=c,c++’ to configure GCC for building a CR16 uclinux cross-compiler.
CRIS
d273 2 a274 2See “CRIS Options” in the main manual d276 7 a282 11
There are a few different CRIS targets:
cris-axis-elfMainly for monolithic embedded systems. Includes a multilib for the ‘v10’ core used in ‘ETRAX 100 LX’.
cris-axis-linux-gnu- d285 1 a285 1
A GNU/Linux port for the CRIS architecture, currently targeting ‘ETRAX 100 LX’ by default.
Pre-packaged tools can be obtained from d289 5 a293 4
DOS
d295 2 a296 2You cannot install GCC by itself on MSDOS; it will not compile under d300 6 a305 5
epiphany-*-elf
Adapteva Epiphany. d307 5 a311 4
*-*-freebsd*
d315 2 a316 2In order to better utilize FreeBSD base system functionality and match d321 1 a321 1 libgcc_s.so.1 and boehm-gc (on FreeBSD 7 or later) is enabled d323 4 a326 4
We support FreeBSD using the ELF file format with DWARF 2 debugging for all CPU architectures. You may use -gstabs instead of -g, if you really want the old debugging format. There are d330 1 a330 1 GCC. In particular, --enable-threads is now configured by d336 2 a337 2
The version of binutils installed in /usr/bin probably works d339 1 a339 1 binutils and/or the version found in /usr/ports/devel/binutils has d344 6 a349 5
ft32-*-elf
The FT32 processor. d351 5 a355 4
h8300-hms
d357 4 a360 4Please have a look at the binaries page.
The calling convention and structure layout has changed in release 2.6. d364 5 a368 4
hppa*-hp-hpux*
d370 2 a371 2We require using gas/binutils on all hppa platforms. Version 2.19 or d373 7 a379 7
It may be helpful to configure GCC with the --with-gnu-as and --with-as=… options to ensure that GCC can find GAS.
The HP assembler should not be used with GCC. It is rarely tested and may not work. It shouldn’t be used with any languages other than C due to its d381 2 a382 2
Specifically, -g does not work (HP-UX uses a peculiar debugging d386 3 a388 3 ‘make all-host all-target’ after getting the failure from ‘make’.
Various GCC features are not supported. For example, it does not support weak d392 2 a393 2
There are two default scheduling models for instructions. These are d395 1 a395 1 architecture specified for the target machine when configuring. d397 3 a399 3 the target is a ‘hppa1*’ machine.
The PROCESSOR_8000 model is not well suited to older processors. Thus, d404 3 a406 3
As of GCC 4.0, GCC uses the UNIX 95 namespace for HP-UX 10.10 through 11.00, and the UNIX 98 namespace for HP-UX 11.11 and later. d410 3 a412 3 in a number of ways. With HP cc,
UNIX_STDcan be set to ‘95’ or ‘98’. Another way is to add an appropriate set of predefines toCC. The description for the munix= option contains d414 7 a420 6More specific information to ‘hppa*-hp-hpux*’ targets follows.
hppa*-hp-hpux10
d423 2 a424 2The C++ ABI has changed incompatibly in GCC 4.0. COMDAT subspaces are d428 5 a432 4
hppa*-hp-hpux11
d435 4 a438 4The libffi library haven’t been ported to 64-bit HP-UX and doesn’t build.
Refer to binaries for information about obtaining d442 3 a444 3
Starting with GCC 3.4 an ISO C compiler is required to bootstrap. The bundled compiler supports only traditional C; you will need either HP’s d446 2 a447 2
It is possible to build GCC 3.3 starting with the bundled HP compiler, d450 2 a451 2
There are several possible approaches to building the distribution. d454 1 a454 1 first using the HP tools, then build binutils, then rebuild GCC. d457 2 a458 2
On 64-bit capable systems, there are two distinct targets. Different d460 3 a462 3 the same system. The ‘hppa[1-2]*-hp-hpux11*’ target generates code for the 32-bit PA-RISC runtime architecture and uses the HP linker. The ‘hppa64-hp-hpux11*’ target generates 64-bit code for the d464 11 a474 11
The script config.guess now selects the target type based on the compiler detected during configuration. You must define
PATHorCCso that configure finds an appropriate compiler for the initial bootstrap. WhenCCis used, the definition should contain the options that are needed wheneverCCis used.Specifically, options that determine the runtime architecture must be in
CCto correctly select the target for the build. It is also convenient to place many other compiler options inCC. For example,CC="cc -Ac +DA2.0W -Wp,-H16376 -D_CLASSIC_TYPES -D_HPUX_SOURCE"d476 2 a477 2 64-bit K&R/bundled mode. The +DA2.0W option will result in the automatic selection of the ‘hppa64-hp-hpux11*’ target. The d481 4 a484 4 -Ac option. These defines aren’t necessary with -Ae.It is best to explicitly configure the ‘hppa64-hp-hpux11*’ target with the --with-ld=… option. This overrides the standard d487 1 a487 1 result, it’s not possible to switch linkers in the middle of a GCC build. d490 2 a491 2
A recent linker patch must be installed for the correct operation of d495 1 a495 1
PHSS_24304, might be usable but it hasn’t been tested. These d498 2 a499 2The patches are necessary for the support of weak symbols on the d502 1 a502 1 to HP-UX 11, there are bugs in the linker support for secondary symbols. d506 2 a507 2
GCC 3.3 uses the ELF DT_INIT_ARRAY and DT_FINI_ARRAY capabilities to d509 1 a509 1 uses the linker +init and +fini options for the same d512 1 a512 1 problem on the 64-bit port resulting from HP’s non-standard use of d514 3 a516 3
Although the HP and GNU linkers are both supported for the ‘hppa64-hp-hpux11*’ target, it is strongly recommended that the d518 2 a519 2
At this time, the GNU linker does not support the creation of long d523 2 a524 2 with -static, and with dwarf2 unwind and exception support. It also doesn’t provide stubs for internal calls to global functions d526 2 a527 2
The HP dynamic loader does not support GNU symbol versioning, so symbol d529 9 a537 8 versioning with --disable-symvers when using GNU ld.
POSIX threads are the default. The optional DCE thread library is not supported, so --enable-threads=dce does not work.
*-*-linux-gnu
d541 6 a546 5
i?86-*-linux*
As of GCC 3.3, binutils 2.13.1 or later is required for this platform. d548 2 a549 2
If you receive Signal 11 errors when building on GNU/Linux, then it is d552 5 a556 4
i?86-*-solaris2.10
d558 5 a562 5 with GCC 4.7, there is also a 64-bit ‘amd64-*-solaris2.1[0-9]*’ or ‘x86_64-*-solaris2.1[0-9]*’ configuration that corresponds to ‘sparcv9-sun-solaris2*’.It is recommended that you configure GCC to use the GNU assembler. The d564 11 a574 8 /usr/sfw/bin/gas), and Solaris 11, from GNU binutils 2.19 or newer (also available as /usr/bin/gas and /usr/gnu/bin/as), work fine. The current version, from GNU binutils 2.29, is known to work, but the version from GNU binutils 2.26 must be avoided. Recent versions of the Solaris assembler in /usr/ccs/bin/as work almost as well, though.
For linking, the Solaris linker, is preferred. If you want to use the GNU d576 1 a576 1 10, from GNU binutils 2.15 (in /usr/sfw/bin/gld), cannot be used, d578 13 a590 11 in /usr/gnu/bin/ld and /usr/bin/gld), works, as does the latest version, from GNU binutils 2.29.
To use GNU
as, configure with the options --with-gnu-as --with-as=/usr/sfw/bin/gas. It may be necessary to configure with --without-gnu-ld --with-ld=/usr/ccs/bin/ld to guarantee use of Sunld.
ia64-*-linux
d593 3 a595 3If you are using the installed system libunwind library with --with-system-libunwind, then you must use libunwind 0.98 or d597 2 a598 2
None of the following versions of GCC has an ABI that is compatible d601 3 a603 3 3.1, 3.0.2, 3.0.1, 3.0, Red Hat 2.96, and Trillian 000717. This primarily affects C++ programs and programs that create shared libraries. GCC 3.1 or later is recommended for compiling linux, the kernel. d606 5 a610 4
ia64-*-hpux*
d613 6 a618 6 the option --with-gnu-as may be necessary.The GCC libunwind library has not been ported to HPUX. This means that for GCC versions 3.2.3 and earlier, --enable-libunwind-exceptions is required to build GCC. For GCC 3.3 and later, this is the default. For gcc 3.4.3 and later, --enable-libunwind-exceptions is d620 7 a626 6
*-ibm-aix*
Support for AIX version 3 and older was discontinued in GCC 3.4. d628 2 a629 2
“out of memory” bootstrap failures may indicate a problem with d631 3 a633 3 /etc/security/limits system configuration file.
GCC 4.9 and above require a C++ compiler for bootstrap. IBM VAC++ / xlC d636 2 a637 2
GCC can bootstrap with recent versions of IBM XLC, but bootstrapping a640 5
d642 5 a646 2% LDR_CNTRL=MAXDATA=0x50000000 % export LDR_CNTRLOne can start with a pre-compiled version of GCC to build from sources. One may delete GCC’s “fixed” header files when starting a647 8
To speed up the configuration phases of bootstrapping and installing GCC, one may use GNU Bash instead of AIX
/bin/sh, e.g.,d649 7 a655 2% CONFIG_SHELL=/opt/freeware/bin/bash % export CONFIG_SHELLand then proceed as described in the build instructions, where we strongly recommend specifying an absolute path d657 2 a658 2
Because GCC on AIX is built as a 32-bit executable by default, d662 2 a663 2
Errors involving
allocawhen building GCC generally are due d666 5 a670 5 the build, the native AIX compiler must be invoked ascc(notxlc). Onceconfigurehas been informed ofxlc, one needs to use ‘make distclean’ to remove the configure cache files and ensure thatCCenvironment variable does not provide a definition that will confuseconfigure. d673 2 a674 2The native
asandldare recommended for d677 1 a677 1 AIX 5. The GNU Assembler has not been updated to support AIX 6 or d679 2 a680 2AIX 7.1 added partial support for DWARF debugging, but full support d685 2 a686 2
AIX 5.3 TL10, AIX 6.1 TL05 and AIX 7.1 TL00 introduced an AIX d694 2 a695 2
Building libstdc++.a requires a fix for an AIX Assembler bug d699 3 a701 3
‘libstdc++’ in GCC 3.4 increments the major version number of the shared object and GCC installation places the libstdc++.a d705 3 a707 3 versions of the ‘libstdc++’ shared object needs to be available to the AIX runtime loader. The GCC 3.1 ‘libstdc++.so.4’, if present, and GCC 3.3 ‘libstdc++.so.5’ shared objects can be d709 2 a710 8 the ‘F_LOADONLY’ flag in the shared object for each multilib libstdc++.a installed:
Extract the shared objects from the currently installed libstdc++.a archive:
d712 5 a716 1% ar -x libstdc++.a libstdc++.so.4 libstdc++.so.5Enable the ‘F_LOADONLY’ flag so that the shared object will be d718 8 a725 12
% strip -e libstdc++.so.4 libstdc++.so.5Archive the runtime-only shared object in the GCC 3.4 libstdc++.a archive:
% ar -q libstdc++.a libstdc++.so.4 libstdc++.so.5Eventually, the --with-aix-soname=svr4 d728 2 a729 2
Linking executables and shared libraries may produce warnings of d735 2 a736 2
AIX 4.3 utilizes a “large format” archive to support both 32-bit and d738 1 a738 1 to parse archive libraries did not handle the new format correctly. d741 1 a741 1 with AIX 4.3.1 should work for a 32-bit environment. The -g d745 3 a747 3
Some versions of the AIX binder (linker) can fail with a relocation overflow severe error when the -bbigtoc option is used to link d753 2 a754 2
The AIX 4.3.2.1 linker (bos.rte.bind_cmds Level 4.3.2.1) will dump core d759 2 a760 2
The initial assembler shipped with AIX 4.3.0 generates incorrect object d765 2 a766 2
AIX provides National Language Support (NLS). Compilers and assemblers d768 1 a768 1 formats including floating-point numbers (e.g., ‘.’ vs ‘,’ for d771 10 a780 9 expects. If one encounters this problem, set the
LANGenvironment variable to ‘C’ or ‘En_US’.A default can be specified with the -mcpu=cpu_type switch and using the configure option --with-cpu-cpu_type.
iq2000-*-elf
d783 6 a788 5
lm32-*-elf
Lattice Mico32 processor. d790 6 a795 5
lm32-*-uclinux
Lattice Mico32 processor. d797 6 a802 5
m32c-*-elf
Renesas M32C processor. d804 6 a809 5
m32r-*-elf
Renesas M32R processor. d811 5 a815 4
m68k-*-*
d817 2 a818 2 ‘m68k-*-elf*’, ‘m68k-*-rtems’, ‘m68k-*-uclinux’ and ‘m68k-*-linux’ d821 3 a823 3 --with-arch=m68k toconfigure. Alternatively, you can omit the M680x0 libraries by passing --with-arch=cf toconfigure. These targets default to 5206 or 5475 code as d825 4 a828 4 configured with --with-arch=cf and 68020 code otherwise.The ‘m68k-*-netbsd’ and ‘m68k-*-openbsd’ targets also support the --with-arch d830 14 a843 13 --with-arch=cf and 68020 code otherwise.
You can override the default processors listed above by configuring with --with-cpu=target. This target can either be a -mcpu argument or one of the following values: ‘m68000’, ‘m68010’, ‘m68020’, ‘m68030’, ‘m68040’, ‘m68060’, ‘m68020-40’ and ‘m68020-60’.
GCC requires at least binutils version 2.17 on these targets.
m68k-*-uclinux
d845 1 a845 1 ‘m68k-linux-gnu’ ABI rather than the ‘m68k-elf’ ABI. d848 6 a853 5
microblaze-*-elf
Xilinx MicroBlaze processor. d855 5 a859 4
mips-*-*
d861 1 a861 1 sections for all it’s [sic] sectons [sic]”, don’t worry about it. This d865 2 a866 2It would be nice to extend GAS to produce the gp tables, but they are d868 2 a869 2
The libstdc++ atomic locking routines for MIPS targets requires MIPS II d871 3 a873 3 make ‘mips*-*-*’ use the generic implementation instead. You can also configure for ‘mipsel-elf’ as a workaround. The ‘mips*-*-linux*’ target continues to use the MIPS II routines. More a874 1
d876 6 a881 4The built-in
__sync_*functions are available on MIPS II and later systems and others that support the ‘ll’, ‘sc’ and ‘sync’ instructions. This can be overridden by passing --with-llsc or --without-llsc when configuring GCC. d883 4 a886 4 missing, the default for ‘mips*-*-linux*’ targets is --with-llsc. The --with-llsc and --without-llsc configure options may be overridden at compile time by passing the -mllsc or -mno-llsc options to d888 3 a890 3MIPS systems check for division by zero (unless -mno-check-zero-division is passed to the compiler) by d895 2 a896 2 the use of break, use the --with-divide=breaks
configureoption when configuring GCC. The default is to d898 19 a916 4
moxie-*-elf
d918 6 a923 5
msp430-*-elf
TI MSP430 processor. d925 5 a929 4
nds32le-*-elf
d931 5 a935 4
nds32be-*-elf
d937 5 a941 4
nvptx-*-none
d943 3 a945 3Instead of GNU binutils, you will need to install nvptx-tools. d947 24 a970 22 --with-build-time-tools=[install-nvptx-tools]/nvptx-none/bin.
You will need newlib 3.0 git revision cd31fbb2aea25f94d7ecedc9db16dfc87ab0c316 or later. It can be automatically built together with GCC. For this, add a symbolic link to nvptx-newlib’s newlib directory to the directory containing the GCC sources.
Use the --disable-sjlj-exceptions and --enable-newlib-io-long-long options when configuring.
powerpc-*-*
You can specify a default version for the -mcpu=cpu_type switch by using the configure option --with-cpu-cpu_type.
You will need GNU binutils 2.15 or newer.
powerpc-*-darwin*
d972 2 a973 2Pre-installed versions of Mac OS X may not include any developer tools, d977 2 a978 2
This version of GCC requires at least cctools-590.36. The d982 5 a986 4
powerpc-*-elf
d988 5 a992 4
powerpc*-*-linux-gnu*
d994 5 a998 4
powerpc-*-netbsd*
d1000 5 a1004 4
powerpc-*-eabisim
d1007 5 a1011 4
powerpc-*-eabi
d1013 5 a1017 4
powerpcle-*-elf
d1019 5 a1023 4
powerpcle-*-eabisim
d1026 5 a1030 4
powerpcle-*-eabi
d1032 6 a1037 11
rl78-*-elf
The Renesas RL78 processor. This configuration is intended for embedded systems.
riscv32-*-elf
The RISC-V RV32 instruction set. d1039 7 d1048 6 a1053 5
riscv32-*-linux
The RISC-V RV32 instruction set running GNU/Linux. d1056 7 a1062 6
riscv64-*-elf
The RISC-V RV64 instruction set. This configuration is intended for embedded systems. d1065 6 a1070 5
riscv64-*-linux
The RISC-V RV64 instruction set running GNU/Linux. d1073 5 a1077 4
rx-*-elf
d1079 5 a1083 4
s390-*-linux*
d1085 5 a1089 4
s390x-*-linux*
d1091 5 a1095 4
s390x-ibm-tpf*
d1098 9 a1106 4
*-*-solaris2*
d1110 2 a1111 2Sun does not ship a C compiler with Solaris 2 before Solaris 10, though d1113 1 a1113 1 11, GCC 3.4.3 is available as
/usr/sfw/bin/gcc. Solaris 11 d1115 1 a1115 1/usr/gcc/4.5/bin/gccor similar. Alternatively, d1118 3 a1120 3The Solaris 2
/bin/shwill often fail to configure ‘libstdc++-v3’or ‘boehm-gc’. We therefore recommend using the a1121 5d1123 4 a1126 1% CONFIG_SHELL=/bin/ksh % export CONFIG_SHELLand proceed as described in the configure instructions. d1128 3 a1130 3
srcdir/configure.Solaris 10 comes with a number of optional OS packages. Some of these d1135 1 a1135 1 the packages that GCC needs are installed. d1137 2 a1138 2 the
pkginfocommand. To add an optional package, use thepkgaddcommand. For further details, see the Solaris 10 d1140 2 a1141 2Starting with Solaris 11, the package management has changed, so you d1144 4 a1147 4 packages is done with the
pkgcommand now.Trying to use the linker and other tools in /usr/ucb to install GCC has been observed to cause trouble. d1149 8 a1156 8 /usr/ucb from your
PATH.The build process works more smoothly with the legacy Sun tools so, if you have /usr/xpg4/bin in your
PATH, we recommend that you place /usr/bin before /usr/xpg4/bin for the duration of the build.We recommend the use of the Solaris assembler or the GNU assembler, in conjunction with the Solaris linker. The GNU
asd1158 6 a1163 5 /usr/sfw/bin/gas), and Solaris 11, from GNU binutils 2.19 or newer (also in /usr/bin/gas and /usr/gnu/bin/as), are known to work. The current version, from GNU binutils 2.29, is known to work as well. Note that your mileage may vary d1165 5 a1169 4 combination GNUas+ Sunldshould reasonably work, the reverse combination Sunas+ GNUldmay fail to build or cause memory corruption at runtime in some cases for C++ programs. GNUldusually works as well, although the version included in d1171 9 a1179 9 version (2.29) is known to work, but generally lacks platform specific features, so better stay with Solarisld. To use the LTO linker plugin (-fuse-linker-plugin) with GNUld, GNU binutils must be configured with --enable-largefile.To enable symbol versioning in ‘libstdc++’ with the Solaris linker, you need to have any version of GNU
c++filt, which is part of GNU binutils. ‘libstdc++’ symbol versioning will be disabled if no appropriate version is found. Solarisc++filtfrom the Solaris d1181 4 a1184 4Sun bug 4927647 sometimes causes random spurious testsuite failures related to missing diagnostic output. This bug doesn’t affect GCC itself, rather it is a kernel bug triggered by the
expectd1186 1 a1186 1 causes theexpectprogram to miss anticipated output, extra d1188 5 a1192 4
sparc*-*-*
d1196 2 a1197 2Newer versions of the GNU Multiple Precision Library (GMP), the MPFR d1202 5 a1206 4
sparc-sun-solaris2*
d1208 1 a1208 1 produced are smaller than the ones produced using Sun’s native tools; d1211 2 a1212 2Starting with Solaris 7, the operating system is capable of executing d1214 1 a1214 1 this; the -m64 option enables 64-bit code generation. d1216 1 a1216 1 should try the -mtune=ultrasparc option instead, which produces d1219 2 a1220 2
When configuring the GNU Multiple Precision Library (GMP), the MPFR d1222 2 a1223 2 target triplet must be specified as the
buildparameter on the configure line. This target triplet can be obtained by invoking./config.guessin the toplevel source directory of GCC (and d1225 7 a1231 8% ./configure --build=sparc-sun-solaris2.9 --prefix=xxx
sparc-sun-solaris2.10
d1234 14 a1247 15ld: fatal: relocation error: R_SPARC_TLS_LE_HIX22: file /var/tmp//ccamPA1v.o: symbol <unknown>: bad symbol type SECT: symbol type must be TLSThis bug is fixed in Sun patch 118683-03 or later.
sparc-*-linux*
sparc64-*-solaris2*
d1250 1 a1250 1 as thebuildparameter on the configure line. For example d1252 13 a1264 13% ./configure --build=sparc64-sun-solaris2.9 --prefix=xxx
sparcv9-*-solaris2*
This is a synonym for ‘sparc64-*-solaris2*’.
c6x-*-*
d1266 5 a1270 4
tilegx-*-linux*
d1273 5 a1277 4
tilegxbe-*-linux*
d1280 5 a1284 4
tilepro-*-linux*
d1287 6 a1292 5
visium-*-elf
CDS VISIUMcore processor. d1294 5 a1298 4
*-*-vxworks*
d1300 2 a1301 2 very recent VxWorks 5.5 (aka Tornado 2.2) release, and only on PowerPC. We welcome patches for other architectures supported by VxWorks 5.5. d1306 12 a1317 12VxWorks comes with an older version of GCC installed in $WIND_BASE/host; we recommend you do not overwrite it. Choose an installation prefix entirely outside $WIND_BASE. Before running
configure, create the directories prefix and prefix/bin. Link or copy the appropriate assembler, linker, etc. into prefix/bin, and set your PATH to include that directory while running bothconfigureandmake.You must give
configurethe --with-headers=$WIND_BASE/target/h switch so that it can d1319 4 a1322 4 target only, you must also specify --target=target.configurewill attempt to create the directory prefix/target/sys-include and copy files into it; make sure the user runningconfigurehas sufficient privilege d1324 3 a1326 3GCC’s exception handling runtime requires a special “configlette” module, contrib/gthr_supp_vxw_5x.c. Follow the instructions in d1329 5 a1333 4
x86_64-*-*, amd64-*-*
d1335 1 a1335 1 (amd64-*-* is an alias for x86_64-*-*) on GNU/Linux, FreeBSD and NetBSD. d1337 6 a1342 5 both 64-bit x86-64 and 32-bit x86 code (via the -m32 switch).
x86_64-*-solaris2.1[0-9]*
d1344 1 a1344 1 processor (‘amd64-*-*’ is an alias for ‘x86_64-*-*’) on d1347 1 a1347 1 can generate 64-bit x86-64 code with the -m64 switch. Since d1349 9 a1357 8 can generate 32-bit code with -m32. To configure and build this way, you have to provide all support libraries like libgmp as 64-bit code, configure with --target=x86_64-pc-solaris2.1x and ‘CC=gcc -m64’.
xtensa*-*-elf
d1359 1 a1359 1 ‘newlib’ C library. It uses ELF but does not support shared d1363 3 a1365 3The Xtensa configuration information must be specified prior to building GCC. The include/xtensa-config.h header d1370 5 a1374 4
xtensa*-*-linux*
d1378 1 a1378 1 -fpic or -fPIC options are used. In other d1380 7 a1386 5 ‘xtensa*-*-elf’ target.
Microsoft Windows
a1387 2Intel 16-bit versions
d1390 2 a1391 2However, the 32-bit port has limited support for Microsoft d1393 3 a1395 3
Intel 32-bit versions
a1399 9d1401 11 a1411 2
- Cygwin *-*-cygwin: Cygwin provides a user-space Linux API emulation layer in the Win32 subsystem.
- MinGW *-*-mingw32: MinGW is a native GCC port for the Win32 subsystem that provides a subset of POSIX.
- MKS i386-pc-mks: NuTCracker from MKS. See https://www.mkssoftware.com for more information.
Intel 64-bit versions
d1413 1 a1413 1 runtime library, available from http://mingw-w64.org/doku.php. d1415 5 a1419 5Presently Windows for Itanium is not supported.
Windows CE
d1422 3 a1424 3Other Windows Platforms
d1426 2 a1427 2GCC no longer supports the Windows POSIX subsystem. However, it does d1429 4 a1432 4
Old target names including *-*-winnt and *-*-windowsnt are no longer used.
PW32 (i386-pc-pw32) support was never completed, and the project seems to d1434 7 a1440 6
UWIN support has been removed due to a lack of maintenance.
*-*-cygwin
d1443 5 a1447 5GCC will build under Cygwin without modification; it does not build with Microsoft’s C++ compiler and there are no plans to make it do so.
The Cygwin native compiler can be configured to target any 32-bit x86 d1452 6 a1457 5
*-*-mingw32
GCC will build with and support only MinGW runtime 3.12 and later. d1460 5 a1464 4
Older systems
d1469 2 a1470 2Starting with GCC 3.1, each release has a list of “obsoleted” systems. d1472 1 a1472 1
configurewill fail unless the --enable-obsolete d1475 2 a1476 2Support for old systems as hosts for GCC can cause problems if the d1483 2 a1484 3 old-releases directory on the GCC mirror sites. Header bugs may generally be avoided using
fixincludes, but bugs or deficiencies in libraries and the d1486 2 a1487 2Support for older systems as targets for cross-compilation is less d1495 3 a1497 3
For some systems, old versions of GNU binutils may also be useful, and are available from pub/binutils/old-releases on d1499 2 a1500 2
Some of the information on specific systems above relates to d1504 5 a1508 4
all ELF targets (SVR4, Solaris 2, etc.)
a1512 1 d1514 1 a1514 2
a1515 5
d1517 5 a1522 2 @ 1.1.1.13 log @initial import of GCC 9.3.0. changes include: - live patching support - shell completion help - generally better diagnostic output (less verbose/more useful) - diagnostics and optimisation choices can be emitted in json - asan memory usage reduction - many general, and specific to switch, inter-procedure, profile and link-time optimisations. from the release notes: "Overall compile time of Firefox 66 and LibreOffice 6.2.3 on an 8-core machine was reduced by about 5% compared to GCC 8.3" - OpenMP 5.0 support - better spell-guesser - partial experimental support for c2x and c++2a - c++17 is no longer experimental - arm AAPCS GCC 6-8 structure passing bug fixed, may cause incompatibility (restored compat with GCC 5 and earlier.) - openrisc support @ text @d3 1 a3 1 d22 3 a31 2 a33 1 a.copiable-anchor {visibility: hidden; text-decoration: none; line-height: 0em} d36 2 d40 4 d49 4 a55 1 span:hover a.copiable-anchor {visibility: visible} d89 5 a93 5 d183 2 a184 1aarch64*-*-*
d221 2 a222 1alpha*-*-*
d228 2 a229 1amd64-*-solaris2*
d233 2 a234 1amdgcn-*-amdhsa
d252 2 a253 1arc-*-elf32
d260 2 a261 1arc-linux-uclibc
d266 2 a267 1arm-*-eabi
d275 2 a276 1avr
d293 2 a294 2Error: register required d300 2 a301 1Blackfin
d309 2 a310 1CR16
d324 2 a325 1CRIS
d334 1 a334 1- d338 1 a338 1
cris-axis-elf- d350 2 a351 1
cris-axis-linux-gnuDOS
d360 2 a361 1epiphany-*-elf
d366 2 a367 1*-*-freebsd*
d402 2 a403 1ft32-*-elf
d408 2 a409 1h8300-hms
d420 2 a421 1hppa*-hp-hpux*
d471 2 a472 1hppa*-hp-hpux10
d482 2 a483 1hppa*-hp-hpux11
d586 2 a587 1*-*-linux-gnu
d593 2 a594 1i?86-*-linux*
d603 2 a604 1i?86-*-solaris2*
d628 2 a629 1ia64-*-linux
d647 2 a648 1ia64-*-hpux*
d661 2 a662 1*-ibm-aix*
d679 2 a680 2% LDR_CNTRL=MAXDATA=0x50000000 d691 2 a692 2% CONFIG_SHELL=/opt/freeware/bin/bash d742 1 a742 1‘libstdc++’ in GCC 3.4 increments the major version number of the d756 2 a757 2
% ar -x libstdc++.a libstdc++.so.4 libstdc++.so.5 d762 2 a763 2% strip -e libstdc++.so.4 libstdc++.so.5 d768 2 a769 2% ar -q libstdc++.a libstdc++.so.4 libstdc++.so.5 d826 2 a827 1iq2000-*-elf
d832 2 a833 1lm32-*-elf
d838 2 a839 1lm32-*-uclinux
d844 2 a845 1m32c-*-elf
d850 2 a851 1m32r-*-elf
d856 2 a857 1m68k-*-*
d883 2 a884 1m68k-*-uclinux
d891 2 a892 1microblaze-*-elf
d897 2 a898 1mips-*-*
d938 2 a939 1moxie-*-elf
d943 2 a944 1msp430-*-elf*
d963 2 a964 1nds32le-*-elf
d968 2 a969 1nds32be-*-elf
d973 2 a974 1nvptx-*-none
d992 2 a993 1or1k-*-elf
d998 2 a999 1or1k-*-linux
d1003 2 a1004 1powerpc-*-*
d1011 2 a1012 1powerpc-*-darwin*
d1026 2 a1027 1powerpc-*-elf
d1031 2 a1032 1powerpc*-*-linux-gnu*
d1036 2 a1037 1powerpc-*-netbsd*
d1041 2 a1042 1powerpc-*-eabisim
d1047 2 a1048 1powerpc-*-eabi
d1052 2 a1053 1powerpcle-*-elf
d1057 2 a1058 1powerpcle-*-eabisim
d1063 2 a1064 1powerpcle-*-eabi
d1068 2 a1069 1rl78-*-elf
d1074 2 a1075 1riscv32-*-elf
d1081 2 a1082 1riscv32-*-linux
d1087 2 a1088 1riscv64-*-elf
d1094 2 a1095 1riscv64-*-linux
d1100 2 a1101 1rx-*-elf
d1105 2 a1106 1s390-*-linux*
d1110 2 a1111 1s390x-*-linux*
d1115 2 a1116 1s390x-ibm-tpf*
d1121 2 a1122 1*-*-solaris2*
d1137 2 a1138 2% CONFIG_SHELL=/bin/ksh d1195 2 a1196 1sparc*-*-*
d1208 2 a1209 1sparc-sun-solaris2*
d1229 2 a1230 2% ./configure --build=sparc-sun-solaris2.11 --prefix=xxx d1234 2 a1235 1sparc-*-linux*
d1238 2 a1239 1sparc64-*-solaris2*
d1252 2 a1253 2% ./configure --build=sparc64-sun-solaris2.11 --prefix=xxx d1257 2 a1258 1sparcv9-*-solaris2*
d1262 2 a1263 1c6x-*-*
d1267 2 a1268 1tilegx-*-linux*
d1273 2 a1274 1tilegxbe-*-linux*
d1279 2 a1280 1tilepro-*-linux*
d1285 2 a1286 1visium-*-elf
d1291 2 a1292 1*-*-vxworks*
d1325 2 a1326 1x86_64-*-*, amd64-*-*
d1333 2 a1334 1x86_64-*-solaris2*
d1347 2 a1348 1xtensa*-*-elf
d1363 2 a1364 1xtensa*-*-linux*
d1373 2 a1374 1Microsoft Windows
d1376 2 a1377 1Intel 16-bit versions
d1384 2 a1385 1Intel 32-bit versions
d1400 2 a1401 1Intel 64-bit versions
d1408 2 a1409 1Windows CE
d1413 2 a1414 1Other Windows Platforms
d1428 2 a1429 1*-*-cygwin
d1443 2 a1444 1*-*-mingw32
d1450 2 a1451 1Older systems
d1494 2 a1495 1all ELF targets (SVR4, Solaris 2, etc.)
@ 1.1.1.16 log @initial import of GCC 10.5.0. (we plan to import 12.3 soon as well, this is mostly so it can be pulled up to netbsd-10 branch more easily.) the list of PR's fixed since 10.4.0 can be found here: https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=10.5 which includes 3 C, 25 C++, 4 debug, 17 libstdc++, and many others for the internals. @ text @d3 3 a24 3 d32 2 d36 1 a38 2 blockquote.smallindentedblock {margin-right: 0em; font-size: smaller} blockquote.smallquotation {font-size: smaller} a40 4 div.lisp {margin-left: 3.2em} div.smalldisplay {margin-left: 3.2em} div.smallexample {margin-left: 3.2em} div.smalllisp {margin-left: 3.2em} a45 4 pre.smalldisplay {font-family: inherit; font-size: smaller} pre.smallexample {font-size: smaller} pre.smallformat {font-family: inherit; font-size: smaller} pre.smalllisp {font-size: smaller} d49 1 d83 5 a87 5 d177 1 a177 2aarch64*-*-*
d214 1 a214 2alpha*-*-*
d220 1 a220 2amd64-*-solaris2*
d224 1 a224 2amdgcn-*-amdhsa
d242 1 a242 2arc-*-elf32
d249 1 a249 2arc-linux-uclibc
d254 1 a254 2arm-*-eabi
d262 1 a262 2avr
d279 2 a280 2Error: register required d286 1 a286 2Blackfin
d294 1 a294 2CR16
d308 1 a308 2CRIS
d317 1 a317 1- d321 1 a321 1
cris-axis-elf- d333 1 a333 2
cris-axis-linux-gnuDOS
d342 1 a342 2epiphany-*-elf
d347 1 a347 2*-*-freebsd*
d382 1 a382 2ft32-*-elf
d387 1 a387 2h8300-hms
d398 1 a398 2hppa*-hp-hpux*
d448 1 a448 2hppa*-hp-hpux10
d458 1 a458 2hppa*-hp-hpux11
d561 1 a561 2*-*-linux-gnu
d567 1 a567 2i?86-*-linux*
d576 1 a576 2i?86-*-solaris2*
d600 1 a600 2ia64-*-linux
d618 1 a618 2ia64-*-hpux*
d631 1 a631 2*-ibm-aix*
d648 2 a649 2% LDR_CNTRL=MAXDATA=0x50000000 d660 2 a661 2% CONFIG_SHELL=/opt/freeware/bin/bash d711 1 a711 1‘libstdc++’ in GCC 3.4 increments the major version number of the d725 2 a726 2
% ar -x libstdc++.a libstdc++.so.4 libstdc++.so.5 d731 2 a732 2% strip -e libstdc++.so.4 libstdc++.so.5 d737 2 a738 2% ar -q libstdc++.a libstdc++.so.4 libstdc++.so.5 d795 1 a795 2iq2000-*-elf
d800 1 a800 2lm32-*-elf
d805 1 a805 2lm32-*-uclinux
d810 1 a810 2m32c-*-elf
d815 1 a815 2m32r-*-elf
d820 1 a820 2m68k-*-*
d846 1 a846 2m68k-*-uclinux
d853 1 a853 2microblaze-*-elf
d858 1 a858 2mips-*-*
d898 1 a898 2moxie-*-elf
d902 1 a902 2msp430-*-elf*
d921 1 a921 2nds32le-*-elf
d925 1 a925 2nds32be-*-elf
d929 1 a929 2nvptx-*-none
d947 1 a947 2or1k-*-elf
d952 1 a952 2or1k-*-linux
d956 1 a956 2powerpc-*-*
d963 1 a963 2powerpc-*-darwin*
d977 1 a977 2powerpc-*-elf
d981 1 a981 2powerpc*-*-linux-gnu*
d985 1 a985 2powerpc-*-netbsd*
d989 1 a989 2powerpc-*-eabisim
d994 1 a994 2powerpc-*-eabi
d998 1 a998 2powerpcle-*-elf
d1002 1 a1002 2powerpcle-*-eabisim
d1007 1 a1007 2powerpcle-*-eabi
d1011 1 a1011 2rl78-*-elf
d1016 1 a1016 2riscv32-*-elf
d1022 1 a1022 2riscv32-*-linux
d1027 1 a1027 2riscv64-*-elf
d1033 1 a1033 2riscv64-*-linux
d1038 1 a1038 2rx-*-elf
d1042 1 a1042 2s390-*-linux*
d1046 1 a1046 2s390x-*-linux*
d1050 1 a1050 2s390x-ibm-tpf*
d1055 1 a1055 2*-*-solaris2*
d1070 2 a1071 2% CONFIG_SHELL=/bin/ksh d1128 1 a1128 2sparc*-*-*
d1140 1 a1140 2sparc-sun-solaris2*
d1160 2 a1161 2% ./configure --build=sparc-sun-solaris2.11 --prefix=xxx d1165 1 a1165 2sparc-*-linux*
d1168 1 a1168 2sparc64-*-solaris2*
d1181 2 a1182 2% ./configure --build=sparc64-sun-solaris2.11 --prefix=xxx d1186 1 a1186 2sparcv9-*-solaris2*
d1190 1 a1190 2c6x-*-*
d1194 1 a1194 2tilegx-*-linux*
d1199 1 a1199 2tilegxbe-*-linux*
d1204 1 a1204 2tilepro-*-linux*
d1209 1 a1209 2visium-*-elf
d1214 1 a1214 2*-*-vxworks*
d1247 1 a1247 2x86_64-*-*, amd64-*-*
d1254 1 a1254 2x86_64-*-solaris2*
d1267 1 a1267 2xtensa*-*-elf
d1282 1 a1282 2xtensa*-*-linux*
d1291 1 a1291 2Microsoft Windows
d1293 1 a1293 2Intel 16-bit versions
d1300 1 a1300 2Intel 32-bit versions
d1315 1 a1315 2Intel 64-bit versions
d1322 1 a1322 2Windows CE
d1326 1 a1326 2Other Windows Platforms
d1340 1 a1340 2*-*-cygwin
d1354 1 a1354 2*-*-mingw32
d1360 1 a1360 2Older systems
d1403 1 a1403 2all ELF targets (SVR4, Solaris 2, etc.)
@ 1.1.1.17 log @initial import of GCC 12.3.0. major changes in GCC 11 included: - The default mode for C++ is now -std=gnu++17 instead of -std=gnu++14. - When building GCC itself, the host compiler must now support C++11, rather than C++98. - Some short options of the gcov tool have been renamed: -i to -j and -j to -H. - ThreadSanitizer improvements. - Introduce Hardware-assisted AddressSanitizer support. - For targets that produce DWARF debugging information GCC now defaults to DWARF version 5. This can produce up to 25% more compact debug information compared to earlier versions. - Many optimisations. - The existing malloc attribute has been extended so that it can be used to identify allocator/deallocator API pairs. A pair of new -Wmismatched-dealloc and -Wmismatched-new-delete warnings are added. - Other new warnings: -Wsizeof-array-div, enabled by -Wall, warns about divisions of two sizeof operators when the first one is applied to an array and the divisor does not equal the size of the array element. -Wstringop-overread, enabled by default, warns about calls to string functions reading past the end of the arrays passed to them as arguments. -Wtsan, enabled by default, warns about unsupported features in ThreadSanitizer (currently std::atomic_thread_fence). - Enchanced warnings: -Wfree-nonheap-object detects many more instances of calls to deallocation functions with pointers not returned from a dynamic memory allocation function. -Wmaybe-uninitialized diagnoses passing pointers or references to uninitialized memory to functions taking const-qualified arguments. -Wuninitialized detects reads from uninitialized dynamically allocated memory. -Warray-parameter warns about functions with inconsistent array forms. -Wvla-parameter warns about functions with inconsistent VLA forms. - Several new features from the upcoming C2X revision of the ISO C standard are supported with -std=c2x and -std=gnu2x. - Several C++20 features have been implemented. - The C++ front end has experimental support for some of the upcoming C++23 draft. - Several new C++ warnings. - Enhanced Arm, AArch64, x86, and RISC-V CPU support. - The implementation of how program state is tracked within -fanalyzer has been completely rewritten with many enhancements. see https://gcc.gnu.org/gcc-11/changes.html for a full list. major changes in GCC 12 include: - An ABI incompatibility between C and C++ when passing or returning by value certain aggregates containing zero width bit-fields has been discovered on various targets. x86-64, ARM and AArch64 will always ignore them (so there is a C ABI incompatibility between GCC 11 and earlier with GCC 12 or later), PowerPC64 ELFv2 always take them into account (so there is a C++ ABI incompatibility, GCC 4.4 and earlier compatible with GCC 12 or later, incompatible with GCC 4.5 through GCC 11). RISC-V has changed the handling of these already starting with GCC 10. As the ABI requires, MIPS takes them into account handling function return values so there is a C++ ABI incompatibility with GCC 4.5 through 11. - STABS: Support for emitting the STABS debugging format is deprecated and will be removed in the next release. All ports now default to emit DWARF (version 2 or later) debugging info or are obsoleted. - Vectorization is enabled at -O2 which is now equivalent to the original -O2 -ftree-vectorize -fvect-cost-model=very-cheap. - GCC now supports the ShadowCallStack sanitizer. - Support for __builtin_shufflevector compatible with the clang language extension was added. - Support for attribute unavailable was added. - Support for __builtin_dynamic_object_size compatible with the clang language extension was added. - New warnings: -Wbidi-chars warns about potentially misleading UTF-8 bidirectional control characters. -Warray-compare warns about comparisons between two operands of array type. - Some new features from the upcoming C2X revision of the ISO C standard are supported with -std=c2x and -std=gnu2x. - Several C++23 features have been implemented. - Many C++ enhancements across warnings and -f options. see https://gcc.gnu.org/gcc-12/changes.html for a full list. @ text @d3 1 a3 1 d22 3 a31 2 a33 1 a.copiable-anchor {visibility: hidden; text-decoration: none; line-height: 0em} d36 2 d40 4 d49 4 a55 1 span:hover a.copiable-anchor {visibility: visible} d89 5 a93 5 d194 2 a195 1aarch64*-*-*
d232 2 a233 1alpha*-*-*
d239 2 a240 1amd64-*-solaris2*
d244 2 a245 1amdgcn-*-amdhsa
d263 2 a264 1arc-*-elf32
d271 2 a272 1arc-linux-uclibc
d277 2 a278 1arm-*-eabi
d286 2 a287 1avr
d304 2 a305 2Error: register required d311 2 a312 1Blackfin
d320 2 a321 1CR16
d335 2 a336 1CRIS
d346 2 a347 1DOS
d356 2 a357 1epiphany-*-elf
d362 2 a363 1*-*-freebsd*
d394 2 a395 1ft32-*-elf
d400 2 a401 1h8300-hms
d412 2 a413 1hppa*-hp-hpux*
d463 2 a464 1hppa*-hp-hpux10
d474 2 a475 1hppa*-hp-hpux11
d578 2 a579 1*-*-linux-gnu
d588 2 a589 1i?86-*-linux*
d598 2 a599 1i?86-*-solaris2*
d623 2 a624 1ia64-*-linux
d633 2 a634 1ia64-*-hpux*
d647 2 a648 1*-ibm-aix*
d665 2 a666 2% LDR_CNTRL=MAXDATA=0x50000000 d677 2 a678 2% CONFIG_SHELL=/opt/freeware/bin/bash d728 1 a728 1‘libstdc++’ in GCC 3.4 increments the major version number of the d742 2 a743 2
% ar -x libstdc++.a libstdc++.so.4 libstdc++.so.5 d748 2 a749 2% strip -e libstdc++.so.4 libstdc++.so.5 d754 2 a755 2% ar -q libstdc++.a libstdc++.so.4 libstdc++.so.5 d812 2 a813 1iq2000-*-elf
d818 2 a819 1lm32-*-elf
d824 2 a825 1lm32-*-uclinux
d830 2 a831 1LoongArch
d835 1 a835 1- d839 1 a839 1
loongarch64-linux-gnu*- d842 1 a842 1
f64- d845 1 a845 1
f32- d851 1 a851 1
sf- d861 2 a862 1
loongarch64-linux-gnum32c-*-elf
d867 2 a868 1m32r-*-elf
d873 2 a874 1m68k-*-*
d900 2 a901 1m68k-*-uclinux
d908 2 a909 1microblaze-*-elf
d914 2 a915 1mips-*-*
d955 2 a956 1moxie-*-elf
d960 2 a961 1msp430-*-elf*
d980 2 a981 1nds32le-*-elf
d985 2 a986 1nds32be-*-elf
d990 2 a991 1nvptx-*-none
d1008 2 a1009 1or1k-*-elf
d1014 2 a1015 1or1k-*-linux
d1019 2 a1020 1powerpc-*-*
d1027 2 a1028 1powerpc-*-darwin*
d1042 2 a1043 1powerpc-*-elf
d1047 2 a1048 1powerpc*-*-linux-gnu*
d1052 2 a1053 1powerpc-*-netbsd*
d1057 2 a1058 1powerpc-*-eabisim
d1063 2 a1064 1powerpc-*-eabi
d1068 2 a1069 1powerpcle-*-elf
d1073 2 a1074 1powerpcle-*-eabisim
d1079 2 a1080 1powerpcle-*-eabi
d1084 2 a1085 1rl78-*-elf
d1090 2 a1091 1riscv32-*-elf
d1097 2 a1098 1riscv32-*-linux
d1103 2 a1104 1riscv64-*-elf
d1110 2 a1111 1riscv64-*-linux
d1116 2 a1117 1rx-*-elf
d1121 2 a1122 1s390-*-linux*
d1126 2 a1127 1s390x-*-linux*
d1131 2 a1132 1s390x-ibm-tpf*
d1137 2 a1138 1*-*-solaris2*
d1153 2 a1154 2% CONFIG_SHELL=/bin/ksh d1218 2 a1219 1sparc*-*-*
d1231 2 a1232 1sparc-sun-solaris2*
d1252 2 a1253 2% ./configure --build=sparc-sun-solaris2.11 --prefix=xxx d1257 2 a1258 1sparc-*-linux*
d1261 2 a1262 1sparc64-*-solaris2*
d1275 2 a1276 2% ./configure --build=sparc64-sun-solaris2.11 --prefix=xxx d1280 2 a1281 1sparcv9-*-solaris2*
d1285 2 a1286 1c6x-*-*
d1290 2 a1291 1tilegx-*-linux*
d1296 2 a1297 1tilegxbe-*-linux*
d1302 2 a1303 1tilepro-*-linux*
d1308 2 a1309 1visium-*-elf
d1314 2 a1315 1*-*-vxworks*
d1348 2 a1349 1x86_64-*-*, amd64-*-*
d1356 2 a1357 1x86_64-*-solaris2*
d1370 2 a1371 1xtensa*-*-elf
d1386 2 a1387 1xtensa*-*-linux*
d1396 2 a1397 1Microsoft Windows
d1399 2 a1400 1Intel 16-bit versions
d1407 2 a1408 1Intel 32-bit versions
d1423 2 a1424 1Intel 64-bit versions
d1429 2 a1430 1Windows CE
d1434 2 a1435 1Other Windows Platforms
d1449 2 a1450 1*-*-cygwin
d1464 2 a1465 1*-*-mingw32
d1475 2 a1476 1Older systems
d1519 2 a1520 1all ELF targets (SVR4, Solaris 2, etc.)
@ 1.1.1.19 log @initial import of GCC 12.5.0. this is the final GCC 12 release, and fixes at least 241 specific bugs in the GCC bugzilla: https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=12.5 though many are in components we don't ship in base (ada, fortran, etc.) @ text @d3 3 a24 3 d32 2 d36 1 a38 2 blockquote.smallindentedblock {margin-right: 0em; font-size: smaller} blockquote.smallquotation {font-size: smaller} a40 4 div.lisp {margin-left: 3.2em} div.smalldisplay {margin-left: 3.2em} div.smallexample {margin-left: 3.2em} div.smalllisp {margin-left: 3.2em} a45 4 pre.smalldisplay {font-family: inherit; font-size: smaller} pre.smallexample {font-size: smaller} pre.smallformat {font-family: inherit; font-size: smaller} pre.smalllisp {font-size: smaller} d49 1 d83 5 a87 5 d188 1 a188 2aarch64*-*-*
d225 1 a225 2alpha*-*-*
d231 1 a231 2amd64-*-solaris2*
d235 1 a235 2amdgcn-*-amdhsa
d253 1 a253 2arc-*-elf32
d260 1 a260 2arc-linux-uclibc
d265 1 a265 2arm-*-eabi
d273 1 a273 2avr
d290 2 a291 2Error: register required d297 1 a297 2Blackfin
d305 1 a305 2CR16
d319 1 a319 2CRIS
d329 1 a329 2DOS
d338 1 a338 2epiphany-*-elf
d343 1 a343 2*-*-freebsd*
d374 1 a374 2ft32-*-elf
d379 1 a379 2h8300-hms
d390 1 a390 2hppa*-hp-hpux*
d440 1 a440 2hppa*-hp-hpux10
d450 1 a450 2hppa*-hp-hpux11
d553 1 a553 2*-*-linux-gnu
d562 1 a562 2i?86-*-linux*
d571 1 a571 2i?86-*-solaris2*
d595 1 a595 2ia64-*-linux
d604 1 a604 2ia64-*-hpux*
d617 1 a617 2*-ibm-aix*
d634 2 a635 2% LDR_CNTRL=MAXDATA=0x50000000 d646 2 a647 2% CONFIG_SHELL=/opt/freeware/bin/bash d697 1 a697 1‘libstdc++’ in GCC 3.4 increments the major version number of the d711 2 a712 2
% ar -x libstdc++.a libstdc++.so.4 libstdc++.so.5 d717 2 a718 2% strip -e libstdc++.so.4 libstdc++.so.5 d723 2 a724 2% ar -q libstdc++.a libstdc++.so.4 libstdc++.so.5 d781 1 a781 2iq2000-*-elf
d786 1 a786 2lm32-*-elf
d791 1 a791 2lm32-*-uclinux
d796 1 a796 2LoongArch
d800 1 a800 1- d804 1 a804 1
loongarch64-linux-gnu*- d807 1 a807 1
f64- d810 1 a810 1
f32- d816 1 a816 1
sf- d826 1 a826 2
loongarch64-linux-gnum32c-*-elf
d831 1 a831 2m32r-*-elf
d836 1 a836 2m68k-*-*
d862 1 a862 2m68k-*-uclinux
d869 1 a869 2microblaze-*-elf
d874 1 a874 2mips-*-*
d914 1 a914 2moxie-*-elf
d918 1 a918 2msp430-*-elf*
d937 1 a937 2nds32le-*-elf
d941 1 a941 2nds32be-*-elf
d945 1 a945 2nvptx-*-none
d962 1 a962 2or1k-*-elf
d967 1 a967 2or1k-*-linux
d971 1 a971 2powerpc-*-*
d978 1 a978 2powerpc-*-darwin*
d992 1 a992 2powerpc-*-elf
d996 1 a996 2powerpc*-*-linux-gnu*
d1000 1 a1000 2powerpc-*-netbsd*
d1004 1 a1004 2powerpc-*-eabisim
d1009 1 a1009 2powerpc-*-eabi
d1013 1 a1013 2powerpcle-*-elf
d1017 1 a1017 2powerpcle-*-eabisim
d1022 1 a1022 2powerpcle-*-eabi
d1026 1 a1026 2rl78-*-elf
d1031 1 a1031 2riscv32-*-elf
d1037 1 a1037 2riscv32-*-linux
d1042 1 a1042 2riscv64-*-elf
d1048 1 a1048 2riscv64-*-linux
d1053 1 a1053 2rx-*-elf
d1057 1 a1057 2s390-*-linux*
d1061 1 a1061 2s390x-*-linux*
d1065 1 a1065 2s390x-ibm-tpf*
d1070 1 a1070 2*-*-solaris2*
d1085 2 a1086 2% CONFIG_SHELL=/bin/ksh d1150 1 a1150 2sparc*-*-*
d1162 1 a1162 2sparc-sun-solaris2*
d1182 2 a1183 2% ./configure --build=sparc-sun-solaris2.11 --prefix=xxx d1187 1 a1187 2sparc-*-linux*
d1190 1 a1190 2sparc64-*-solaris2*
d1203 2 a1204 2% ./configure --build=sparc64-sun-solaris2.11 --prefix=xxx d1208 1 a1208 2sparcv9-*-solaris2*
d1212 1 a1212 2c6x-*-*
d1216 1 a1216 2tilegx-*-linux*
d1221 1 a1221 2tilegxbe-*-linux*
d1226 1 a1226 2tilepro-*-linux*
d1231 1 a1231 2visium-*-elf
d1236 1 a1236 2*-*-vxworks*
d1269 1 a1269 2x86_64-*-*, amd64-*-*
d1276 1 a1276 2x86_64-*-solaris2*
d1289 1 a1289 2xtensa*-*-elf
d1304 1 a1304 2xtensa*-*-linux*
d1313 1 a1313 2Microsoft Windows
d1315 1 a1315 2Intel 16-bit versions
d1322 1 a1322 2Intel 32-bit versions
d1337 1 a1337 2Intel 64-bit versions
d1342 1 a1342 2Windows CE
d1346 1 a1346 2Other Windows Platforms
d1360 1 a1360 2*-*-cygwin
d1374 1 a1374 2*-*-mingw32
d1384 1 a1384 2Older systems
d1427 1 a1427 2all ELF targets (SVR4, Solaris 2, etc.)
@ 1.1.1.20 log @initial import of GCC 14.3.0. major changes in GCC 13: - improved sanitizer - zstd debug info compression - LTO improvements - SARIF based diagnostic support - new warnings: -Wxor-used-as-pow, -Wenum-int-mismatch, -Wself-move, -Wdangling-reference - many new -Wanalyzer* specific warnings - enhanced warnings: -Wpessimizing-move, -Wredundant-move - new attributes to mark file descriptors, c++23 "assume" - several C23 features added - several C++23 features added - many new features for Arm, x86, RISC-V major changes in GCC 14: - more strict C99 or newer support - ia64* marked deprecated (but seemingly still in GCC 15.) - several new hardening features - support for "hardbool", which can have user supplied values of true/false - explicit support for stack scrubbing upon function exit - better auto-vectorisation support - added clang-compatible __has_feature and __has_extension - more C23, including -std=c23 - several C++26 features added - better diagnostics in C++ templates - new warnings: -Wnrvo, Welaborated-enum-base - many new features for Arm, x86, RISC-V - possible ABI breaking change for SPARC64 and small structures with arrays of floats. @ text @d3 1 a3 1