Beyond Linux From Scratch - Version 6.2.0

Chapter 12. Programming

GCC-3.3.6

Introduction to GCC-3.3.6

There are several reasons why you may wish to install GCC-3.3.6. Some packages have not been updated
so they can be successfully compiled by GCC-4.0.3 as version 4.x.x of GCC is much stricter in enforcing coding
standards. Additionally, some pre-compiled packages may require the
GCC-3.3.6 libraries at run-time.
Another reason you may need to install GCC-3.3.6 is to use the g77 Fortran 77 compiler provided by
pre-4.x.x versions of GCC.
GCC-4.x.x only includes
gfortran, a Fortran
95 compatible compiler that is not yet ready to be used in a
production environment.

If all you need is a working {f,g}77 Fortran 77 compiler, you may wish
to use the one provided by GCC-3.4.x. This is what the GCC developers recommend. Instructions for
building the GCC-3.4.x Fortran
compiler can be found on the BLFS Wiki.

Command Explanations

mkdir ../gcc-build; cd
../gcc-build: The GCC development team recommends building in a
separate directory.

--enable-shared --enable-languages=c,c++
--enable-threads=posix: Configures GCC to build the C and C++
compilers and enable the related C++ options. In addition to c and c++, you can
add f77 for FORTRAN (called g77).
Note that GCC-4 no longer provides
a FORTRAN 77 compiler.

mv -v
/opt/gcc-3.3.6/lib/libstdc++.so.5* /usr/lib: Moves
the C++ library to the standard
lib directory to avoid having to add /opt/gcc-3.3.6/lib to /etc/ld.so.conf.

Configuring GCC-3.3.6

Configuration
information

If you only need the GCC-3.3.6 C++ library, you may delete
/opt/gcc-3.3.6.

Whenever you need to use GCC-3.3.6 instead of your system
installed compiler, add /opt/gcc-3.3.6/bin to the front of your
PATH or (preferably) set the CC environment variable before compiling the
concerned package.

If you use g77 programs, you
also should move the libg2c.* libraries and symbolic links to
/usr/lib. Using export
LD_LIBRARY_PATH=/opt/gcc-3.3.6/lib or updating /etc/ld.so.conf to point to /opt/gcc-3.3.6/lib is not recommended as it may
conflict with your normal libraries.