6.14. GCC-3.4.3

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

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

6.14.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.

Aplica sólo el parche No-Fixincludes (pero no el parche Specs), que también se usó en el capítulo anterior:

patch -Np1 -i ../gcc-3.4.3-no_fixincludes-1.patch

GCC falla al compilar algunos paquetes ajenos a la instalación base de Linux From Scratch (como Mozilla y kdegraphics) cuando se usa en conjunción con la más nueva versión de Binutils. Aplica el siguiente parche para corregir dicho problema:

patch -Np1 -i ../gcc-3.4.3-linkonce-1.patch

Aplica una sustitución sed que suprimirá la instalación de libiberty.a. Se usará en su lugar la versión de libiberty.a suministrada por Binutils:

sed -i 's/install_to_$(INSTALL_DEST) //' libiberty/Makefile.in

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

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

Prepara GCC para su compilación:

../gcc-3.4.3/configure --prefix=/usr \
    --libexecdir=/usr/lib --enable-shared \
    --enable-threads=posix --enable-__cxa_atexit \
    --enable-clocale=gnu --enable-languages=c,c++

Compila el paquete:

make
[Importante]

Importante

En esta sección, el banco de pruebas para GCC se considera crítico. No te lo saltes bajo ninguna circunstancia.

Comprueba los resultados, pero no pares en los errores:

make -k check

Algunos errores son conocidos y se mencionaron en el capítulo anterior. Las notas para el banco de pruebas que hay en la Sección 5.11, “GCC-3.4.3 - Fase 2” son aún más apropiadas aquí. Asegúrate de consultarlas si es necesario.

Instala el paquete:

make install

Algunos paquetes esperan que el preprocesador de C esté instalado en el directorio /lib. Para dar soporte a estos paquetes, crea un enlace simbólico:

ln -sv ../usr/bin/cpp /lib

Muchos paquetes usan el nombre cc para llamar al compilador de C. Para satisfacer a estos paquetes, crea un enlace simbólico:

ln -sv gcc /usr/bin/cc
[Nota]

Nota

En este punto es muy recomendable repetir la comprobación que realizamos anteriormente en este capítulo. Vuelve a la Sección 6.12, “Reajustar las herramientas” y repite las comprobaciones. Si los resultados son malos, entonces es muy posible que erróneamente hayas aplicado el parche Specs para GCC del Capítulo 5.

6.14.2. Contenido de GCC

Programas instalados: c++, cc (enlace a gcc), cpp, g++, gcc, gccbug y gcov
Librerías instaladas: libgcc.a, libgcc_eh.a, libgcc_s.so, libstdc++.[a,so] y libsupc++.a

Descripciones cortas

cc

El compilador de C.

cpp

El preprocesador de C. Lo usa el compilador para expandir las sentencias #include, #define y similares en los ficheros fuente.

c++

El compilador de C++.

g++

El compilador de C++.

gcc

El compilador de C.

gccbug

Un guión del intérprete de comandos que ayuda a crear notificaciones de errores.

gcov

Una herramienta para pruebas de rendimiento. Se usa para analizar programas y encontrar qué optimizaciones tendrán el mayor efecto.

libgcc

Contienen el soporte en tiempo de ejecución para gcc.

libstdc++

La librería estándar de C++.

libsupc++

Proporciona rutinas de soporte para el lenguaje de programación c++.