The GNU Compiler Collection (GCC) is a compiler system produced by the GNU Project supporting various programming languages. GCC is a key component of the GNU toolchain and the standard compiler for most projects related to GNU and Linux, the most notable is the Linux kernel. The Free Software Foundation (FSF) distributes GCC under the GNU General Public License (GNU GPL). GCC has played an important role in the growth of free software, as both a tool and an example.
When it was first released in 1987, GCC 1.0 was named the GNU C Compiler since it only handled the C programming language. It was extended to compile C++ in December of that year. Front ends were later developed for Objective-C, Objective-C++, Fortran, Java, Ada, and Go, among others.
Version 4.5 of the OpenMP specification is now supported in the C and C++ compilers and a “much improved” implementation of the OpenACC 2.0a specification is also supported. By default, the current version supports gnu++14, a superset of C++14, and gnu11, a superset of C11, with strict standard support also available. It also provides experimental support for C++17 and later.
GCC has been ported to a wide variety of instruction set architectures, and is widely deployed as a tool in the development of both free and proprietary software. GCC is also available for most embedded systems, including ARM-based; AMCC, and Freescale Power ISA-based chips. The compiler can target a wide variety of platforms.
As well as being the official compiler of the GNU operating system, GCC has been adopted as the standard compiler by many other modern Unix-like computer operating systems, including Linux and the BSD family, although FreeBSD and macOS have moved to the LLVM system. Versions are also available for Microsoft Windows and other operating systems; GCC can compile code for Android and iOS.
GCC is still not able to produce reproducible builds, but patches are available and waiting to be merged.