Computer Programms used

at the Sternwarte Bonn


Home| Philosophy| Order| Download| Software| Documentation

 [image of the Head of a GNU] (jpeg 7k) (jpeg 21k) no gifs due to patent problems (other GNU art (500k))

GCC - The GNU C Compiler



Introduction to GCC

GCC was developed by GNU to provide a free compiler for the GNU system. GCC is distributed under the terms of the GNU General Public License (20k characters). (For more information on the philosophy behind the GNU system and the Free Software Foundation, see philosophy.)

GCC can compile programs written in C, C++, Objective C, Ada 95, Fortran 77, and Pascal (see compiling other languages).

GCC is a full featured compiler, providing everything you need in a C compiler. GCC is updated to support new features and new platforms. The GNU project also provides many companion tools, such as GNU make and GDB (GNU Debugger).

A version of GCC is currently used by NeXT (now Apple) as the sole compiler for NeXTstep, and in OPENSTEP.


GCC - The Name

``GCC'' is short for the ``GNU C Compiler''; we also sometimes use the name ``GNU CC'.

`gcc' is also the command name used to invoke the compiler. The reason for this name is that the compiler initially supported only the C language. Now, `gcc' will invoke the proper compiler files for C++ files if their names end in `.C', `.cc', `.cpp', or `.cxx'. The `gcc' command also recognizes Objective C, Pascal and Fortran files based on their file names.


Languages compiled by GCC

The main GCC distribution includes the source for the C, C++, and Objective C front ends, giving gcc the ability to compile programs in these languages. Additional front ends for Ada 95, Fortran 77, and Pascal are distributed separately. (Note: The front end for Ada is not distributed by the Free Software Foundation, because it is written in Ada and therefore has to be distributed together with binaries for bootstrapping.)

G++ is the C++ compiler. G++ is a compiler, not merely a preprocessor; G++ builds object code directly from your C++ program source. There is no intermediate C version of the program.

Avoiding an intermediate C representation of the program means that you get better object code, and better debugging information. The GNU debugger, GDB, works with this information in the object code to give you comprehensive C++ source-level editing capabilities.


Version Information and Supported Platforms

The latest version of the GCC compiler is version 2.7.2.3. This is an update of the 2.7.2 release, which fixes a few important bugs, especially in the support for GNU Libc versions 1 and 2 on Linux-based GNU systems.

If you are already using 2.7.2, 2.7.2.1, or 2.7.2.2, and you are not having problems with it, there is no reason to upgrade now; however, if you are redistributing GCC, you should switch to redistributing 2.7.2.3 instead.

The following platforms are currently supported :

Information on obtaining the latest version of GCC and all GNU software.


Portability and Optimization

GCC is a fairly portable optimizing compiler which performs many optimizations.

Portability:

Optimizations:


GNU CC Distribution Policy

GCC is distributed under the terms of the GNU General Public License(20k characters).

It is permissible to compile non-free programs with GCC. Compiling a program with GCC and distributing the binary does not require you to make the program free software or release its source code. This is because the run-time library included with GCC comes with special permission to link it with your compiled programs without restriction.

However, making programs free software is the right thing to do on general ethical principles, regardless of what compiler you use.


Putting it all together - a development environment

The primary goal of GNU is to develop a free, complete Unix-like operating system, including all the tools necessary to develop your own programs. GCC is an essential component of the GNU system; it is also useful on many other operating systems and target platforms.

Other GNU programs that are useful together with GCC include the Binutils (which include the GNU assembler and GNU linker), GNU Debugger (GDB), GNU Make, and the GNU C Library. Unfortunately, we don't have web pages yet for most of these programs, but we hope to.


Helping GCC Development

Many people now help with the development of GCC. Maybe you would like to join in.

We can use more people to pretest GCC on various platforms, which means trying development snapshots and carefully investigating any problems. If you would like to help in this way, send mail to gcc-maintainers@gnu.org. The pretest snapshots are available in the directory vger.rutgers.edu:/pub/gcc.

We can also use capable hackers to fix bugs, develop new optimizations, and maintain the support for certain platforms. If you would like to do this, the first step is to start reading the GCC sources and see if you can understand the program. Nobody understands every detail of GCC; it is too big for that, but fortunately there's no need to understand every detail to do useful work. What is necessary is to be able to understand a part of the program when you want to. When you've learned to do this, send mail to gcc-maintainers@gnu.org.


Contact Information

Please send inquiries about GNU and the FSF to
Free Software Foundation           Voice:  +1-617-542-5942
59 Temple Place - Suite 330        Fax:    +1-617-542-2652
Boston, MA  02111-1307,  USA       gnu@prep.ai.mit.edu

Many thanks to Networks On-Line for donating the hardware, network access, and site administration for this web server.


The GNU Web-masters
webmasters@www.gnu.org
Please send questions and inquiries to gnu@prep.ai.mit.edu.
Please send comments on these web pages to webmasters@www.gnu.org.

Copyright (C) 1996, 1997 Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA

Verbatim copying and distribution is permitted in any medium, provided this notice is preserved.

Updated: 18 Sep 1997 rms

Return to GNU's Home

Back/forward to the:
Last update: 09th May, 1999
Jochen M. Braun
 (E-Mail: jbraun@astro.uni-bonn.de)