6.16.1. Instalarea Binutils
Verificați dacă PTY-urile funcționează corect în mediul chroot efectuând un test simplu:
așteptați -c "apariți ls"
așteptați -c "apariți ls"
Această comandă ar trebui să scoată următoarele:
spawn ls
spawn ls
Dacă, în schimb, ieșirea include mesajul de mai jos, atunci mediul nu este configurat pentru funcționarea corectă a PTY. Această problemă trebuie rezolvată înainte de a rula suitele de testare pentru Binutils și GCC:
Sistemul nu mai are pty-uri.
Solicitați administratorului de sistem să creeze mai multe.
Sistemul nu mai are pty-uri.
Solicitați administratorului de sistem să creeze mai multe.
Acum eliminați un test care împiedică rularea testelor până la finalizare:
sed -i '/@\tincremental_copy/d' gold/testsuite/Makefile.in
sed -i '/@\tincremental_copy/d' gold/testsuite/Makefile.in
Documentația Binutils recomandă construirea Binutils într-un director de compilare dedicat:
mkdir -v build cd build
mkdir -v build cd build
Pregătiți Binutils pentru compilare:
../configure --prefix=/usr \
--enable-gold \
--enable-ld=implicit\
--enable-plugins \
--enable-shared \
--disable-werror \
--enable-64-bit-bfd \
--with-system-zlib
../configure --prefix=/usr \
--enable-gold \
--enable-ld=implicit\
--enable-plugins \
--enable-shared \
--disable-werror \
--enable-64-bit-bfd \
--with-system-zlib
Semnificația parametrilor de configurare:
--activează-aur
Construiți linkerul de aur și instalați-l ca ld.gold (alături de linkerul implicit).
--enable-ld=implicit
Construiți linkerul bdf original și instalați-l atât ca ld (linkerul implicit) cât și ca ld.bfd.
--enable-plugins
Activează suportul pentru plugin pentru linker.
--enable-64-bit-bfd
Activează suportul pe 64 de biți (pe gazde cu dimensiuni mai înguste ale cuvintelor). Poate să nu fie necesar pe sistemele pe 64 de biți, dar nu dăunează.
--with-system-zlib
Utilizați biblioteca zlib instalată în loc să construiți versiunea inclusă.
Compilați pachetul:
make tooldir=/usr
make tooldir=/usr
Semnificația parametrului make:
tooldir=/usr
În mod normal, tooldir (directorul în care vor fi localizate executabilele) este setat la $(prefix_exec)/$(alias_țintă). De exemplu, mașinile x86_64 ar extinde asta la /usr/x86_64- unknown-linux-gnu. Deoarece acesta este un sistem personalizat, acest director specific țintei în / usr Nu este necesar.
$(exec_prefix)/$(target_alias) ar fi folosit dacă sistemul a fost folosit pentru compilare încrucișată (de exemplu, compilarea unui pachet pe o mașină Intel care generează cod care poate fi executat pe mașinile PowerPC).
Important
Suita de teste pentru Binutils din această secțiune este considerată critică. Nu sări peste el sub nicio circumstanță.
Important
Suita de teste pentru Binutils din această secțiune este considerată critică. Nu sări peste el sub nicio circumstanță.
Testați rezultatele:
face -k verifica
face -k verifica
Testul de offset relativ la PC și testul debug_msg.sh pot eșua în mediul LFS. Instalează pachetul:
make tooldir=/usr install
make tooldir=/usr install