• Aucun résultat trouvé

Parts List

Dans le document For Mary (Page 36-42)

GCC is made up of many components. Table 1-3 lists the parts of GCC, but not all of them are always present. Some of them are language specific, so if a particular language has not been installed, certain files will be missing from that system.

THEFREESOFTWARECOMPILER

Part Description

c++ A version ofgccthat sets the default language to C++ and automatically includes the standard C++ libraries when linking.

This is the same asg++.

cc1 The actual C compiler.

cc1plus The actual C++ compiler.

collect2 On systems that do not use the GNU linker, it is necessary to run collect2to generate certain global initialization code (such as constructors and destructors in C++).

configure A script in the root directory of the GCC source tree. It is used to set configuration values and create the makefiles necessary to compile GCC.

crt0.o The initialization and shutdown code is customized for each system and compiled into this file, which is then linked to each executable to perform the necessary program startup and shutdown activities.

cygwin1.dll A shared library for Windows that provides an API that emulates UNIX system calls.

f77 The driver program used to compile Fortran.

f771 The actual Fortran compiler.

g++ A version ofgccthat sets the default language to C++ and automatically includes the standard C++ libraries when linking.

This is the same asc++.

gcc The driver program that coordinates execution of compilers and linkers to produce the desired output.

gcj The driver program used to compile Java.

gnat1 The actual Ada compiler.

Table 1-3. Various Installed Par ts of GCC

Table 1-4 lists software that works in conjunction with GCC to aid in the compilation process. Some are absolutely essential (such asasandld), where others can be useful but are not strictly required. Although many of these tools are available as native utilities on various UNIX systems, you can get most of them as a GNU package known as binutils. The procedure for installingbinutilsis described in Chapter 2.

Part Description

gnatbind A utility used to perform Ada language binding.

gnatlink A utility used to perform Ada language linking.

jc1 The actual Java compiler.

libgcc This library contains routines that could be considered part of the compiler because they are linked with virtually every executable. They are special routines that are linked with an executable program to perform fundamental tasks such as floating point arithmetic. The routines in this library are often platform dependent.

libgcj The runtime library containing all the core Java classes.

libobjc The runtime library necessary for all Objective-C programs.

libstdc++ The runtime library contains all the C++ classes and functions defined as part of the standard language.

Table 1-3. Various Installed Par ts of GCC (continued)

Tool Description

addr2line Given an address inside an executable file,addr2lineuses the debug information in the file to translate the address into a source code file name and line number. This program is part of the binutilspackage.

Table 1-4. Software Tools Used with GCC

THEFREESOFTWARECOMPILER Tool Description

ar A program to maintain library archive files by adding, removing, and extracting files from the archive. The most common use for this utility is to create and manage object library archives used by the linker. This program is part of thebinutilspackage.

as The GNU assembler. It is really a family of assemblers because it can be compiled to work with one of several different platforms.

This program is part of thebinutilspackage.

autoconf Produces shell scripts that automatically configure a source code package to compile on a specific version of UNIX.

c++filt The program accepts names that have been mangled by the C++

compiler (which it does for overloading) and translates the mangled names to their original form. This program is part of thebinutils package.

f2c A Fortran-to-C translation program. It is not a part of GCC.

gcov A profiling tool used withgprofto determine where the greatest amount of time is being spent during the execution of your program.

gdb The GNU debugger, which can be used to examine the values and actions inside a program while it is running.

GNATS The GNU Bug Tracking System. An online system for tracking bugs for GCC and other GNU software.

gprof This program will monitor the execution of a program that has been compiled with profiling code built into it and reports the amount of time spent in each function, providing a profile from which routines can be optimized. This program is part of the binutilspackage.

ld The GNU linker. This program combines a collection of object files into an executable program. This program is part of the binutilspackage.

libtool A generic library support script used in makefiles to simplify the use of shared libraries.

Table 1-4. Software Tools Used with GCC (continued)

Tool Description

make A utility that reads amakefilescript to determine which parts of a program need compiling and linking and then issues the commands necessary to do so. It reads a script (namedmakefile orMakefile) that defines file relationships and dependencies.

nlmconv Converts a relocatable object file into a NetWare Loadable Module (NLM). This program is part of thebinutilspackage.

nm Lists the symbols defined in an object file. This program is part of thebinutilspackage.

objcopy Copies and translates an object file from one binary format to another. This program is part of thebinutilspackage.

objdump Displays several different kinds of information stored inside one or more object file. This program is part of thebinutilspackage.

ranlib Creates and adds an index to anararchive file. The index is the one used byldto locate modules in the library. This program is part of thebinutilspackage.

ratfor The Ratfor preprocessor can be invoked by GCC but is not a part of the standard GCC distribution.

readelf Displays information from an ELF formatted object file. This program is part of thebinutilspackage.

size Lists the names and sizes of each of the sections in an object file.

This program is part of thebinutilspackage.

strings Reads through a file of any type and extracts the character strings for display. This program is part of thebinutilspackage.

strip Removes the symbol table, along with any other information required for debugging, from an object file or an archive library.

This program is part of thebinutilspackage.

vcg The Ratfor viewer reads information from a text file and displays it as a graph. Thevcgutility is not distributed as part of GCC, but the-dvoption can be used to generate optimization data in the format understood byvcg.

windres A compiler for Window resource files. This program is part of the binutilspackage.

Table 1-4. Software Tools Used with GCC (continued)

Contact

The home website for GNU is http://www.gnu.org, and the home website of the GCC project is http://gcc.gnu.org.

The GCC compiler scales very well—from simple batch utility programs to multimillion-line systems. Generally, as a software project gets larger or becomes specialized in some way, situations arise where odd problems are uncovered. Some of these are bugs and some are peculiarities, but there inevitably comes a time when you need clarification—or at least a nudge in the right direction. Fortunately, help is available, along with everything you would like to know about GCC.

The primary source of information is through mailing lists. An open mailing list (one in which all the members are able to both send and receive) has the advantages of being immediate and making it easy for a dialogue to take place. If it is help you are after, I would suggest subscribing to the gcc-help mailing list. A dialogue on an open list can continue until the situation is clarified and the problem is solved. Table 1-5 contains brief descriptions of all the GCC open mailing lists. The read-only mailing lists are listed in Table 1-6.

THEFREESOFTWARECOMPILER

List Name Description

gcc A general discussion area for the development of GCC. If you only subscribe to one list, this should be the one. It should keep you abreast of the latest news and developments. This is a high volume list.

gcc-bugs Discussions of bugs and bug reports. This is a high volume list.

gcc-help This list is for use by people searching for answers to questions.

This is a high volume list

gcc-patches Source code patches and discussions of patches are submitted to this list. This is a high volume list.

gcc-testresults Test results and discussions of testing and test results are posted to this list.

java The discussion list for the development and maintenance of the Java front end of GCC, as well as the Java runtime library.

java-patches Source code patches for the Java front end and the Java runtime library are posted to this list as well as the gcc-patches list.

libstdc++ The discussion list for the development and maintenance of the standard C++ library.

Table 1-5. The Open GCC Mailing Lists

All the mailing lists can be accessed at the website http://www.gnu.org/software/

gcc/lists.html. Entries can be made on this page to subscribe and unsubscribe to the lists. Also, each list has its own website that can be used to search and read through the archived messages of the list. The name of the list preceded by gcc.gnu.org/ml/ is the name of the website. For example, to locate the gcc-announce archive website, go to http://gcc.gnu.org/ml/gcc-announce.

List Name Description

gccadmin This mailing list receives the messages issued from the cron jobs run by the gccadmin account at gcc.gnu.org.

gcc-announce A low volume mailing list for announcements of new releases and other events of importance to GCC.

gcc-cvs A message is sent to this list for each check-in to the CVS repository.

gcc-cvs-wwwdocs A message is sent to this list each time there is a check-in to the CVS repository of the HTMLdocumentation.

gcc-prs A message is sent to this list each time a problem report is entered into the GNATS database.

gcc-regression Messages are posted to this list containing the results of running regression testing of GCC.

java-announce A low volume mailing list for announcements relating to the Java front end or the Java runtime routines.

java-cvs A message is sent to this list (and the gcc-cvs list) for each check-in to the Java compiler and runtime sections of the CVS repository.

java-prs A message is sent to this list (and the gcc-prs list) each time a Java related problem report is entered into the GNATS database.

libstdc++-cvs A message is sent to this list each time there is a check-in to the libstc++ part of the CVS repository.

Table 1-6. The Read-Only GCC Mailing Lists

Chapter 2

Acquiring and Installing

Dans le document For Mary (Page 36-42)