Installing GCC-2.95.3

Estimated build time:           22 minutes
Estimated required disk space:  148 MB

Installation of GCC

This package is known to behave badly when you have changed its default optimization flags (including the -march and -mcpu options). GCC is best left alone, so we recommend you unsetting CFLAGS, CXXFLAGS and other such variables/settings that would change the default optimization that it comes with.

Install GCC by running the following commands. These commands will build the C and C++ compiler. Other compilers are available within the gcc package. If you want to build all the other available compilers too, leave out the --enable-languages=c,c++ option in the configure command. See the GCC documentation for more details on which additional compilers are available.

Note: the build of other compilers is not tested by the people who actively work on LFS.

patch -Np1 -i ../gcc-2.95.3-2.patch &&
mkdir ../gcc-build &&
cd ../gcc-build &&
../gcc-2.95.3/configure --prefix=/usr --enable-shared \
   --enable-languages=c,c++ --enable-threads=posix &&
make bootstrap &&
make install &&
cd /lib &&
ln -sf ../usr/bin/cpp &&
cd /usr/lib &&
ln -sf ../bin/cpp &&
cd /usr/bin &&
ln -sf gcc cc &&
rmdir /usr/*-gnu/include &&
rmdir /usr/*-gnu

Contents of gcc-2.95.3

Program Files

c++, c++filt, cc (link to gcc), cc1, cc1plus, collect2, cpp, cpp0, g++, gcc, gcov, protoize and unprotoize

Descriptions

cc, cc1, cc1plus, gcc

These are the C compiler. A compiler translates source code in text format to a format that a computer understands. After a source code file is compiled into an object file, a linker will create an executable file from one or more of these compiler generated object files.

c++, cc1plus, g++

These are the C++ compiler; the equivalent of cc and gcc etc.

c++filt

c++filt is used to demangle C++ symbols.

collect2

No description is currently available.

cpp, cpp0

cpp pre-processes a source file, such as including the contents of header files into the source file. It's a good idea to not do this manually to save a lot of time. Someone just inserts a line like #include <filename>. The preprocessor inserts the contents of that file into the source file. That's one of the things a preprocessor does.

gcov

No description is currently available.

protoize

Optional additional program which converts old-style pre-ANSI functions or definitions to new-style ANSI C prototypes. (default file for looking known ones up is /usr/lib/gcc-lib/<arch>/<version>/SYSCALLS.c.X)

unprotoize

Optional additional program which converts prototypes made by protoize back to original old-style pre-ANSI (correct job only when converted before with protoize)

Library Files

libgcc.a, libiberty.a, libstdc++.[a,so]

libgcc

libgcc.a is a run-time support file for gcc.Most of the time, on most machines, libgcc.a is not actually necessary.

libiberty

libiberty is a collection of subroutines used by various GNU programs including getopt, obstack, strerror, strtol and strtoul.

libstdc++

libstdc++ is the C++ library. It is used by C++ programs and contains functions that are frequently used in C++ programs. This way the programmer doesn't have to write certain functions (such as writing a string of text to the screen) from scratch every time he creates a program.

Dependencies

GCC-2.95.3 needs the following to be installed:


bash: sh
binutils: ar, as, ld, nm, ranlib
diffutils: cmp
fileutils: chmod, cp, ln, ls, mkdir, mv, rm, touch
find: find
gcc: cc, cc1, collect2, cpp0, gcc
grep: egrep, grep
make: make
patch: patch
sed: sed
sh-utils: basename, dirname, echo, expr, hostname, sleep, true, uname
tar: tar
texinfo: install-info, makeinfo
textutils: cat, tail, tr