5.4. Binutils-2.34 - Pass 1

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

 

Omtrentlig byggetid: 1 SBU

Nødvendig diskplass: 625 MB


5.4.1. Installasjon av Cross Binutils

Gå tilbake og les merknadene i forrige avsnitt på nytt. Å forstå merknadene som er merket som viktige, vil spare deg for mange problemer senere.

Det er viktig at Binutils er den første pakken som er satt sammen fordi både Glibc og GCC utfører forskjellige tester på tilgjengelig linker og assembler for å bestemme hvilke av deres egne funksjoner som skal aktiveres.

Binutils dokumentasjonen anbefaler å bygge Binutils i en dedikert byggekatalog:

mkdir -v build

cd build

For at SBU-verdiene som er oppført i resten av boken skal kunne brukes, måler du tiden det tar å bygge denne pakken fra konfigurasjonen, til og med den første installasjonen. For å oppnå dette enkelt, pakker du inn kommandoene i en tidskommando som denne: time {./configure ... && ... && make install; }.

De omtrentlige SBU verdiene og nødvendig diskplass i kapittel 5 inkluderer ikke testsuitedata.

Forbered nå Binutils til kompilering:

../configure --prefix=/tools \
     --with-sysroot=$LFS \
     --with-lib-path=/tools/lib \
     --target=$LFS_TGT \
     --disable-nls \
     --disable-werror

Betydningen av konfigurasjonsalternativene:

--prefix=/tools
   Dette forteller konfigurasjonsskriptet å forberede for å installere Binutils-programmene i /tools katalogen.

--with-sysroot=$LFS
   For krysskompilering, dette forteller byggesystemet å søke i $LFS etter målsystembibliotekene etter behov.

--with-lib-path=/tools/lib
   Dette spesifiserer hvilken bibliotekbane koblingen skal konfigureres til å bruke.

--target=$LFS_TGT
   Fordi maskinbeskrivelsen i variabelen LFS_TGT er litt annerledes enn verdien som returneres av config.guess skriptet, vil denne bryteren fortelle konfigurasjonsskriptet om å justere Binutils byggesystem for å bygge en tverrlinker.

--disable-nls
   Dette deaktiverer internasjonalisering ettersom i18n ikke er nødvendig for de midlertidige verktøyene.

--disable-werror
   Dette forhindrer byggingen i å stoppe i tilfelle det er advarsler fra vertens kompilator.

Fortsett med å kompilere pakken:

make

Kompileringen er nå fullført. Vanligvis vil vi nå kjøre testsuiten, men på dette tidlige stadiet er rammene for testsuite (Tcl, Expect og DejaGNU) ennå ikke på plass. Fordelene med å kjøre testene på dette tidspunktet er minimale siden programmene fra denne første passering snart vil bli erstattet av de fra den andre.

Hvis du bygger på x86_64, oppretter du en symlink for å sikre at verktøykjeden er intakt:

case $(uname -m) in
     x86_64) mkdir -v /tools/lib && ln -sv lib /tools/lib64 ;;
esac

Installer pakken:

make install
Forrige Hjem Neste