Details zu diesem Paket finden Sie in Abschnitt 6.9.4, „Inhalt von Glibc“
Glibc enthält die C-Bibliothek. Sie stellt Systemaufrufe und grundlegende Funktionen zur Verfügung (z. B. das Zuweisen von Speicher, Durchsuchen von Ordnern, Öffnen und Schließen sowie Schreiben von Dateien, Zeichenkettenverarbeitung, Mustererkennung, Arithmetik etc.)
Beheben Sie ein mögliches Problem für den Fall, dass /etc/ld.so.preload
auf dem Host-System verwendet
wird.
sed -i 's@/etc/ld.so.preload@/tools/etc/ld.so.preload@' elf/rtld.c
Die Dokumentation von Glibc empfiehlt, zum Kompilieren einen gesonderten Ordner zu verwenden:
mkdir -v ../glibc-build cd ../glibc-build
Da Glibc die Unterstützung für die Architektur i386 eingestellt
hat, empfehlen die Entwickler die Verwendung des
Kompilier-Parameters -march=i486
zum Kompilieren für
x86-Rechner. Hier führen viele Wege zum Ziel, jedoch haben Tests
ergeben, dass der Parameter am besten in der Umgebungsvariable
„CFLAGS“ eingebracht wird.
Anstatt alles zu überschreiben, was Glibc im internen Build-System
für CFLAGS verwendet, hängen wir den neuen Parameter an den
bestehenden Inhalt von CFLAGS an und verwenden dazu die
Spezialdatei configparams
. Des
Weiteren ist der Parameter -mtune=native nötig, um einen
sinnvolleren Wert vorzugeben als den, der sonst durch die
Verwendung von -march eingestellt werden würde.
echo "CFLAGS += -march=i486 -mtune=native" > configparms
Als nächstes bereiten Sie Glibc zum Kompilieren vor:
../glibc-2.8-20080929/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
Die Bedeutung der configure-Parameter:
--disable-profile
Dadurch werden die Bibliotheken ohne Profiling-Informationen kompiliert. Lassen Sie diesen Parameter weg, wenn Sie mit den temporären Werkzeugen Profiling betreiben möchten.
--enable-add-ons
Dadurch verwendet Glibc NPTL als die Threading-Bibliothek.
--enable-kernel=2.6.0
Dadurch wird die Glibc mit Unterstützung für Kernel der Serie 2.6.x gebaut.
--with-binutils=/tools/bin
Dieser Parameter wird nicht wirklich benötigt, stellt aber sicher, dass in Hinsicht auf die Binutils-Programme beim Kompilieren von Glibc nichts schiefgehen kann.
--without-gd
Das verhindert das kompilieren des Programmes memusagestat, welches immer mit Bibliotheken auf dem Host-System verlinkt (libgd, libpng, libz usw.).
--with-headers=/tools/include
Dadurch wird Glibc mit den gerade in den tools-Ordner installierten Kenerl-Headern kompiliert. Auf diese Weise werden alle Funktionen des Kernels erkannt und die Glibc kann entsprechend darauf optimiert werden.
--without-selinux
Wenn das Host-System SELinux-Funktionen hat (so z. B. Fedora Core 3), so würden die SELinux-Funktionen auch in Glibc einkompiliert. Die LFS-Werkzeuge unterstützen diese Erweiterungen aber nicht, daher wird eine so erzeugte Glibc nicht korrekt funktionieren.
Während dieser Phase sehen Sie möglicherweise eine Warnung:
configure: WARNING: *** These auxiliary programs are missing or *** incompatible versions: msgfmt *** some features will be disabled. *** Check the INSTALL file for required versions.
Das fehlende oder inkompatible Programm msgfmt ist normalerweise harmlos, aber manchmal kann es zu Fehlern beim Durchlaufen der Testsuite führen. msgfmt ist Teil von Gettext, welches auf dem Host-System installiert sein sollte. Wenn msgfmt zwar vorhanden, aber vollkommen inkompatibel ist, dann sollten Sie das Paket auf dem Host-System aktualisieren. Oder Sie fahren ohne das Paket fort und schauen, ob die Testsuite auch ohne problemlos durchläuft.
Kompilieren Sie das Paket:
make
Dieses Paket enthält zwar eine Testsuite, jedoch kann sie noch nicht ausgeführt werden, weil wir derzeit noch keinen C++-Compiler installiert haben.
Auch wenn es nur eine harmlose Meldung ist, die
Installationsroutine von Glibc wird sich über die fehlende Datei
/tools/etc/ld.so.conf
beschweren.
Beheben Sie diese störende Warnung mit:
mkdir -v /tools/etc touch /tools/etc/ld.so.conf
Installieren Sie das Paket:
make install
Verschiedene Länder und Kulturen haben auch unterschiedliche Konventionen zum Kommunizieren. Darunter sind einfache Konventionen wie zum Beispiel das Format für Datum und Uhrzeit, aber auch sehr komplexe Konventionen, wie zum Beispiel die dort gesprochene Sprache. Die „Internationalisierung“ von GNU-Programmen funktioniert mit Hilfe der sogenannten Locales. Installieren Sie nun die Glibc-Locales.
Wenn Sie, wie empfohlen, die Testsuite in diesem Kapitel nicht laufen lassen, brauchen Sie auch die Locales nicht zu installieren. Sie werden sie dann im nächsten Kapitel installieren. Um sie dennoch zu installieren, benutzen Sie die Anweisungen aus Abschnitt 6.9, „Glibc-2.8-20080929“
Details zu diesem Paket finden Sie in Abschnitt 6.9.4, „Inhalt von Glibc“