Los detalles sobre este paquete se encuentran en la Sección 6.11.2, “Contenido de Binutils”.
El paquete Binutils contiene un enlazador, un ensamblador y otras utilidades para trabajar con ficheros objeto.
Es importante que Binutils sea el primer paquete que compiles, pues tanto Glibc como GCC llevan a cabo varias comprobaciones sobre el enlazador y el ensamblador disponibles para determinar qué características activar.
La documentación de Binutils recomienda construirlo en un directorio dedicado, fuera del árbol de las fuentes:
mkdir -v ../binutils-build cd ../binutils-build
Si quieres que los valores de los SBUs mostrados en el resto del libro sean de utilidad, mide el tiempo que se tarda en construir este paquete desde la compilación hasta la primera instalación. Para ello, envuelve los comandos dentro de un comando time de esta forma: time { ./configure ... && make && make install; }.
Prepara Binutils para su compilación:
../binutils-2.16.1/configure --prefix=/tools --disable-nls
Significado de las opciones de configure:
Esto le indica al guión configure que los programas de Binutils se instalarán en el directorio /tools.
Esta opción desactiva la internacionalización, pues i18n no es necesario en las herramientas temporales.
Compila el paquete:
make
La compilación se ha completado. Normalmente deberíamos ejecutar ahora el banco de pruebas, pero en esta temprana fase el entorno de trabajo para los bancos de pruebas (Tcl, Expect y DejaGnu) todavía no está en su sitio. Los beneficios de ejecutar las pruebas ahora son mínimos, pues los programas de esta primera fase pronto serán sustituidos por los de la segunda.
Instala el paquete:
make install
Prepara el enlazador para la posterior fase de “ajuste”:
make -C ld clean make -C ld LIB_PATH=/tools/lib cp -v ld/ld-new /tools/bin
Significado de los parámetros de make:
Esto le indica al programa make que elimine todos los ficheros compilados que haya en el subdirectorio ld.
Esta opción vuelve a construir todo dentro del subdirectorio ld. Especificar la variable LIB_PATH del Makefile en la línea de comandos nos permite obviar su valor por defecto y apuntar a nuestro directorio de herramientas temporales. El valor de esta variable especifica la ruta de búsqueda de librerías por defecto del enlazador. Estos preparativos se utilizan más tarde en este capítulo.
Los detalles sobre este paquete se encuentran en la Sección 6.11.2, “Contenido de Binutils”.