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.
Desempaqueta los paquetes gcc-core y gcc-g++, que se
desempaquetarán dentro de un mismo directorio. Además debes extraer
el paquete gcc-testsuite. El paquete completo GCC contiene otros
compiladores más. En http://www.lfs-es.com/blfs-es-CVS/general/gcc.html
puedes encontrar las instrucciones para construirlos (en
http://www.linuxfromscratch.org/blfs/view/svn/general/gcc.html
se encuentra la versión original en inglés).
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.1-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.1-linkonce-1.patch
Aplica una sustitución sed que suprimirá la instalación de
libiberty.a. Queremos usar 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 ../gcc-build
cd ../gcc-build
Prepara GCC para su compilación:
../gcc-3.4.1/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
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.13, “GCC-3.4.1 - 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 -s ../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 -s gcc /usr/bin/cc
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.