6.13. Binutils-2.15.94.0.2.2

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

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

6.13.1. Instalace Binutils

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.

Zkountrolujte,že PTY pracují v prostředí chrootu pomocí jednoduchého testu:

expect -c "spawn ls"

Pokud se ukáže následující zpráva,prostředí chrootu není nastaveno pro správnou práci PTY:

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

Tento problém musíte vyřešit před spuštěním testů Binutils a GCC.

Dokumntace Binutil doporučuje kompilaci Binutuls mimo adresář se zdroji v oddělené kompilační složce:

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

Připravte Binutils ke kompilaci:

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

Zkompilujte balíček:

make tooldir=/usr

Obvykle je tooldir(adresář,kde se nacházejí spustitelné soubory) nastaven na $(exec_prefix)/$(target_alias).Např.: u počítačů i686 je to /usr/i686-pc-linux-gnu.Protože toto je přizpůsobený systém,tento speciální adresář není potřeba.Adresář $(exec_prefix)/$(target_alias) se používá,pokud je systém použit ke cross-kompilaci(např.: kompilace balíčku na Intelu pro spouštění na platformě PowerPC).

[Important]

Important

Test Binutils je kritický.Za žádných okolností jej nevynechávejte.

Otestujte výsledky:

make check

Nainstalujte balíček:

make tooldir=/usr install

Nainstalujte hlavičkový soubor libiberty,který je potřebný některými balíčky:

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

6.13.2. Obsah Binutils

Nainstalované programy: addr2line, ar, as, c++filt, gprof, ld, nm, objcopy, objdump, ranlib, readelf, size, strings, and strip
Nainstalované knihovny: libiberty.a, libbfd.[a,so], and libopcodes.[a,so]

Short Descriptions

addr2line

Překládá adresy programů na jména souborů a čísla řádků;dává adresu a jméno spustitelného souboru,které používá pro ladící informace ve spustitelném souboru ke zjištění,který zdrojový soubor a číslo řádku je asociováno s adresou

ar

Vytváří,modifikuje a rozbaluje archivy

as

Assembler,kde shromažďuje výstup z gcc do objektových souborů

c++filt

Použito linkerem k odpravě symbolů C++ a Java a k udržení přetížených funkcí od srážek

gprof

Zobrazuje volání grafu profilových dat

ld

Linker,který kombinuje objekty a archivní soubory do jednoho souboru,pomocí přemístění jejich dat a svazování referencí symbolů

nm

Listuje symboly,které se nacházejí v zadaném objektovém souboru

objcopy

Překládá jeden typ objektového souboru na jiný

objdump

Zobrazuje informace o zadaném objektovém souboru s volbami kontrolujícími částečně informaci k zobrazení;ukázaná informace je užitečná pro programátory,kteří pracují na kompilačních nástrojích

ranlib

Genruje indexx obsahu archivu a ukládá je do archivu;index obsahuje seznam symbolů definovaných částí archivu,které jsou přenositelné objektové soubory

readelf

Zobrazuje informace o binárních souborech typu ELF

size

Listuje velikosti sekcí a celkovou velikostí zadaných objektových souborů

strings

Zobrazuje pro každý zadaný soubor sekvence tisknutelných znaků,které jsou určeny nejméně délkou(ve výchozím stavu čtyři);pro objektové soubory zobrazuje ve výchozím stavu poze řetězce z inicializačních sekcí,ale ostatní soubory čte celé

strip

Vyřazuje symboly z objektových souborů

libiberty

Obsahuje rutiny používané různými programy GNU,včetně getopt, obstack, strerror, strtol, a strtoul

libbfd

Knihovna popisovače binárního souboru

libopcodes

Knihovna pro jednání s opcodes—verzemi instrukcí “čitelného textu” pro procesor;je použito pro kompilaci utilit jako objdump.