5.4. GCC-3.4.3 - Fase 1

El paquete GCC contiene la colección de compiladores GNU, que incluye los compiladores C y C++.

Tiempo estimado de construcción: 4.4 SBU
Espacio requerido en disco: 219 MB
Para su instalación depende de: Bash, Binutils, Coreutils, Diffutils, Findutils, Gawk, Gettext, Glibc, Grep, Make, Perl, Sed y Texinfo

5.4.1. Instalación de GCC

Se sabe que este programa se comporta mal si se cambian sus parámetros de optimización (incluyendo las opciones -march y -mcpu). Si tienes definida cualquier variable de entorno que altere las optimizaciones por defecto, como CFLAGS o CXXFLAGS, desactívala cuando construyas GCC.

La documentación de GCC recomienda construirlo en un directorio dedicado, fuera del árbol de las fuentes:

mkdir ../gcc-build
cd ../gcc-build

Prepara GCC para su compilación:

../gcc-3.4.3/configure --prefix=/tools \
    --libexecdir=/tools/lib --with-local-prefix=/tools \
    --disable-nls --enable-shared --enable-languages=c

Significado de las opciones de configure:

--with-local-prefix=/tools

Esta opción es para eliminar /usr/local/include de las rutas de búsqueda por defecto de gcc. Esto no es esencial, sin embargo ayuda a minimizar la influencia del sistema anfitrión.

--enable-shared

Esta opción permite construir libgcc_s.so.1 y libgcc_eh.a. Tener a libgcc_eh.a disponible nos asegura que el guión configure de Glibc (el siguiente paquete por compilar) produzca los resultados apropiados.

--enable-languages=c

Esta opción nos asegura que sólo se construya el compilador de C.

Compila el paquete:

make bootstrap

Significado de los parámetros de make:

bootstrap

Este objetivo no sólo compila GCC, sino que lo compila varias veces. Usa los programas compilados la primera vez para compilarse a sí mismo una segunda vez y luego una tercera. Después compara la segunda compilación con la tercera para asegurarse que puede reproducirse a sí mismo sin errores. Esto también implica que se ha compilado correctamente.

La compilación se ha completado. En este punto normalmente ejecutaríamos el banco de pruebas, pero, como se mencionó antes, el entorno de trabajo para los bancos de pruebas no se encuentra todavía en su lugar. Los beneficios de ejecutar ahora los bancos de pruebas son mínimos, pues los programas de esta primera fase pronto serán sustituidos.

Instala el paquete:

make install

Como toque final, crea un enlace simbólico. Muchos programas y guiones ejecutan cc en vez de gcc. Esto es una forma de hacer que los programas sean genéricos y por tanto utilizables en toda clase de sistemas Unix. No todos tienen instalado el compilador de C de GNU. Ejecutar cc deja al administrador del sistema libre de decidir qué compilador de C instalar, mientras haya un enlace simbólico que apunte a él.

ln -s gcc /tools/bin/cc

Los detalles sobre este paquete se encuentran en la Sección 6.14.2, “Contenido de GCC”.