Linux From Scratch: Versión 5.0 | ||
---|---|---|
Anterior | Capítulo 6. Instalación de los programas del sistema base | Siguiente |
Tiempo estimado de construcción: 11.7 SBU Estimación del espacio necesario en disco: 294 MB |
El paquete GCC contiene la colección de compiladores GNU, que incluye los compiladores C y C++.
Programas instalados: c++, cc (enlace a gcc), cc1, cc1plus, collect2, cpp, g++, gcc, gccbug y gcov
Librerías instaladas: libgcc.a, libgcc_eh.a, libgcc_s.so, libstdc++.[a,so] y libsupc++.a
GCC depende de: Bash, Binutils, Coreutils, Diffutils, Findutils, Gawk, Gettext, Glibc, Grep, Make, Perl, Sed, Texinfo.
Nota: El banco de pruebas para GCC de este capítulo se considera crítico. No te lo saltes bajo ninguna circunstancia.
Se sabe que este programa se comporta mal si cambias sus parámetros de optimización (incluyendo las opciones -march y -mcpu). Por esta razón, si tienes definida cualquier variable de entorno que pueda sobreescribir las optimizaciones por defecto, como CFLAGS o CXXFLAGS, recomendamos quitarlas o modificarlas cuando construyas GCC.
En esta ocasión construiremos los compiladores C y C++, por lo que necesitarás desempaquetar los paquetes GCC-core y GCC-g++, que se desempaquetarán dentro del mísmo directorio. Además debes extraer el paquete GCC-testsuite. El paquete completo GCC contiene otros compiladores más. Las instrucciones para construirlos las puedes encontrar en http://www.escomposlinux.org/lfs-es/blfs-es-5.0/general/gcc.html (el original en inglés está en http://www.linuxfromscratch.org/blfs/view/stable/general/gcc.html).
patch -Np1 -i ../gcc-3.3.1-no_fixincludes-2.patch patch -Np1 -i ../gcc-3.3.1-suppress-libiberty.patch |
El segundo parche suprime la instalación de libiberty de GCC, pues utilizaremos en su lugar la suministrada por Binutils. Ten cuidado de no aplicar aquí el parche Specs para GCC del Capítulo 5.
La documentación de GCC recomienda construirlo fuera del directorio de las fuentes, en un directorio de contrucción dedicado:
mkdir ../gcc-build cd ../gcc-build |
Ahora prepara GCC para su compilación:
../gcc-3.3.1/configure --prefix=/usr \ --enable-shared --enable-threads=posix \ --enable-__cxa_atexit --enable-clocale=gnu \ --enable-languages=c,c++ |
Compila el paquete:
make |
Comprueba los resultados, pero no pares en los errores (recordarás que hay varios conocidos):
make -k check |
Las notas para el banco de pruebas que hay en la sección Instalación de GCC-3.3.1 - Fase 2 del Capítulo 5 son aún más apropiadas aquí. Asegurate de consultarlas si tienes alguna duda.
E instala el paquete:
make install |
Algunos paquetes esperan que el preprocesador de C esté instalado en el directorio /lib. Para satisfacer 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 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.