Linux From Scratch: Versión 4.0 | ||
---|---|---|
Anterior | Capítulo 6. Instalando los programas del sistema base | Siguiente |
Estimación del tiempo de construcción: 2.48 SBU Estimación del espacio de disco requerido: 94 MB |
Se sabe que este programa se comporta mal si cambias sus parámetros de optimización (incluyendo las opciones -march y -mcpu). Es mejor dejar a Binutils tal como está. 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. Estás avisado.
Instala Binutils ejecutando los siguientes comandos:
mkdir ../binutils-build && cd ../binutils-build && ../binutils-2.13/configure --prefix=/usr --enable-shared && make tooldir=/usr && make tooldir=/usr install && make tooldir=/usr install-info && cp ../binutils-2.13/include/libiberty.h /usr/include |
tooldir=/usr: Normalmente, el directorio de herramientas (donde se instalarán los ejecutables de Binutils) tiene el valor $(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 cada objetivo. Esa configuración se utilizaría si el sistema fuese usado para compilación cruzada (por ejemplo, compilando un paquete en una máquina Intel, pero generando código que se ejecutará en máquinas Apple PowerPC).
make tooldir=/usr install-info: Esto instalará las páginas info de Binutils.
cp ../binutils-2.13/include/libiberty.h /usr/include: El fichero de cabecera libiberty.h es necesario para compilar cierto software.
Última versión comprobada: 2.12.1.
addr2line, ar, as, gasp, gprof, ld, nm, objcopy, objdump, ranlib, readelf, size, strings y strip
addr2line traslada direcciones de programas a nombres de ficheros y números de líneas. Dándole una dirección y un ejecutable, usa la información de depuración del ejecutable para averiguar qué fichero y número de línea está asociado con dicha dirección.
El programa ar crea, modifica y extrae desde archivos. Un archivo es un fichero que almacena una colección de otros ficheros en una estructura que hace posible obtener el original de cada fichero individual (llamados miembros del archivo).
as está pensado, principalmente, para ensamblar la salida del compilador GNU, gcc, para ser usada por el enlazador ld.
ld combina un número de objetos y ficheros de archivo, reubica sus datos y establece las referencias a los símbolos. Frecuentemente, el último paso de la compilación de un nuevo programa es hacer una llamada a ld.
La utilidad objcopy copia el contenido de un fichero objeto en otro. objcopy usa la librería BFD de GNU para leer y escribir los ficheros objeto. Puede escribir el fichero objeto destino en un formato diferente al del fichero objeto fuente.
objdump muestra información sobre uno o más ficheros objeto. Mediante opciones se puede indicar la información a mostrar. Esta información es útil fundamentalmente para los programadores que trabajan en herramientas de compilación (al contrario de los programadores que sólo quieren que sus programas compilen y funcionen).
ranlib genera un índice de los contenidos de un archivo, y lo coloca en el archivo. El índice lista cada símbolo definido por un miembro de un archivo que es un fichero objeto reubicable.
size lista los tamaños de las secciones --y el tamaño total-- para cada uno de los ficheros objeto en su lista de argumentos. Por defecto, se genera una línea de salida por cada fichero objeto o cada módulo de un archivo.
Para cada fichero dado, strings muestra las cadenas de caracteres imprimibles de al menos 4 caracteres (o el número especificado en las opciones del programa) seguidas por un carácter no imprimible. Por defecto, sólo muestra las cadenas procedentes de las secciones de inicialización y carga de los ficheros objeto; para otros tipos de ficheros muestra todas las cadenas de los mismos.
strings es útil, principalmente, para determinar el contenido de ficheros que no son de texto.
strip elimina todos los símbolos o sólo los especificados de los ficheros objeto. La lista de ficheros objeto puede incluir archivos. Se debe indicar, por lo menos, un fichero objeto. strip modifica los ficheros mencionados en sus argumentos, en vez de escribir copias modificadas con otro nombre.
Última versión comprobada: 2.11.2.
Autoconf: autoconf, autoheader
Automake: aclocal, automake
Bash: sh
Binutils: ar, as, ld, nm, ranlib, strip
Diffutils: cmp
Fileutils: chmod, cp, ln, ls, mkdir, mv, rm, rmdir, touch
Flex: flex
Gcc: cc, cc1, collect2, cpp0, gcc
Glibc: ldconfig
Grep: egrep, fgrep, grep
M4: m4
Make: make
Gawk: gawk
Sed: sed
Sh-utils: basename, echo, expr, hostname, sleep, true, uname
Texinfo: install-info, makeinfo
Textutils: cat, sort, tr, uniq