Log in


Forgot your password?
prijatelji LUGoNSa
gnu.gif
linuxzasve.jpg
hulk.jpg
zextras_logo.png
 
You are here: Home / Uputstva / Opšte / Kompajliranje pomoću distcc-a na različitim arhitekturama

Kompajliranje pomoću distcc-a na različitim arhitekturama

by Bojan Delić last modified Jun 22, 2007 06:12 AM
Ukoliko imate računare različite arhitekture, a ipak želite da koristite distcc ovo uputstvo bi vam moglo pomoći (Getnoo specific).

Za potrebe ovog uputstva ću pretpostaviti da imate podešen distcc na svim računarima. Ako ne znate kako da ga podesite pogledajte ovo uputstvo. Zatim, pretpostaviću da imate jedan računar x86 i jedan amd64 i želite da iskoristite amd64 za potrebe kompajliranja za x68 računar. Ako imate drugačiju situaciju, podešavanja su potpuno analogna, potrebno je samo izmeniti ključne reči na nekim mestima, a to ću naglasiti.

Za potrebe kompajliranja na različitim arhitekturama koristićemo alat crossdev. Zbog toga je potrebno da ga instalirate komandom:

# emerge crossdev

ili

# paludis -i crossdev

Napomena:  Crossdev morate instalirati na oba (ili više) računara.

Podešavanje amd64

Da biste na amd64 računaru kompajlirali kod kompatibilan sa x86 računarom morate izvršiti neke pripreme. Prvo, morate da saznate arhitekturu x86 računara (x86 nije dovoljno, treba da znate da li je u pitanju i486, i586...). To najlakše možete saznati ako pogledate vrednost promenljive CHOST u fajlu /etc/make.conf (ako koristite portage) ili u fajlu /etc/paludis/bashrc (ako koristite paludis). U mom slučaju to je i486, pa će komanda izgledati ovako:
# crossdev -t i486
Očekujte da ćete malo duže čekati na izvršenje ove komande, jer će ona da instalira glibc, gcc, binutils i linux-headers za ciljanu arhitekruru. Za više detalja pogledajte crossdev --help.

Podešavanje x86

Da bi kompajliranje prošlo uspešno potrebno je pozivati kompajler punim imenom, jer sad na amd64 računaru imamo 2 kompajlera. Ovo se radi dosta jednostavno. Potrebno je da izvršite sledeće komande:
# cd /usr/lib/distcc/bin
# rm gcc g++ cc c++
Zatim u isti folder treba da ubacimo skriptu koja će da služi kao wrapper. Njen sadržaj je:
#!/bin/bash
exec /usr/lib/distcc/bin/i486-pc-linux-gnu-g${0:$[-2]} "$@"
U vašem slučaju verovatno će se deo i486-pc razlikovati. Tu treba da stavite arhitekturu koju ste odredili kad ste podešavali amd64. Kod mene se ova skripta zove i486-pc-linux-gnu-wrapper, a vi je imenujte u skladu sa vašom arhitekkurom.
Zatim treba da dozvolimo skipti da se izvršava i ponovo napravimo linkove koje smo obrisali malopre, ali sad treba da pokazuju na novonapravljeni wrapper. To ćemo postići komandama:
# chmod +x i486-pc-linux-gnu-wrapper
# ln -s i486-pc-linux-gnu-wrapper gcc
# ln -s i486-pc-linux-gnu-wrapper cc
# ln -s i486-pc-linux-gnu-wrapper g++
# ln -s i486-pc-linux-gnu-wrapper c++

To je to. Sad bi unakrsno kompajliranje trebalo da radi bez problema.

Document Actions