Details zu diesem Paket finden Sie in Abschnitt 6.11.2, „Inhalt von Binutils“
Binutils ist eine Sammlung von Software-Entwicklungswerkzeugen. Dazu gehören zum Beispiel Linker, Assembler und weitere Programme für die Arbeit mit Objektdateien.
Es ist wichtig, dass Binutils als erstes Paket kompiliert wird, weil Glibc und GCC verschiedene Tests bezüglich Linker und Assembler durchführen und erst daraufhin bestimmte Funktionen aktivieren.
Bintutils erkennt keine neueren Versionen von Texinfo als 4.9. Dieses Problem kann mit folgendem Patch behoben werden:
patch -Np1 -i ../binutils-2.18-configure-1.patch
Die Dokumentation zu Binutils empfiehlt, Binutils außerhalb des Quellordners zu kompilieren:
mkdir -v ../binutils-build cd ../binutils-build
Wenn die im Buch angegebenen SBU-Werte einen Nutzen haben sollen,
müssen Sie nun die Zeit messen, die Sie zum Kompilieren von
Binutils benötigen. Dies ist mit dem folgenden Kommando relativ
einfach: time { ./configure ...
&& make && make install; }
.
Bereiten Sie Binutils zum Kompilieren vor:
CC="gcc -B/usr/bin/" ../binutils-2.18/configure \ --prefix=/tools --disable-nls --disable-werror
Die Bedeutung der configure-Parameter:
CC="gcc
-B/usr/bin/"
Dadurch wird gcc gezwungen, den Linker
des Host-Systems in /usr/bin
zu
bevorzugen. Auf einigen Systemen ist dies notwendig, weil der
neue Linker ld
inkompatibel mit dem gcc des Host-Systems ist.
--prefix=/tools
Dadurch wird das configure-Skript die Binutils-Programme für
die Installation nach /tools
vorbereiten.
--disable-nls
Deaktiviert die Internationalisierung; i18n wird für die temporären Werkzeuge nicht benötigt.
--disable-werror
Dies verhindert das ungewollte Anhalten des Erstellvorgangs, falls der Host-Compiler Warnungen ausgibt.
Fahren Sie mit dem Kompilieren des Pakets fort:
make
Der Kompiliervorgang ist nun abgeschlossen. Normalerweise würden Sie nun die Testsuite durchlaufen lassen, aber in diesem frühen Stadium ist die Testsuite-Umgebung (Tcl, Expect und DejaGNU) noch nicht verfügbar. Außerdem macht es wenig Sinn, die Tests nun laufen zu lassen, denn die Programme aus dem ersten Durchlauf werden sehr bald durch die aus dem zweiten Durchlauf ersetzt.
Installieren Sie das Paket:
make install
Bereiten Sie nun den Linker auf die späteren „Anpassungen“ vor:
make -C ld clean make -C ld LIB_PATH=/tools/lib cp -v ld/ld-new /tools/bin
Die Bedeutung der make-Parameter:
-C ld
clean
Dies weist das Programm make an, alle kompilierten Dateien im
Unterordner ld
zu löschen.
-C ld
LIB_PATH=/tools/lib
Dieser Parameter kompiliert alles im Unterordner ld
erneut. Die Angabe der Makefile-Variable
LIB_PATH
auf der Kommandozeile
überschreibt den Standardwert und zeigt auf den temporären
Ordner tools
. Der Wert dieser
Variable gibt den Standard-Bibliotheksuchpfad für den Linker
an. Sie werden später in diesem Kapitel sehen, wie diese
Vorbereitung zur Anwendung kommt.
Details zu diesem Paket finden Sie in Abschnitt 6.11.2, „Inhalt von Binutils“