www.pegasos.org

Linux, BSD, Unix med flera - Crosscompiler x86->ppc?

Trizt - Jul 01, 2004 - 15:27
Post subject: Crosscompiler x86->ppc?
Här sitter jag o försöker bygga om QT, om och om igen så får jag samma fel och ingen synes bry sig om att äns titta till bug rapporten.

Det enda som jag kan tänka mig som skulle fixa till detta skulle vara att kompilera på en x86 maskin, men då krävs en cross compiler, så nån som vet var man kan finna en sådan x86 som kompilerar ppc binärer (hade vart trevligt ifall det hade funnits en ebuild).
Trizt - Jul 01, 2004 - 16:28
Post subject:
Hittade crossdev som finns som ebuild, men tyvärr så klarar den illa kernel 2.6 och att man har snapshot versioner av gcc. Har modifierat crossdev.sh lite och håller just på att bygga allt, så vet inte ifall jag har lyckats få till att den bygger en ppc gcc för x86.


Sådär, crossdev funkar väldigt dåligt, det hela misslyckades, den borde vara ~ och inte markerad som stabil.
dholm - Jul 02, 2004 - 07:33
Post subject:
crossdev är stable eftersom den funkade väldigt bra när den släpptes. Den kan dessutom hantera snapshots, problemet med den gcc-3.3 ebuilden baserad på hammer-branch som ligger i portage är att katalogen har fått fel filnamn.
Just nu går det dock inte att bygga kompilatorer med crossdev, se http://bugs.gentoo.org/show_bug.cgi?id=44884.

Vilket buggnummer har din QT-bug?
Trizt - Jul 02, 2004 - 13:29
Post subject:
54400 (du kan trycka på ordet fel i första meddelandet).

Angående crossdev, jag fixade till det dära felet med katalogen, men den misslyckas att bygga x-kompilatorn, det blev nått fel efter ett tags kompilering av gcc som inte berode på katalogsnamnet utan en segfault ifall jag nu mins det rätt.
Det är inte det enda som blir fel i crossdev, utan koden


Code:
                #// Make version/symlinks
                make ARCH="${KERNEL_ARCH}" symlinks include/linux/version.h || \
                       showError "${func_name}: Failed to create include/linux/version.h!"
                touch .configured-${TARGETARCH}


orsakar också att crossdev misslyckas innan den äns börjar o kompilera (jag kommenterade bort det i min crossdev.sh), problemet är att version.h inte finns med i linux kernel utan skapas när man kör 'make *config', har jag iaf för mig.
Trizt - Jul 03, 2004 - 05:57
Post subject:
Tackar för ditt förslag på Gentoo bugzilla, men får nu en segfault som synes bero antingen på uic eller att det blir nått alvarligt fel när man har kompilerat qt-libsen, så kan tyvärr inte färdigställa det hela manuelt.

Har nu snot en liten patch from Fedora och ska se ifall det hjälper, smatidigt så har jag ändrat lite i configure alternativen, bland annat droppat -fast... så får se ifall det blir bättre nu eller inte.
Trizt - Sep 09, 2004 - 17:56
Post subject:
Vet inte ifall corssdev ebuilden funkar igen eller inte, men för er som inte kör Gentoo eller som inte får crossdev att fungera, så finns det en HOWTO för att göra en crosscompiler (linux) och den hittar ni här.

Denna beskrivning är gjord för MacG3, så jag har själv valt att göra lite annerlunda än beskrivet, nämligen

Code:

make ARCH=ppc CROSS_COMPILE=powerpc-unknown-linux-gnu- mrproper
cp /mnt/cdrom/gentoo-pegasos-kernel-config .config
make ARCH=ppc CROSS_COMPILE=powerpc-unknown-linux-gnu- oldconfig


Vet inte om det gör någon större skillnad, men känns bättre o haft samma config file som man hade när man kompilerade kerneln till peggen.
dholm - Sep 09, 2004 - 18:28
Post subject:
Så du har fått det att funka? Har du testat att köra distcc med en ppc och en x86?
Trizt - Sep 10, 2004 - 13:17
Post subject:
Japp, kompilatorn funkar finfint.
Har inte ännu provat distcc, det finns beskrivet i HOWTO:n hur man gör det med.
Trizt - Sep 10, 2004 - 17:39
Post subject:
Efter lite om och men, så ser distcc o fungera, men fungerar inte med alla packet. Eftersom alla inte fungerar riktigt med distcc (vissa kan misslyckas med sin build också ifall distcc används), så jag har vanliga värden i min /etc/make.conf och la till en alias i min .bashrc

Code:
alias pemerge="FEATURES=\"distcc\" MAKEOPTS=\"-j3\" emerge"


Så kan man välja

emerge vi

eller

pemerge vi

var den senare använder sig av distcc.

Vad jag var tvungen att göra för att få distcc att fungera, det var att göra en massa symlinks i min crossdev/bin:
ln -s powerpc-unknown-linux-gnu-X X

byt ut X till lämpligt namn.
All times are GMT + 1 Hour
Powered by PNphpBB2 © 2003-2004 The PNphpBB Group
Credits