Linux From Scratch: Versión 4.1 | ||
---|---|---|
Anterior | Capítulo 6. Instalación de los programas del sistema base | Siguiente |
Estimación del tiempo de construcción: 13.26 SBU Estimación del espacio necesario en disco: 221 MB |
Última versión comprobada: 3.1.
El paquete GCC contiene la colección de compiladores GNU, que incluye los compiladores C y C++.
GCC instala lo siguiente:
Última versión comprobada: 2.95.3.
Bash: sh
Binutils: ar, as, ld, nm, ranlib
Diffutils: cmp
Fileutils: chmod, cp, ln, ls, mkdir, mv, rm, touch
Find: find
Gcc: cc, cc1, collect2, cpp0, gcc
Grep: egrep, grep
Make: make
Sed: sed
Sh-utils: basename, dirname, echo, expr, hostname, sleep, true, uname
Tar: tar
Texinfo: install-info, makeinfo
Textutils: cat, tail, tr
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 este momento construiremos los compiladores C y C++, por lo que necesitarás desempaquetar tanto el paquete gcc-core como el gcc-g++. Hay otros compiladores disponibles dentro del paquete gcc completo, cuyas instrucciones de construcción puedes encontrar en http://www.escomposlinux.org/lfs-es/blfs-es-CVS/general/gcc.html (el original en inglés está en http://beyond.linuxfromscratch.org/view/cvs/general/gcc.html).
La documentación para la instalación de GCC recomienda construir GCC en un directorio fuera del árbol de las fuentes. Crea el directorio de construcción:
mkdir ../gcc-build && cd ../gcc-build |
Prepara GCC para su compilación:
../gcc-3.2.1/configure --prefix=/usr --enable-shared \ --enable-threads=posix --with-slibdir=/lib \ --enable-__cxa_atexit --enable-clocale=gnu |
El significado de los opciones de configure es:
--enable-threads=posix: Esto activa las excepciones C++ para el manejo de código multihilo.
--enable-__cxa_atexit: Esta opción dará como resultado librerías compartidas C++ y programas C++ interoperables con otras distribuciones linux.
--enable-clocale=gnu: Hay un riesgo de que ciertas personas construyan librerías C++ incompatibles con ABI si no instalan todas las localedata de glibc. Utilizando --enable-clocale=gnu nos aseguramos de que se hace "lo correcto" en todos los casos. Si no deseas usar esta opción, entonces al menos contruye la locale de_DE. Cuando GCC encuentra esta locale específica, entonces se implementa el modo locale correcto (gnu).
Continúa compilando el paquete:
make bootstrap |
El objetivo bootstrap no sólo compila GCC, si no que compila GCC varias veces. Utiliza el primer programa compilado para compilarse a si mismo una segunda y tercera vez, asegurandose de que el compilador se compiló correctamente.
Termina instalando el paquete:
make install-no-fixedincludes |
Algunos paquetes esperan que el Pre-Procesador de C esté instalado en los directorios /lib y /usr/lib. Para satisfacer a estos paquetes, crea dos enlaces simbólicos:
ln -s ../usr/bin/cpp /lib && ln -s ../bin/cpp /usr/lib |
Muchos paquetes compilan usando cc como nombre del compilador C. Para satisfacer a estos paquetes, crea el enlace simbólico cc:
ln -s gcc /usr/bin/cc |