6.18. Binutils-2.34

Binutils pakken inneholder en lenker, en samler og andre verktøy for å håndtere objektfiler.

 

Omtrentlig byggetid: 6.7 SBU

Nødvendig diskplass: 5.1 GB

6.18.1. Installasjon av Binutils

Kontroller at PTY-ene fungerer som de skal i chroot miljøet ved å utføre en enkel test:

expect -c "spawn ls"

Denne kommandoen skal gi følgende utdata:

spawn ls

Hvis utdataen i stedet inkluderer meldingen nedenfor, er ikke miljøet satt opp for riktig PTY-drift. Dette problemet må løses før du kjører testsuiter for Binutils og GCC:

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

Fjern nå en test som forhindrer at testene fullføres:

sed -i '/@\tincremental_copy/d' gold/testsuite/Makefile.in

Binutils dokumentasjonen anbefaler å bygge Binutils i en dedikert byggemappe:

mkdir -v build
cd build

Forbered binutils for kompilering:

../configure --prefix=/usr \
                     --enable-gold \
                     --enable-ld=default \
                     --enable-plugins \
                     --enable-shared \
                     --disable-werror \
                     --enable-64-bit-bfd \
                     --with-system-zlib

Betydningen av konfigurasjonsparametere:

--enable-gold
  Bygg gold linkeren og installer den som ld.gold (ved siden av standardkoblingen).

--enable-ld=default
  Bygg den originale bfd linkeren og installer den som både ld (standardlinker) og ld.bfd.

--enable-plugins
  Aktiverer plugin støtte for linkeren.

--enable-64-bit-bfd
  Aktiverer 64-biters støtte (på verter med smalere ordstørrelser). Kanskje ikke nødvendig på 64-biters systemer, men skader ikke.

--with-system-zlib
  Bruk det installerte zlib biblioteket i stedet for å bygge den inkluderte versjonen.

Kompilere pakken:

make tooldir=/usr

Betydningen av make parameteren:

tooldir=/usr
  
Normalt sett er tooldir (katalogen der kjørbarhetene til slutt vil være lokalisert) satt til $(exec_prefix)/$(target_alias). For eksempel vil x86_64-maskiner utvide den til /usr/x86_64-unknown-linux-gnu. Fordi dette er et tilpasset system, er ikke denne målspesifikke katalogen i /usr nødvendig. $(exec_prefix)/$(target_alias) ville bli brukt hvis systemet ble brukt til å krysskompilere (for eksempel å sette sammen en pakke på en Intel maskin som genererer kode som kan kjøres på PowerPC maskiner).

Testserien for Binutils i denne delen anses som kritisk. Ikke hopp over den under noen omstendigheter.

Test resultatene:

make -k check

Ver_test_pr16504.sh testen er kjent for å mislykkes.

Installer pakken:

make tooldir=/usr install

6.18.2. Innholdet i Binutils

Installerte programmer: addr2line, ar, as, c++filt, dwp, elfedit, gprof, ld, ld.bfd, ld.gold, nm, objcopy, objdump, ranlib, readelf, size, strings, og strip

Installerte biblioteker: libbfd.{a,so} og libopcodes.{a,so}

Installert mappe: /usr/lib/ldscripts

 

Korte beskrivelser

addr2line Oversetter programadresser til filnavn og linjenumre; gitt en adresse og navnet på en kjørbar fil, bruker den feilsøkingsinformasjonen i den kjørbare filen for å bestemme hvilken kildefil og linjenummer som er tilknyttet adressen

ar Oppretter, modifiserer og trekker ut fra arkiver

as En assembler som assembler utdataene fra gcc til objektfiler

c++filt - Brukes av linkeren til å avkoble C++ og Javasymboler og for å forhindre overbelastede funksjoner i å kollidere

dwp - DWARF pakkeverktøyet

elfedit - Oppdaterer ELF deklarasjoner til ELF filer

gprof Viser anropsdiagramprofildata

ld En lenker som kombinerer et antall objekt- og arkivfiler i en enkelt fil, flytter dataene og binder opp symbolreferanser

ld.gold - En nedskåret versjon av ld som bare støtter elf objektfilformatet

ld.bfd - Hard lenke til ld

nm Viser symbolene som forekommer i en gitt objektfil

objcopy - Oversetter en type objektfil til en annen

objdump - Viser informasjon om den gitte objektfilen, med alternativer som kontrollerer den spesifikke informasjonen som skal vises; informasjonen som vises, er nyttig for programmerere som jobber med kompilasjonsverktøyene

ranlib - Genererer en indeks over innholdet i et arkiv og lagrer det i arkivet; indeksen lister opp alle symbolene definert av arkivmedlemmer som er flyttbare objektfiler

readelf - Viser informasjon om binære filer av ELF typen

size - Viser seksjonsstørrelser og totalstørrelse for de gitte objektfilene

strings - For hver gitt fil sendes ut sekvensene av utskrivbare tegn som har minst den angitte lengden (som standard er fire); for objektfiler skrives det som standard bare ut strengene fra initialisering og lasting av seksjoner, mens det for andre filtyper skanner hele filen

strip - Kasserer symboler fra objektfiler

libbfd - Biblioteket for binære filer

libctf - Støttebiblioteket for feilsøking i Compat ANSI-C Type Format

libctf-nobfd - En libctf variant som ikke bruker libbfd funksjonalitet

libopcodes - Et bibliotek for å håndtere opcodes - "den lesbare teksten" av instruksjoner for prosessoren; den brukes til å bygge verktøy som objdump

Forrige Hjem Neste