GNU Compiler Collection

GNU Compiler Collection
Original author(s)Richard Stallman
Developer(s)GNU Project
Initial releaseMarch 22, 1987; 37 years ago (1987-03-22)[1]
Stable release
14.2[2] Edit this on Wikidata / 1 August 2024
Repository
Written inC, C++[3]
Operating systemCross-platform
PlatformGNU and many others
Size~15 million LOC[4]
Available inEnglish
TypeCompiler
LicenseGPLv3+ with GCC Runtime Library Exception[5]
Websitegcc.gnu.org

The GNU Compiler Collection (GCC) is a collection of compilers from the GNU Project that support various programming languages, hardware architectures and operating systems. The Free Software Foundation (FSF) distributes GCC as free software under the GNU General Public License (GNU GPL). GCC is a key component of the GNU toolchain which is used for most projects related to GNU and the Linux kernel. With roughly 15 million lines of code in 2019, GCC is one of the largest free programs in existence.[4] It 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 by Richard Stallman, GCC 1.0 was named the GNU C Compiler since it only handled the C programming language.[1] It was extended to compile C++ in December of that year. Front ends were later developed for Objective-C, Objective-C++, Fortran, Ada, D, Go and Rust,[6] among others.[7] The OpenMP and OpenACC specifications are also supported in the C and C++ compilers.[8][9]

GCC has been ported to more platforms and instruction set architectures than any other compiler, and is widely deployed as a tool in the development of both free and proprietary software. GCC is also available for many embedded systems, including ARM-based and Power ISA-based chips.

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 most Linux distributions. Most BSD family operating systems also switched to GCC shortly after its release, although since then, FreeBSD and Apple macOS have moved to the Clang compiler,[10] largely due to licensing reasons.[11][12][13] GCC can also compile code for Windows, Android, iOS, Solaris, HP-UX, AIX and DOS.[14]

  1. ^ a b "GCC Releases". GNU Project. Archived from the original on June 4, 2023. Retrieved July 24, 2020.
  2. ^ Jakub Jelínek (August 1, 2024). "GCC 14.2 Released". Retrieved August 1, 2024.
  3. ^ "GCC Coding Conventions - GNU Project". gcc.gnu.org. Archived from the original on May 28, 2023. Retrieved February 7, 2022.
  4. ^ a b Víctor Rodríguez (October 1, 2019). "Cutting Edge Toolchain (Latest Features in GCC/GLIBC)". youtube.com. Linux Foundation. Archived from the original on November 7, 2021. Retrieved January 19, 2021.
  5. ^ "GCC Runtime Library Exception". Archived from the original on March 31, 2023. Retrieved July 24, 2020.
  6. ^ GCC Rust, Rust GCC, June 4, 2023, archived from the original on January 6, 2023, retrieved June 4, 2023
  7. ^ "Programming Languages Supported by GCC". GNU Project. Archived from the original on January 18, 2023. Retrieved June 23, 2014.
  8. ^ "GCC 6 Release Series — Changes, New Features, and Fixes - GNU Project". gcc.gnu.org. Archived from the original on September 22, 2016. Retrieved September 19, 2016.
  9. ^ "OpenACC - GCC Wiki". gcc.gnu.org. Archived from the original on April 1, 2015. Retrieved September 19, 2016.
  10. ^ "The LLVM Compiler Infrastructure Project". llvm.org. Archived from the original on January 18, 2023. Retrieved September 24, 2021.
  11. ^ "Apple's GPLv3 purge". meta.ath0.com. February 5, 2012. Archived from the original on January 18, 2023. Retrieved January 12, 2021.
  12. ^ Linnemann, Reid (June 20, 2012). "Why Clang". Archived from the original on January 18, 2023. Retrieved January 12, 2021.
  13. ^ "August 29, 2007: FreeBSD Foundation Newsletter, August 29, 2007". October 11, 2007. Archived from the original on October 11, 2007. Retrieved January 12, 2021.
  14. ^ "Installing GCC: Binaries - GNU Project - Free Software Foundation (FSF)". gcc.gnu.org. Archived from the original on January 5, 2021. Retrieved January 12, 2021.