Instalación de Binutils-2.14 - Fase 1

Tiempo estimado de construcción:		1.0 SBU
Estimación del espacio necesario en disco:	194 MB

Contenido de Binutils

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]

Dependencias de instalación de Binutils

Binutils depende de: Bash, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, Make, Perl, Sed, Texinfo.

Instalación de Binutils

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.

Nota: Aunque Binutils es un paquete importante de las herramientas principales, no vamos a ejecutar su banco de pruebas en esta fase. Primero, porque el entorno de trabajo del banco de pruebas aún no está en su sitio y segundo, porque los programas de esta primera fase pronto serán sobreescritos por aquellos instalados en la segunda fase.

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 construir Binutils en un directorio aparte, fuera del directorio de las fuentes:

mkdir ../binutils-build
cd ../binutils-build

Nota: Si quieres que los valores de los SBUs mostrados en el resto del libro sean de utilidad, tendrás que medir el tiempo que se tarda en construir este paquete. Para ello, haz lo siguiente: time { ./configure ... && ... && ... && make install; }.

A continuación, prepara Binutils para su compilación:

../binutils-2.14/configure \
    --prefix=/tools --disable-nls

Significado de las opciones de configure:

Continúa compilando el paquete:

make configure-host
make LDFLAGS="-all-static"

Significado de los parámetros de make:

Instala el paquete:

make install

Ahora prepara al enlazador para "bloquear" Glibc más tarde:

make -C ld clean
make -C ld LDFLAGS="-all-static" LIB_PATH=/tools/lib

Significado de las opciones de make:

Aviso

No borres todavía los directorios de fuentes y de construcción de Binutils. Los necesitarás un poco más adelante en este capítulo en el estado en que se encuentran ahora.