Gcc

From Computer History Wiki
Jump to: navigation, search

GCC is the GNU compiler collection. It includes the following languages:

  • C
  • C++
  • Objective C
  • Java
  • Fortran 77

Depending on the release version, it will include more languages....

GCC can target to binutils assembler/linker, along with other vendor provided assember linkers.

GCC has gone thru several notable versions:


1.x

The 1.x versions of GCC don't have full ./configure scripts, but instead require you to move files around and build. It's not an ANSI C compiler, but it's moving towards ANSI C, and away from K&R type conventions, however it can compile K&R code. I've had a few 'issues' where some things crash when built with gcc 1.x on the VAX while the default compiler (PCC) will build them. Unless you are using 4.2 BSD, I'd avoid the the 1.x GCC chain.

I think the primary platforms were 68000 SUN workstations (SunOS 2-4) and the VAX running BSD.

An interesting gcc 1.x distribution was Xmgcc.

The first Linux versions (from 0.01) used GCC 1.40, ported by Linus to Minix (as a cross-compiler). Then shortly later he ported it to run natively on Linux itself, where it was of course used to build the kernel and all the tools. GCC 1.42, in particular, followed Linux for quite a while before finally moving to GCC 2.x

2.x

While 2.x versions of GCC were very stable (2.5.8 and beyond) the project started to stagnate, and it lead to the EGCS project just after the 2.7 releases of GCC. The EGCS work was rolled back in for a 2.95 release of GCC, then going forward for 3.0 once it had stabilized. 2.x also added C++ & Objective C support.

3.x

4.x

GCC 4.0 is retargeting to support the llvm project to allow for better optimizations.