Instalowanie Binutils-2.14

Estimated build time:           1.4 SBU
Estimated required disk space: 167 MB

Zawartość Binutils

Binutils jest zbiorem narzędzi do tworzenia oprogramowania, zawiera linker, assembler i inne narzędzia do pracy na plikach (with object files and archives) obiektowych i archiwach.

Instalowane programy: addr2line, ar, as, c++filt, gprof, ld, nm, objcopy, objdump, ranlib, readelf, size, strings and strip

Instalowane biblioteki: libiberty.a, libbfd.[a,so] and libopcodes.[a,so]

Zależności Instalacyjne Binutils

Binutils zależy od: Bash, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, Make, Perl, Sed, Texinfo.

Instalowanie Binutils

TEraz jest odpowiedni moment, by sprawdzić, czy twoje pseudo terminale (PTY) działają w środowisku chroot prawidłowo. Znów szybciutko sprawdzimy, że wszystko jest prawidłowo ustawione wykonując prosty test:

expect -c "spawn ls"

Jeśli dostałaś wiadomość:

The system has no more ptys.  Ask your system administrator to create more.

"System nie ma więcej pseudoterminali. Poproś swojego administratora systemu, aby utworzył więcej."
To znaczy, że twoje środowisko chroot nie jest ustawione do prawidłowego działania pseudoterminali. W takim przypadku nie ma sensu wykonywać zestawów testowych dla Binutils i GCC dopóki nie będziesz w stanie rozwiązać tego problemu. Proszę wrócić do Sekcji p.t. Mounting the proc and devpts file systems oraz Sekcji p.t. Creating devices (Makedev-1.7) i wykonać zalecane tam czynności, aby naprawić ten problem.

Uwaga: Zestaw testowy dla Binutils w niniejszej sekcji uważamy za krytyczny. Nie radzimy go pomijać pod żadnym pozorem.

Ten pakiet znany jest ze złego zachowania, jeśli zmienisz domyślne flagi optymalizacji (włącznie z opcjami -march i -mcpu). Dlatego, jeśli zdefiniowałaś jakieś zmienne środowiskowe, któe nadpisują wartości domyślne optymalizacji, takie jak CFLAGS i CXXFLAGS, to zalecamy ich wyłączenie lub zmodyfikowanie ich na czas budowy Binutils.

Dokumentacja Binutils zaleca ich budowanie poza katalogiem źródłowym, w dedykowanym katalogu bodowy:

mkdir ../binutils-build
cd ../binutils-build

Teraz przygotuj Binutils do kompilacji:

../binutils-2.14/configure \
--prefix=/usr --enable-shared

Skompiluj ten pakiet:

make tooldir=/usr

Zasadniczo, zmienną tooldir (tzn. gdzie w końcu znajdą się pliki wykonywalne) ustawia się na $(exec_prefix)/$(target_alias), co rozwija się do postaci, na przykład, /usr/i686-pc-linux-gnu. Ponieważ budujemy tylko dla swojego własnego systemu, to nie potrzebujemy takiego podkatalogu zależnego od celu, w katalogu /usr. Takie ustawienie byłoby użyteczne, gdybyśmy używali tego systemu do cross-kompilacji (na przykłąd kompilacji pakietu na maszynie z procesorem Intela, aby wygenerować kod wykonywalny dla komputera typu PowerPC).

Sprawdź wyniki:

make check

Uwagi do zestawu testowego z Sekcji p.t.  Instalowanie Binutils-2.14 - Przebieg 2 w Rozdziale 5 są tutaj zupełnie na miejscu. Koniecznie cofnij się tam, gdybyś miała jakiekolwiek wątpliwości.

Instaluj pakiet:

make tooldir=/usr install

Zainstaluj plik nagłówkowy libiberty potrzebny niektórym pakietom:

cp ../binutils-2.14/include/libiberty.h /usr/include