Instalowanie Binutils-2.14 - przebieg 1

Przybliżony czas budowy:           1.0 SBU
Przybliżone przestrzeń dyskowa: 194 MB

Zawartość pakietu Binutils

Binutils to zbiór narzędzi do tworzenia oprogramowania, zawiera linkera, assemblera i inne narzędzia do pracy z obiektami i archiwami.

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

Ważne, by Binutils był pierwszym z kompilowanych pakietów, bo i Glibc i GCC wykonują różne testy dostępnego linkera i assemblera, aby określić, które ze swoich cech (możliwości) udostępnić.

Uwaga: Mimo, iż Binutils jest ważnym pakietem narzędziowym, nie będziemy uruchamiać zestawu testowego na tak wczesnym etapie pracy. Po pierwsze, nie ma jeszcze ram działania testów na odpowiednim miejscua po drugie, programy z pierwszego przebiegu wkrótce zostaną zastąpione przez te, któe zainstalujemy w drugim przebiegu.

Powszechnie znane jet złe działanie tego pakietu jeśli zmieni się jego domyslne flagi optymalizacji ( z opcjami -march i -mcpu włącznie). Dlatego, jeśli zdefiniowałaś jakiekolwiek zmienne środowiskowe, które zasłaniają (nadpisują) wartości domyślne dla optymalizacji, takie jak CFLAGS i CXXFLAGS, to zalecamy ich wyłączenie lub zmianę wartości na czas budowy Binutils.

Dokumentacja Binutils zaleca budowę pakietu poza katalogiem źródłowym, w specjalnym katalogu binutils-build:

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

Uwaga: Jeśli chcesz, mieć jakis pożytek z wartości SBU wypisywanych w dalszej części tej książki, to musisz zmierzyć czas budowania tego pakietu na swoim komputerze. Żeby osiągnąć to bez wysiłku, możesz zrobić coś w tym kształcie: time { ./configure ... && ... && ... && make install; }.

Teraz przygotuj Binutils do kompilacji:

../binutils-2.14/configure \
--prefix=/tools --disable-nls

Znaczenie opcji konfiguracji:

Kontynuujemy kompilację pakietu:

make configure-host
make LDFLAGS="-all-static"

Znacenie tych parametrów make:

I instalujemy pakiet:

make install

Dalej przygotowujemy linkera do późniejszego "zamknięcia" Glibc:

make -C ld clean
make -C ld LDFLAGS="-all-static" LIB_PATH=/tools/lib

Znaczenie parametrów make:

 

Ostrzeżenie

Jeszcze nie usuwaj katalogów budowy i źródłowego pakietu Binutils. Będą ci potrzebne ponownie w takiej postaci, jak teraz, troszkę dalej w tym rozdziale.