(gelöst)distcc (Debian-amd64 Server) (Gentoo-i686 Client)

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
Benutzeravatar
DAS-ICH
Beiträge: 326
Registriert: 10.09.2004 21:34:35
Kontaktdaten:

(gelöst)distcc (Debian-amd64 Server) (Gentoo-i686 Client)

Beitrag von DAS-ICH » 19.12.2011 16:38:09

Hi

ich wollte die Programm-Installation auf einem betagte Gentoo-Rechner, Duron 800Mhz, etwas beschleunigen und bin auf distcc gestossen. Nun ist mein Problem das ich CrossCompiling benötige da der Hilfestellende Rechner einen AMD-PhenomII Hexacore hat. Mein Prob ist, das ich beim emergen den code110 bekomme, welcher sagt er könne den compiler nicht finden.

Ich habe wie in der Anleitung im Gentoo-Wiki ein Bash-Script erstellt welches so aussieht

Code: Alles auswählen

#!/bin/bash
exec /usr/lib/distcc/x86_64-linux-gnu-g${0:$[-2]} "$@"
im Wiki steht zwar als Zielordner /usr/lib/distcc/bin/ aber unter Debian liegen die eben unter /usr/lib/distcc/. Muss ich eventuell noch irgendwas anderes Einstellen, Konfigurieren damit das klappt??

MfG
Zuletzt geändert von DAS-ICH am 20.12.2011 09:12:23, insgesamt 1-mal geändert.
Debian Unstable-amd64
Kernel 4.2.1-2
Xfce
CPU: AMD PhenomII X6

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: distcc (Debian-amd64 Server) (Gentoo-i686 Client)

Beitrag von rendegast » 19.12.2011 17:52:22

Eigentlich sollte beim make-Aufruf ein CC=distcc reichen, eventuell auch als Environment.
Die Partner können über die Umgebungsvariable DISTCC_HOSTS mitgeteilt werden.
DISTCC_HOSTS='fremd[,lzo] localhost' verschiebt mehr Arbeit auf den Fremdrechner als 'localhost fremd[,lzo]'.
Falls dann immer noch zuviel auf dem gentoo (localhost) läuft, kann dessen jobzahl limitiert werden ('localhost/1'),
eventuell localhost auch ganz aus DISTCC_HOSTS herausnehmen
(localhost bereitet die jobs dann nur vor, compiliert aber selbst nicht).
Aber das ist auszutesten, denn falls auf localhost zu sehr limitiert wird, bekommt fremd eventuell nicht genug jobs zum Verarbeiten.


Auf das debian muß dann nicht weiter eingegangen werden,
es reicht ein dort horchender distccd.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Benutzeravatar
DAS-ICH
Beiträge: 326
Registriert: 10.09.2004 21:34:35
Kontaktdaten:

Re: distcc (Debian-amd64 Server) (Gentoo-i686 Client)

Beitrag von DAS-ICH » 19.12.2011 18:15:54

Hi

der distccd auf Debian bekommt auch jobanfragen, nun habe ich den Logfiles folgendes gefunden i686-pc-linux-gnu-g++: No such file or directory und i686-pc-linux-gnu-c++: No such file or directory . Was ja auch nicht gibt auf dem Debian.

Auf dem Gentoo-Rechner habe ich debian in der /etc/distcc/hosts eingetragen.

MfG
Debian Unstable-amd64
Kernel 4.2.1-2
Xfce
CPU: AMD PhenomII X6

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: distcc (Debian-amd64 Server) (Gentoo-i686 Client)

Beitrag von rendegast » 19.12.2011 18:31:13

Einfach mal zusätzliche Links erstellen?

/usr/lib/distcc/i686-pc-linux-gnu-c++ -> ../../bin/distcc
/usr/lib/distcc/i686-pc-linux-gnu-g++ -> ../../bin/distcc
(das wäre aber wohl nur für den Fall, daß distcc auf dem debian ausgeführt wird.)

Eher noch dieses für den distccd auf dem debian:
/usr[/local]/bin/i686-pc-linux-gnu-c++ -> /usr/bin/c++
/usr[/local]/bin/i686-pc-linux-gnu-g++ -> /usr/bin/g++
(wobei ich mir da aber eigentlich nicht sicher bin,
eventuell muß auf dem 64bit-debian eine 32bit-Compilerumgebung erstellt werden?)
Zuletzt geändert von rendegast am 19.12.2011 18:42:27, insgesamt 2-mal geändert.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Benutzeravatar
DAS-ICH
Beiträge: 326
Registriert: 10.09.2004 21:34:35
Kontaktdaten:

Re: distcc (Debian-amd64 Server) (Gentoo-i686 Client)

Beitrag von DAS-ICH » 19.12.2011 18:37:55

Hi

hatte ich gemacht, den findet der aber auch nicht, dann hatte ich einen Link in /usr/bin auf /usr/bin/distcc gemacht, den findet er dann und quittiert das ganze mit dem Error code 111.(Recursive call to distcc.)

MfG
Debian Unstable-amd64
Kernel 4.2.1-2
Xfce
CPU: AMD PhenomII X6

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: distcc (Debian-amd64 Server) (Gentoo-i686 Client)

Beitrag von rendegast » 19.12.2011 18:50:25

rendegast hat geschrieben: (wobei ich mir da aber eigentlich nicht sicher bin,
eventuell muß auf dem 64bit-debian eine 32bit-Compilerumgebung erstellt werden?)
Das Problem scheint fatal zu sein.
www: Könnte aber durch ein 32-bit debian in einer (multiproc) oder mehreren (einprocessor) VM auf dem 64bit-Host umgangen werden.
(Ich habe den Eindruck, daß meine Multiprozessor-VM behäbiger reagieren als die Einprozessor-VM(?))

Die VM muß ja nur rechnen, und das klappt mit Virtualisierung eigentlich recht gut.


Oder könnte bei Verwendung von distcc auf dem gentoo noch explizit die Architektur mit angegeben werden,
sodaß sich der 64bit-gcc des debian daran orientiert?
Denn die bisherigen obigen Links erweitern ja nur das mapping des distcc(d) auf dem debian.
Zuletzt geändert von rendegast am 19.12.2011 18:59:39, insgesamt 1-mal geändert.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Benutzeravatar
DAS-ICH
Beiträge: 326
Registriert: 10.09.2004 21:34:35
Kontaktdaten:

Re: distcc (Debian-amd64 Server) (Gentoo-i686 Client)

Beitrag von DAS-ICH » 19.12.2011 18:59:37

Hi

das dachte ich mir schon fast, aber denke das ist mir dan doch zu aufwendig, muss ich eben paar Tage warte bis der Rechner fertig compiliert hat.

Danke aber für Deine anregungen.

MfG
Debian Unstable-amd64
Kernel 4.2.1-2
Xfce
CPU: AMD PhenomII X6

Benutzeravatar
DAS-ICH
Beiträge: 326
Registriert: 10.09.2004 21:34:35
Kontaktdaten:

Re: (gelöst)distcc (Debian-amd64 Server) (Gentoo-i686 Client

Beitrag von DAS-ICH » 20.12.2011 09:13:55

Hi

bin auf die Alternative icecream gestossen, mit der scheint es ohne grosse Anpassungen zu funktionieren, zumindest arbeitet jetzt mein Debian mit und auf dem Gentoo geht es echt schneller bis etwas installiert ist.

MfG
Debian Unstable-amd64
Kernel 4.2.1-2
Xfce
CPU: AMD PhenomII X6

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: (gelöst)distcc (Debian-amd64 Server) (Gentoo-i686 Client

Beitrag von rendegast » 20.12.2011 11:21:41

$ apt-cache search icecream
icecream - lightweight stream download utility
?

Okay, http://en.opensuse.org/Icecream:
I use distcc, why should I change?

If you're sitting alone home and use your partner's computer to speed up your compilation and both these machines run the same Linux version, you're fine with distcc (as 95% of the users reading this chapter will be, I'm sure). But there are several situations, where distcc isn't the best choice:

you're changing compiler versions often and still want to speed up your compilation (see the ICECC_VERSION support)
you got some neat PPC laptop and want to use your wife's computer that only runs intel (see the cross compiler section)
you don't know what machines will be on-line at compile time.
most important: you're sitting in a office with several co-workers that do not like if you overload their workstations when they play doom (distcc doesn't have a scheduler)
you like nice compile monitors :)
Der Konflikt mit den doom-Spielern wird aber durch das nicen von distccd vermieden.
Zuletzt geändert von rendegast am 20.12.2011 11:26:19, insgesamt 1-mal geändert.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Benutzeravatar
DAS-ICH
Beiträge: 326
Registriert: 10.09.2004 21:34:35
Kontaktdaten:

Re: (gelöst)distcc (Debian-amd64 Server) (Gentoo-i686 Client

Beitrag von DAS-ICH » 20.12.2011 11:26:07

Hi

hätte wohl den Link noch mitgeben sollen, in apt-get heist es nur icecc.

MfG
Debian Unstable-amd64
Kernel 4.2.1-2
Xfce
CPU: AMD PhenomII X6

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: (gelöst)distcc (Debian-amd64 Server) (Gentoo-i686 Client

Beitrag von rendegast » 20.12.2011 11:45:57

Code: Alles auswählen

$ ll /usr/lib/icecc/bin/
insgesamt 0
lrwxrwxrwx  c++ -> ../../../bin/icecc
lrwxrwxrwx  cc -> ../../../bin/icecc
lrwxrwxrwx  g++ -> ../../../bin/icecc
lrwxrwxrwx  gcc -> ../../../bin/icecc
kommt mit vier Links aus.
Dann fängt der icecc-Client wohl diese Konstrukte wie "i686-pc-linux-gnu-g++" ab
und gibt automatisch die Architektur mit.



--------------------------
Nicht ganz, der Fall braucht doch etwas Konfiguration resp. das richtige backend?
Cross-Compiling using icecream

SUSE got quite some good machines not having a processor from Intel or AMD, so icecream is pretty good in using cross-compiler environments similar to the above way of spreading compilers. There the ICECC_VERSION variable looks like <native_filename>(,<platform>:<cross_compiler_filename>)*, for example like this:

/work/9.1-i386.tar.bz2,ia64:/work/9.1-cross-ia64.tar.bz2,Darwin_PowerPCMac:/work/osx-generate-i386.tar.gz

To get this working on openSuse machines there are some packages containing the cross-compiler environments. Here is a sample case showing how to do to get it working. Let's assume that we want to build for x86_64 but use some i386 machines for the build as well. On the x86_64 machine, go to http://software.opensuse.org, search for icecream x86_64 and download and install the version for i586. Then add this to the ICECC_VERSION and build.

i386:/usr/share/icecream-envs/cross-x86_64-gcc-icecream-backend_i386.tar.gz
----------
Oh, tschuldigung,
einfach nur 'icecc-create-env' und das entstandene (chroot-)Paket wird per ICECC_VERSION verteilt.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Antworten