GNU Compiler Collection

GCCGNU C Compilerg++GCC compilerGNU CGIMPLEegcsg77GCC4GNU C++
The GNU Compiler Collection (GCC) is a compiler system produced by the GNU Project supporting various programming languages.wikipedia
676 Related Articles

GNU General Public License

GPLGNU GPLGPLv2
The Free Software Foundation (FSF) distributes GCC under the GNU General Public License (GNU GPL).
Prominent free-software programs licensed under the GPL include the Linux kernel and the GNU Compiler Collection (GCC).

Free Software Foundation

FSFRespects Your FreedomHigh Priority Free Software Projects
The Free Software Foundation (FSF) distributes GCC under the GNU General Public License (GNU GPL).
The FSF holds the copyrights on many pieces of the GNU system, such as GNU Compiler Collection.

Objective-C

Objective-C++Objective CCategory
Front ends were later developed for Objective-C, Objective-C++, Fortran, Java, Ada, and Go, among others.
Portable Objective-C programs that do not use Apple libraries, or those using parts that may be ported or reimplemented for other systems, can also be compiled for any system supported by GNU Compiler Collection (GCC) or Clang.

Linux

GNU/LinuxLinux on the desktopLin
GCC is a key component of the GNU toolchain and the standard compiler for most projects related to GNU and Linux, including the Linux kernel. 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.
The Project's implementation of the C library functions as a wrapper for the system calls of the Linux kernel necessary to the kernel-userspace interface, the toolchain is a broad collection of programming tools vital to Linux development (including the compilers used to build the Linux kernel itself), and the coreutils implement many basic Unix tools.

Richard Stallman

Richard M. StallmanStallmanRichard Matthew Stallman
In an effort to bootstrap the GNU operating system, Richard Stallman asked Andrew S. Tanenbaum, the author of the Amsterdam Compiler Kit (also known as the Free University Compiler Kit) for permission to use that software for GNU.
Stallman launched the GNU Project, founded the Free Software Foundation, developed the GNU Compiler Collection and GNU Emacs, and wrote the GNU General Public License.

C11 (C standard revision)

C11C11 (Annex K)
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.
Some features of C11 are supported by the GCC starting with version 4.6, Clang starting with version 3.1, and IBM XL C starting with version 12.1.

GNU Project

GNUFSDGGNU Free System Distribution Guidelines
The GNU Compiler Collection (GCC) is a compiler system produced by the GNU Project supporting various programming languages.
When the GNU project first started they had an Emacs text editor with Lisp for writing editor commands, a source level debugger, a yacc-compatible parser generator, and a linker". The GNU system required its own C compiler and tools to be free software, so these also had to be developed. By June 1987, the project had accumulated and developed free software for an assembler, an almost finished portable optimizing C compiler (GCC), an editor (GNU Emacs), and various Unix utilities (such as,,, and ). They had an initial kernel that needed more updates.

Free software

freefree-softwarefreely
GCC has played an important role in the growth of free software, as both a tool and an example.
Some of the best-known examples include the Linux kernel, the BSD and Linux operating systems, the GNU Compiler Collection and C library; the MySQL relational database; the Apache web server; and the Sendmail mail transport agent.

Porting

portedportports
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.
There also exists an ever-increasing number of tools to facilitate porting, such as the GNU Compiler Collection, which provides consistent programming languages on different platforms, and Autotools, which automates the detection of minor variations in the environment and adapts the software accordingly before compilation.

Linux kernel

LinuxLinux kernel mainlinekernel
GCC is a key component of the GNU toolchain and the standard compiler for most projects related to GNU and Linux, including the Linux kernel.
The Linux kernel is written in the version of the C programming language supported by GCC (which has introduced a number of extensions and changes to standard C), together with a number of short sections of code written in the assembly language (in GCC's "AT&T-style" syntax) of the target architecture.

Leonard H. Tower Jr.

Len Tower Jr.Len Tower
Stallman's initial plan was to rewrite an existing compiler from Lawrence Livermore Laboratory from Pastel to C with some help from Len Tower and others.
where he contributed to the initial releases of gcc and GNU diff.

GNU toolchain

GNU toolsettoolchain
GCC is a key component of the GNU toolchain and the standard compiler for most projects related to GNU and Linux, including the Linux kernel.

GNU

GNU operating systemGNU ProjectThe GNU Project
GCC is a key component of the GNU toolchain and the standard compiler for most projects related to GNU and Linux, including the Linux kernel. In an effort to bootstrap the GNU operating system, Richard Stallman asked Andrew S. Tanenbaum, the author of the Amsterdam Compiler Kit (also known as the Free University Compiler Kit) for permission to use that software for GNU. 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.
The system's basic components include the GNU Compiler Collection (GCC), the GNU C library (glibc), and GNU Core Utilities (coreutils), but also the GNU Debugger (GDB), GNU Binary Utilities (binutils), the GNU Bash shell.

Symbian

Symbian OSSymbian^3Symbian Belle
GCC is also available for most embedded systems, including Symbian (called gcce), ARM-based; AMCC, and Freescale Power ISA-based chips.
Up until Symbian OS version 8, the SDKs also included a version of the GNU Compiler Collection (GCC) compiler (a cross-compiler) needed to build software to work on the device.

LLVM

LLVM Intermediate RepresentationLLVM IRintermediate representation
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.
LLVM can accept the IR from the GNU Compiler Collection (GCC) toolchain, allowing it to be used with a wide array of extant compilers written for that project.

Ada (programming language)

AdaAda programming languageAda 83
Front ends were later developed for Objective-C, Objective-C++, Fortran, Java, Ada, and Go, among others.
Presently, the GNAT Compiler is part of the GNU Compiler Collection.

Intermediate representation

intermediate languageILIntermediate form
GENERIC is an intermediate representation language used as a "middle end" while compiling source code into executable binaries.
Use of an intermediate representation such as this allows compiler systems like the GNU Compiler Collection and LLVM to be used by many different source languages to generate code for many different target architectures.

OpenMP

multithreading capability
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.
GCC has also supported OpenMP since version 4.2.

ARM architecture

ARMARMv7ARMv8-A
GCC is also available for most embedded systems, including Symbian (called gcce), ARM-based; AMCC, and Freescale Power ISA-based chips. GCC is also available for most embedded systems, including ARM-based; AMCC, and Freescale Power ISA-based chips.
A quirk of NEON in ARMv7 devices is that it flushes all subnormal numbers to zero, and as a result the GCC compiler will not use it unless -funsafe-math-optimizations, which allows losing denormals, is turned on.

Optimizing compiler

compiler optimizationoptimizationoptimizations
Compiler optimizations and static code analysis techniques (such as FORTIFY_SOURCE, a compiler directive that attempts to discover some buffer overflows) are applied to the code.
GCC is a compiler which exemplifies this approach.

Unix

UNIX operating systemAT&T UnixUnix-like
GCC's external interface follows Unix conventions.
In addition to their use in the Linux operating system, many GNU packages – such as the GNU Compiler Collection (and the rest of the GNU toolchain), the GNU C library and the GNU core utilities – have gone on to play central roles in other free Unix systems as well.

The Cathedral and the Bazaar

bazaarcathedralbazaar model
The FSF kept such close control on what was added to the official version of GCC 2.x that GCC was used as one example of the "cathedral" development model in Eric S. Raymond's essay The Cathedral and the Bazaar.

Compiler

compiledcompilerscompile
Front ends were later developed for Objective-C, Objective-C++, Fortran, Java, Ada, and Go, among others. The GNU Compiler Collection (GCC) is a compiler system produced by the GNU Project supporting various programming languages.
The Free Software Foundation GNU project developed the GNU Compiler Collection (GCC) which provides a core capability to support multiple languages and targets.

Fork (software development)

forkforkedforks
As GCC was licensed under the GPL, programmers wanting to work in other directions—particularly those writing interfaces for languages other than C—were free to develop their own fork of the compiler, provided they meet the GPL's terms, including its requirements to distribute source code.

FreeBSD

TrustedBSDFreeBSD kernel*BSD
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.
ClangBSD aims to replace some GPL dependencies in the FreeBSD base system by replacing the GNU compiler collection with the BSD-licensed LLVM/Clang compiler.