5.3. Binutils-2.15.94.0.2.2 - 1. průchod

Balíček Binutils obsahuje liner,asembler a ostatní nástroje pro manipulaci s objektovými soubory.

Průměrný čas kompilace: 1.0 SBU
Potřebné volné místo: 170 MB
Instalace závisí na: Bash, Bison, Coreutils, Diffutils, Flex, GCC, Gettext, Glibc, Grep, M4, Make, Perl, Sed, and Texinfo

5.3.1. Instalace Binutils

Je důležité, že Binutils je první kompilovaný balíček, protože Glibc i GCC spouštějí různé testy na dostupném linkeru a assembleru, aby zjistily, které jejich vlastnosti povolit.

O tomto balíčku je známo, že má problémy, pokud jsou jeho výchozí optimalizační příznaky (včetně -march a -mcpu voleb) změněné. Pokud nějaké proměnné prostředí přepisují tyto výchozí optimalizace jako CFLAGS a CXXFLAGS, odstraňte je při kompilaci Binutils.

Dokumentace Binutils doporučuje kompilaci Binutils ve vlastní kompilační složce mimo zdroje:

mkdir ../binutils-build
cd ../binutils-build
[Note]

Note

Abyste mohli použít hodnoty SBU použité ve zbytku této knihy, změřte si čas kompilace tohoto balíčku včetně první instalace. Jednoduše toho můžete dosáhnout pomocí příkazu time takto time { ./configure ... && make && make install; }.

Nyní připravte Binutils ke kompilaci

../binutils-2.15.94.0.2.2/configure --prefix=/tools --disable-nls

Význam konfiguračních voleb:

--prefix=/tools

Toto říká konfiguračnímu skriptu, aby nainstaloval programy Binutils do adresáře/tools.

--disable-nls

Toto zakazuje lokalizaci jako i18n, protože není potřebná pro dočané nástroje.

Pokračujte kompilací balíčku:

make

Kompilace je již kompletní. Normálně bychom spustily testy, ale v této počátační fázi ještě testy (Tcl,Expect a DejaGNU) nejsou potřebné. Smysl spouštění testů by byl minimální, protože programy s této první fáze budou brzi nahrazeny těmi z druhé.

Nainstaluje balíček

make install

Nyní připravíme Linker pro pozdější fázi “Přizpůsbení”.

make -C ld clean
make -C ld LIB_PATH=/tools/lib

Význam parametrů make:

-C ld clean

Toto říká programu make, aby odstranil všechny kompilované soubory v podadresáři ld.

-C ld LIB_PATH=/tools/lib

Tato volba znovu zkompiluje všechno v podadresáři ld. Specicikací proměnné LIB_PATH souboru Makefile na příkazové řádce umožňuje přepsat výchozí hodnotu a nastavit ji ná umístění dočasných nástrojů. Hodnota této proměnné specifikuje výchozí vyhledávací cestu linkeru. Tato příprava je použita později v této kapitole.

[Warning]

Warning

Rozhodně nemažte sloužky s kompilací a zdroji Binutils. Budou potřeba později v této kapitole.

Podrobnosti o tomto balíčku se nacházejí v Section 6.13.2, “Obsah Binutils.”