5.9.1. Installation von Binutils
Erstellen Sie erneut ein separates Build-Verzeichnis:
mkdir -v build cd build
mkdir -v build cd build
Bereiten Sie Binutils für die Kompilierung vor:
CC=$LFS_TGT-gcc \
AR=$LFS_TGT-ar \
RANLIB=$LFS_TGT-ranlib \
../konfigurieren \
--prefix=/tools \
--disable-nls \
--disable-werror \
--with-lib-path=/tools/lib \
--with-sysroot
CC=$LFS_TGT-gcc \
AR=$LFS_TGT-ar \
RANLIB=$LFS_TGT-ranlib \
../konfigurieren \
--prefix=/tools \
--disable-nls \
--disable-werror \
--with-lib-path=/tools/lib \
--with-sysroot
Die Bedeutung der neuen Konfigurationsoptionen:
CC=$LFS_TGT-gcc AR=$LFS_TGT-ar RANLIB=$LFS_TGT-ranlib
Da es sich tatsächlich um einen nativen Build von Binutils handelt, stellt das Festlegen dieser Variablen sicher, dass das Build-System den Cross-Compiler und die zugehörigen Tools anstelle derjenigen auf dem Hostsystem verwendet.
--with-lib-path=/tools/lib
Dadurch wird das Konfigurationsskript angewiesen, den Bibliothekssuchpfad während der Kompilierung von Binutils anzugeben, was zu Folgendem führt: /tools/lib wird an den Linker übergeben. Dadurch wird verhindert, dass der Linker Bibliotheksverzeichnisse auf dem Host durchsucht.
--with-sysroot
Die Sysroot-Funktion ermöglicht es dem Linker, gemeinsam genutzte Objekte zu finden, die von anderen gemeinsam genutzten Objekten benötigt werden, die explizit in der Befehlszeile des Linkers enthalten sind. Ohne dies kann es sein, dass einige Pakete auf einigen Hosts nicht erfolgreich erstellt werden.
Stellen Sie das Paket zusammen:
um
um
Installieren Sie das Paket:
make install
make install
Bereiten Sie nun den Linker für die Phase „Nachjustieren“ im nächsten Kapitel vor:
Machen Sie -C ld sauber
make -C ld LIB_PATH=/usr/lib:/lib cp -v ld/ld-new /tools/bin
Machen Sie -C ld sauber
make -C ld LIB_PATH=/usr/lib:/lib cp -v ld/ld-new /tools/bin
Die Bedeutung der Make-Parameter:
-C ld sauber
Dies weist das Make-Programm an, alle kompilierten Dateien in zu entfernen ld Unterverzeichnis.
-C ld LIB_PATH=/usr/lib:/lib
Diese Option baut alles im neu auf ld Unterverzeichnis. Angabe der LIB_PATH Mit der Makefile-Variable in der Befehlszeile können wir den Standardwert der temporären Tools überschreiben und auf den richtigen endgültigen Pfad verweisen. Der Wert dieser Variablen gibt den Standardbibliothekssuchpfad des Linkers an. Diese Vorbereitung wird im nächsten Kapitel verwendet.