El paquete Binutils contiene un enlazador, un ensamblador y otras utilidades para trabajar con ficheros objeto.
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 Binutils.
Verifica que tus pseudo-terminales (PTYs) funcionan adecuadamente dentro del entorno chroot. Comprueba que todo está correcto realizando una simple prueba:
expect -c "spawn ls"
Si recibes el siguiente mensaje, el entorno chroot no está correctamente configurado para operar con PTYs:
The system has no more ptys. Ask your system administrator to create more. El sistema no tiene más ptys. Pídele al administrador del sistema que cree más.
Debes solucionar el problema antes de ejecutar los bancos de pruebas de Binutils y GCC.
La documentación de Binutils recomienda construirlo fuera del árbol de las fuentes, en un directorio de construcción dedicado:
mkdir ../binutils-build cd ../binutils-build
Prepara Binutils para su compilación:
../binutils-2.15.94.0.2.2/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). Por ejemplo, en máquinas i686 esto se convertiría en /usr/i686-pc-linux-gnu. Como este es un sistema personalizado, no es necesario tener en /usr dicho directorio específico de un objetivo. $(exec_prefix)/$(target_alias) 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).
En esta sección, el banco de pruebas para Binutils se considera crítico. No te lo saltes bajo ninguna circunstancia.
Comprueba los resultados:
make check
Instala el paquete:
make tooldir=/usr install
Instala el fichero de cabecera libiberty, pues lo necesitan algunos paquetes:
cp ../binutils-2.15.94.0.2.2/include/libiberty.h /usr/include