5.6. Glibc-2.6.1

El paquete Glibc contiene la librería C principal. Esta librería proporciona todas las rutinas básicas para la ubicación de memoria, búsqueda de directorios, abrir y cerrar ficheros, leerlos y escribirlos, manejo de cadenas, coincidencia de patrones, aritmética, etc...

Tiempo estimado de construcción: 7 SBU
Espacio requerido en disco: 342 MB

5.6.1. Instalación de Glibc

La documentación de Glibc recomienda construirlo fuera del árbol de las fuentes, en un directorio de construcción dedicado:

mkdir -v ../glibc-build
cd ../glibc-build

Debido a que Glibc ya no soporta i386, sus desarrolladores dicen que ha de usarse la opción de compilación -march=i486 cuando se construye para máquinas x86. Hay varias formas de hacer esto, pero las pruebas nuestran que es mejor poner la opción dentro de la variable “CFLAGS”. En vez de sobreescribir por completo lo que el sistema interno de construcción de Glibc utiliza en CFLAGS, añadiremos la nueva opción al contenido existente mediante el uso del ficgero especial configparms:

echo "CFLAGS += -march=i486" > configparms

Prepara Glibc para su compilación:

../glibc-2.6.1/configure --prefix=/tools \
    --disable-profile --enable-add-ons \
    --enable-kernel=2.6.0 --with-binutils=/tools/bin \
    --without-gd --with-headers=/tools/include \
    --without-selinux

Significado de las opciones de configure:

--disable-profile

Esto construye las librerías sin información de perfiles. Omite esta opción si planeas usar perfiles en las herramientas temporales.

--enable-add-ons

Esto le indica a Glibc que utilice el añadido NPTL como su librería de hilos.

--enable-kernel=2.6.0

Esto le indica a Glibc que compile la librería con soporte para núcleos Linux 2.6.x.

--with-binutils=/tools/bin

Aunque no es necesario, esta opción nos asegura que no haya equívocos sobre qué programas de Binutils se utilizarán durante la construcción de Glibc.

--without-gd

Esto evita la construcción del programa memusagestat, el cual insiste en enlazarse contra las librerías del sistema anfitrión (libgd, libpng, libz y demás).

--with-headers=/tools/include

Esto le indica a Glibc que se compile contra las cabeceras recién instaladas en el directorio de herramientas, para que conozca exactamente las características que tiene el núcleo y pueda optimizarse correctamente.

--without-selinux

Cuando se construye a partir de un anfitrión que utiliza la funcionalidad de SELinux (como Fedora Core 3), Glibc se construirá con soporte para SELinux. Como las herramientas del entorno LFS no contienen soporte para SELinux, una Glibc compilada con dicho soporte no funcionará correctamente.

Durante esta fase puede que veas el siguiente mensaje de aviso:

configure: WARNING:
*** These auxiliary programs are missing or
*** incompatible versions: msgfmt
*** some features will be disabled.
*** Check the INSTALL file for required versions.

configure: AVISO:
*** Versión incompatible o ausente de estos
*** programas auxiliares: msgfmt
*** algunas características serán desactivadas.
*** Comprueba en el fichero INSTALL las versiones requeridas.

Normalmente, la ausencia o incompatibilidad del programa msgfmt es inofensiva, pero se cree que en ocasiones puede causar problemas al ejecutar el banco de pruebas. El programa msgfmt es parte del paquete Gettext y debería proporcionarlo el sistema anfitrión. Si msgfmt está presente pero es incompatible, actualiza el paquete Gettext del sistema anfitrión o continúa sin él y observa si los bancos de pruebas se ejecutan sin problemas.

Compila el paquete:

make

La compilación está completa. Como se mencionó antes, no es obligatorio ejecutar los bancos de pruebas de las herramientas temporales en este capítulo. Si de todas formas deseas ejecutar el banco de pruebas de Glibc, hazlo con el siguiente comando:

make check

Consulta en la Sección 6.9, “Glibc-2.6.1”, la explicación de los fallos de las pruebas que tienen una particular importancia.

En este capítulo algunas pruebas pueden verse afectadas adversamente por las herramientas existentes o el entorno del sistema anfitrión. En resumen, no te preocupes demasiado si ves fallos en el banco de pruebas de Glibc en este capítulo. La Glibc del Capítulo 6 es la que acabaremos usando al final, por lo que es la que necesitamos que pase la mayoría de las pruebas (incluso en el Capítulo 6 es posible que todavía ocurran algunos fallos, la prueba math por ejemplo).

Cuando aparezca un fallo, anótalo y continua ejecutando de nuevo make check. El banco de pruebas debería continuar a partir de donde se quedó. Puedes evitar esta secuencia de inicio-parada ejecutando make -k check. Si utilizas esta opción, asegúrate de registrar la salida para que más tarde puedas revisar el fichero de registro en búsqueda de errores.

La fase de instalación de Glibc mostrará un aviso inofensivo sobre la ausencia del fichero /tools/etc/ld.so.conf. Evita este confuso aviso con:

mkdir -v /tools/etc
touch /tools/etc/ld.so.conf

Instala el paquete:

make install

Diferentes países y culturas tienen diferentes convenciones sobre cómo comunicarse. Estas convenciones van desde las más simples, como el formato para representar fechas y horas, a las más complejas, como el lenguaje hablado. La “internacionalización” de los programas GNU funciona mediante el uso de locales.

[Nota]

Nota

Si no estás ejecutando los bancos de pruebas en este capítulo, como recomendamos, no hay razón para instalar ahora las locales. Las instalaremos en el siguiente capítulo. Si de todas formas deseas instalar las locales, usa las instrucciones que se encuentran en Sección 6.9, “Glibc-2.6.1.”

Los detalles sobre este paquete se encuentran en la Sección 6.9.4, “Contenido de Glibc”.