Jetzt wo die temporären C Bibliotheken installiert sind, wollen wir alle Werkzeuge im Rest des Kapitels gegen diese Bibliotheken verlinken. Um das zu erreichen müssen wir den Linker und die Spec Datei des Compilers anpassen.
Installieren sie zuerst den angepassten Linker in dem sie folgendes Kommando innerhalb des binutils-build Verzeichnisses ausführen:
make -C ld install |
Den Linker haben wir erst kürzlich angepasst, nämlich am Ende des ersten Durchlaufs der Binutils. Ab diesem Punkt wird alles nur gegen die Bibliotheken in /tools/lib verlinkt.
Anmerkung: Falls sie die vorige Warnung, das sie die Binutils Verzeichnisse nicht löschen sollen, übersehen haben sollten oder sie vielleicht versehentlich gelöscht haben, seien sie nicht besorgt. Es ist noch nicht alles verloren. Ignorieren sie das obige Kommando einfach. Das Ergebnis ist ein gewisses Risiko das nachfolgende Programme gegen Bibliotheken auf dem Host-System gelinkt werden. Das ist nicht ideal, aber auch kein allzu grosses Problem. Die Situation wird korrigiert wenn wir später den zweiten Durchlauf der Binutils installieren.
Nun wo der angepasste Linker installiert ist müssen sie die Binutils Verzeichnisse löschen.
Als nächstes müssen sie die GCC Spec Datei ergänzen so das sie den neuen dynamischen Linker referenziert. Ein einfaches sed Kommando erledigt dies:
SPECFILE=/tools/lib/gcc-lib/*/*/specs && sed -e 's@ /lib/ld-linux.so.2@ /tools/lib/ld-linux.so.2@g' \ $SPECFILE > tempspecfile && mv -f tempspecfile $SPECFILE && unset SPECFILE |
Wir empfehlen, das obige Kommando mittels kopieren und einfügen auszuführen anstelle es abzutippen. Sie können die Specs Datei auch per Hand ändern: ersetzen sie einfach jedes vorkommen von "/lib/ld-linux.so.2" durch "/tools/lib/ld-linux.so.2".
Wichtig: Wenn sie auf einer Plattform arbeiten an der der Name des dynamischen Linkers anders lautet als ld-linux.so.2, müssen sie natürlich statt ld-linux.so.2 den korrekten Namen des Linkers für ihre Plattform einsetzen. Falls nötig schauen sie nochmal im Abschnitt namens Technische Anmerkungen zur toolchain nach.
Letztlich könnten möglicherweise einige include Dateien vom Host-System mit in das private include Verzeichnis des GCC geraten sein. Soetwas kann durch GCC's "fixincludes" Prozess geschehen der während dem kompilieren von GCC ausgeführt wird. Dazu werden wir später noch näheres erklären. Nun führen sie erstmal das folgende Kommando aus um dieses Problem zu umgehen:
rm -f /tools/lib/gcc-lib/*/*/include/{pthread.h,bits/sigthread.h} |
Damit ist die Installation der eigenständigen, in sich geschlossenen toolchain abgeschlossen, sie kann nun zum erstellen der restlichen temporären Hilfsmittel verwendet werden.
Zurück | Zum Anfang | Weiter |
Installieren von Glibc-2.3.2 | Nach oben | Installieren von Tcl-8.4.4 |