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: 1.4 SBU Estimación del espacio necesario en disco: 167 MB |
Binutils es una colección de herramientas para el desarrollo de software que contiene un enlazador, un ensamblador y otras utilidades para trabajar con ficheros de objetos y archivos.
Programas instalados: addr2line, ar, as, c++filt, gprof, ld, nm, objcopy, objdump, ranlib, readelf, size, strings y strip
Librerías instaladas: libiberty.a, libbfd.[a,so] y libopcodes.[a,so]
Binutils depende de: Bash, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, Make, Perl, Sed, Texinfo.
Ahora es el momento apropiado para verificar que tus pseudoterminales (PTYs) funcionan adecuadamente dentro del entorno chroot. Comprobaremos de nuevo rápidamente que todo está correcto realizando una simple prueba:
expect -c "spawn ls" |
Si recibes el mensaje:
The system has no more ptys. Ask your system administrator to create more. El sistema no tiene más ptys. Pregunta a tu administrador del sistema para crear más.
Tu entorno chroot no está configurado para la correcta operación de PTY. En este caso no hay razón para ejecutar los bancos de pruebas de Binutils y GCC hasta que seas capaz de resolver este asunto. Regresa a la sección Montar los sistemas de ficheros proc y devpts y la sección Creación de los dispositivos (Makedev-1.7) y lleva a cabo los pasos recomendados para corregir el problema.
Nota: El banco de pruebas para Binutils 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 tanto, si tienes definida cualquier variable de entorno que pueda sobreescribir las optimizaciones por defecto, como CFLAGS y CXXFLAGS, te recomendamos que las desactives o modifiques antes de construir Binutils.
La documentación de Binutils recomienda construirlo fuera del directorio de las fuentes, en un directorio de construcción dedicado:
mkdir ../binutils-build cd ../binutils-build |
A continuación, prepara Binutils para su compilación:
../binutils-2.14/configure \ --prefix=/usr --enable-shared |
Compila el paquete:
make tooldir=/usr |
Normalmente, tooldir (el directorio donde se instalarán los ejecutables) se establece como $(exec_prefix)/$(target_alias), lo que se convierte en, por ejemplo, /usr/i686-pc-linux-gnu. Como sólo construimos programas para nuestro propio sistema, no necesitamos en /usr este directorio específico de un objetivo. Esa configuración se utilizaría si el sistema fuese usado para compilación cruzada (por ejemplo, para compilar un paquete en una máquina Intel, pero generando código que se ejecutará en máquinas PowerPC).
Comprueba los resultados:
make check |
Las notas sobre el banco de pruebas que hay en la sección Instalación de Binutils-2.14 - Fase 2 del Capítulo 5 son aún más apropiadas aquí. Asegurate de consultarlas en caso de que tengas alguna duda.
Instala el paquete:
make tooldir=/usr install |
Instala el fichero de cabecera de libiberty, pues lo necesitan algunos paquetes:
cp ../binutils-2.14/include/libiberty.h /usr/include |