GCC and LLVM - What's in a licence?

Computer languages have standards, but the standards of computer languages are often fallible, especially when programmers find work arounds and short cuts. Every programmer who has ever compiled identical software on different compilers on different machines will know that there can be frustrating and inexplicable imperfections and inconsistencies between one machine and another, and one compiler and another.

In recent years the GCC developers have become sticklers for abiding by ANSI standards, although this wasn't always the case. Like most commercial compilers, a number of 'improvements' and extensions were written into the GCC C compiler. The difference was that GCC was portable across a wider range of architectures.

A common compiler simplifies these issues and ensures compatibility and portability across a range of platforms, and has ensured the continued and growing popularity of GCC, or so the theory goes. Cygnus Solutions, which was formed to promote free software in commercial environments and became part of Red Hat, made healthy revenues for many years as a consultancy and software forge for device manufacturers who wished to port GCC, as a C/C++ compiler, to new architectures and devices.

GCC and LLVM provide an easy route for the necessity to get a compiler working on a new device. Write to the language specifications of a common compiler and it becomes easier to overcome portability issues. A secondary benefit, from the point of view of advocates of free software, is that GCC has been a vehicle for spreading the idea of free software - and this notion has always been at the heart of GCC development.