Kompajliranje pomoću distcc-a na različitim arhitekturama
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 i486Oč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/bashU 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.
exec /usr/lib/distcc/bin/i486-pc-linux-gnu-g${0:$[-2]} "$@"
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.
Дејства на документ