Podrobnosti o tomto balíčku se nacházejí v Section 6.13.2, “Obsah Binutils.”
Balíček Binutils obsahuje liner,asembler a ostatní nástroje pro manipulaci s objektovými soubory.
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
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:
Toto říká konfiguračnímu skriptu, aby nainstaloval programy Binutils do adresáře/tools.
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:
Toto říká programu make, aby odstranil všechny kompilované soubory v podadresáři ld.
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.
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.”