Gcc

From Computer History Wiki
Revision as of 10:56, 21 February 2013 by Tor (Talk | contribs) (Early Linux and GCC versions)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
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 gowing forard for 3.0 once it had stabalized. 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.