Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[HOWTO] DistCC, cross compiling (en travaux)
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index French
View previous topic :: View next topic  
Author Message
Saigneur
Apprentice
Apprentice


Joined: 21 Oct 2004
Posts: 277
Location: Evry, Essonne, France (48°35'N, 02°15'E)

PostPosted: Tue Jul 26, 2005 5:36 am    Post subject: [HOWTO] DistCC, cross compiling (en travaux) Reply with quote

Hello

Je cherche à accélérer un peu les compilations sur mon portable grâce à mon ordi de bureau. Je me suis donc naturellement penché sur le cross compiling, et sur les HOWTO que j'ai pu trouver. (Celui là, principalement, et d'autres topics de ce forum). Malheureusement, je ne comprend pas grand chose : "(1) Pick your target. Any valid 'CHOST' will do. I will be
using 'hppa2.0-unknown-linux-gnu'.", ça ne me parle pas beaucoup : que comprendre par "pick you target" ?

Enfin bref. Je propose de faire un howto aussi complet et explicatif que possible, en français, et qui fonctionne.
A l'issue, je compilerai toutes les infos pour en faire un HOWTO sur gentoo-wiki, et ici.

J'attend vos contributions, on part du HOWTO d'origine :

Quote:
HOWTO BUILD A CROSS COMPILER WITH EMERGE !

----------------------------------------------------

Before you read any further, you should try using 'crossdev'
in portage. You're less likely to screw something up that
way. Simply do `emerge '>=crossdev-0.9'` and then execute
`crossdev --help`.

----------------------------------------------------


-------------
PACKAGE NOTES
-------------

- binutils
Only binutils versions that 'inherit toolchain-binutils'
will work. The host system should also being using one
of these versions or you'll probably break your system.
- linux-headers
I only use 2.6 so chances are that 2.6 headers are the
only headers that will work. Deal with it. If someone
updates linux-headers-2.4.x to work with kernel-2.eclass,
I'll fix it up ... but until then, no dice !
- gcc
Only gcc versions that 'inherit toolchain' will work.
Your host system does not need to be running one of
these versions, but it probably should anyways :p.
Any version less than gcc-3.3.5 for example will NOT
work. Again, I don't need 3.3.4 or older, so :P.
- glibc
Only versions >=2.3.4.20040808-r1 have been fixed.

-------------
GENERAL NOTES
-------------

- ARCH / USE
sometimes you may have to pass ARCH / USE to the emerge
process for things to work properly. For example, glibc
will only apply hppa patches if 'hppa' is in ARCH / USE.
This is a bug and I am working on fixing it :).
- CFLAGS
All packages should be built with your HOST's CFLAGS
except for glibc. When building glibc, change your CFLAGS
to something for the target host.

-------------
ON TO THE FUN
-------------

(1) Pick your target. Any valid 'CHOST' will do. I will be
using 'hppa2.0-unknown-linux-gnu'.

(2) Setup 'categories'.
$ mkdir -p /etc/portage
$ echo cross-hppa2.0-unknown-linux-gnu >> /etc/portage/categories

(3) Setup PORTDIR_OVERLAY.
For more info, see make.conf(5) manpage.
My overlay is /usr/local/portage.

$ mkdir -p /usr/local/portage/cross-hppa2.0-unknown-linux-gnu
$ cd /usr/local/portage/cross-hppa2.0-unknown-linux-gnu
$ ln -s /usr/portage/sys-devel/binutils binutils
$ ln -s /usr/portage/sys-devel/gcc gcc
$ ln -s /usr/portage/sys-kernel/linux-headers linux-headers
$ ln -s /usr/portage/sys-libs/glibc glibc

(4) Emerge binutils.
$ emerge cross-hppa2.0-unknown-linux-gnu/binutils

(5) Emerge gcc [C compiler only].
$ USE=nocxx emerge cross-hppa2.0-unknown-linux-gnu/gcc
< run gcc-config for the new compiler >

(6) Emerge linux headers.
$ emerge cross-hppa2.0-unknown-linux-gnu/linux-headers

(7) Emerge glibc.
$ USE=hppa emerge cross-hppa2.0-unknown-linux-gnu/glibc

(8) Emerge gcc [C and C++ compiler].
$ emerge cross-hppa2.0-unknown-linux-gnu/gcc

(9) Build stuff !
When you go to emerge packages, you should just need to do:
ROOT=/blah/ CHOST=hppa2.0-unknown-linux-gnu emerge cpio
- you should also set CBUILD to your building machine for
completeness sake ... most of the time you won't need it,
but sometimes you will :)
- CTARGET is no longer needed so don't set it !

If you want to cross compile a kernel, do this:
make ARCH=hppa CROSS_COMPILE=hppa2.0-unknown-linux-gnu-


crossdev : obsolète ou pas ?


Edit :
Je vais peut-être partir de ça : http://216.239.59.104/search?q=cache:3GkLnBW9PTsJ:www.sable.mcgill.ca/~dbelan2/crossdev/crossdev-powerpc-i686.html Si ça fonctionne, ce sera la base de départ.:D
_________________
Tant pis si ça saigne, pourvu que ça rentre.
Back to top
View user's profile Send private message
kopp
Advocate
Advocate


Joined: 09 Apr 2004
Posts: 2871
Location: Grenoble, France

PostPosted: Tue Jul 26, 2005 6:37 am    Post subject: Reply with quote

Je suppose que le CHOST qu'on te dit de prendre : c'est le type de chost pour lequel tu veux compiler non ? enfin c'est comme ça que je le comprends ....
Sinon c'est une bonne idée
Faudrait commencer par traduire tout ça, mais là j'ai pas le temps! Si dès quej'ai du temps dispo, ça n'a pas été fait, je veux bien m'en occuper, mais n'attendez pas ça va être long....
Back to top
View user's profile Send private message
anigel
Bodhisattva
Bodhisattva


Joined: 14 Apr 2003
Posts: 1889
Location: Un petit bled pas loin de Limoges ;-)

PostPosted: Tue Jul 26, 2005 7:57 am    Post subject: Reply with quote

Ca fait déjà un bon moment que ce HOWTO officiel est disponible. Il est à jour, et plutôt bien conçu. Une simple traduction devrait suffire ?

Avec, à la limite, un paragraphe supplémentaire sur ccache, et basta ?
_________________
Il y a 10 sortes d'individus en ce bas-monde : ceux qui causent binaire, et les autres.
Back to top
View user's profile Send private message
-KuRGaN-
Veteran
Veteran


Joined: 05 Dec 2004
Posts: 1142
Location: Besançon (25) [FRANCE]

PostPosted: Tue Jul 26, 2005 8:14 am    Post subject: Reply with quote

Anigel wrote:
Ca fait déjà un bon moment que ce HOWTO officiel est disponible. Il est à jour, et plutôt bien conçu. Une simple traduction devrait suffire ?


Mais il y a déjà une traduction de disponible ici
_________________
Knight Gent00 Industries RiDeR !!!!
Back to top
View user's profile Send private message
Saigneur
Apprentice
Apprentice


Joined: 21 Oct 2004
Posts: 277
Location: Evry, Essonne, France (48°35'N, 02°15'E)

PostPosted: Tue Jul 26, 2005 8:40 am    Post subject: Reply with quote

Hola :)

Non, ce qui est dispo, c'est la façon d'utiliser distcc, pas de faire du cross compiling (compilation d'un pentium pour un athlon, voire d'un SPARC ou autre architecture). Et là dessus, on nous invite juste à aller faire un tour sur le Cross compile HOWTO.
Moi c'est ce dernier document, que je veux faire / trouver s'il existe (en langage clair, et français, et expliqué (histoire de ne pas appliquer bêtement mais de comprendre ce qui est fait))

Nieur, éternel n00b
_________________
Tant pis si ça saigne, pourvu que ça rentre.
Back to top
View user's profile Send private message
cylgalad
Veteran
Veteran


Joined: 18 Apr 2003
Posts: 1327
Location: France

PostPosted: Tue Jul 26, 2005 9:40 am    Post subject: Reply with quote

Je compile tout sur mon Pentium 2 avec distcc utilisant mes deux Athlon XP, ce sont tous des x86, pas de compilation croisée :D

Maintenant, pour faire de la vraie compilation croisée avec distcc, ça n'est pas compliqué : déjà il faut avoir tout ce qu'il faut pour compiler, ensuite il faut configurer un 2ème distcc avec un port différent (enfin si tu veux garder un distcc x86...) et le bon chemin vers les outils de compilation.
Back to top
View user's profile Send private message
anigel
Bodhisattva
Bodhisattva


Joined: 14 Apr 2003
Posts: 1889
Location: Un petit bled pas loin de Limoges ;-)

PostPosted: Tue Jul 26, 2005 9:45 am    Post subject: Reply with quote

Bizarre tout ça, il me semblait que distcc prenait tout ça en charge sans config particulière, à condition que le gcc utilisé permettait le build pour l'architecture visée ?

J'ai plusieurs machines avec des march différentes, et cela n'a jamais posé de problème (ie : je n'ai jamais retrouvé sur mon P3 des softs compilés avec les instruction SSE2 de mon P4). Mais j'avoue que je ne m'étais jamais posé la question. Cela prouve-t'il que ça marche par défaut ? Ou bien que j'ai eu beaucoup de chance ?

:lol:
_________________
Il y a 10 sortes d'individus en ce bas-monde : ceux qui causent binaire, et les autres.
Back to top
View user's profile Send private message
cylgalad
Veteran
Veteran


Joined: 18 Apr 2003
Posts: 1327
Location: France

PostPosted: Tue Jul 26, 2005 9:57 am    Post subject: Reply with quote

Je me répète : un Pentium ou un Pentium 2 ou un Pentium 3 ou un Pentium 4 ou un Athlon (XP ou pas) ou un Celeron ou un Sempron, etc... tout ça c'est du x86 donc les mêmes outils de compilation (seuls les CFLAGS changent).
Par contre un compilo x86 ne compilera jamais pour du PowerPC ou du SPARC ou du MIPS ou tout ce que vous voulez qui ne soit pas du x86.
Back to top
View user's profile Send private message
Saigneur
Apprentice
Apprentice


Joined: 21 Oct 2004
Posts: 277
Location: Evry, Essonne, France (48°35'N, 02°15'E)

PostPosted: Tue Jul 26, 2005 11:09 am    Post subject: Reply with quote

cylgalad wrote:
Je me répète : un Pentium ou un Pentium 2 ou un Pentium 3 ou un Pentium 4 ou un Athlon (XP ou pas) ou un Celeron ou un Sempron, etc... tout ça c'est du x86 donc les mêmes outils de compilation (seuls les CFLAGS changent).
Par contre un compilo x86 ne compilera jamais pour du PowerPC ou du SPARC ou du MIPS ou tout ce que vous voulez qui ne soit pas du x86.


Quid des optimisations (CHOST et compagnie) pour le pentium4, etc ? Il faut bien dire sur l'Athlon "attention, tu va compiler avec des options de compilation Pentium 4", sinon autant télécharger le binaire de l'appli et ne pas s'emmerder à la compiler aux petits oignons ?

Nieur, ignorant donc à l'écoute.
_________________
Tant pis si ça saigne, pourvu que ça rentre.
Back to top
View user's profile Send private message
-KuRGaN-
Veteran
Veteran


Joined: 05 Dec 2004
Posts: 1142
Location: Besançon (25) [FRANCE]

PostPosted: Tue Jul 26, 2005 11:45 am    Post subject: Reply with quote

Ben désolé, j'avais pas compris la notion d'architecture.

Donc je pourrai compiler avec mon x86_64 des paquets pour mon x86 en gros ?????,,,

Si oui, alors go go go !!
_________________
Knight Gent00 Industries RiDeR !!!!
Back to top
View user's profile Send private message
cylgalad
Veteran
Veteran


Joined: 18 Apr 2003
Posts: 1327
Location: France

PostPosted: Wed Jul 27, 2005 9:05 am    Post subject: Reply with quote

Saigneur wrote:
cylgalad wrote:
Je me répète : un Pentium ou un Pentium 2 ou un Pentium 3 ou un Pentium 4 ou un Athlon (XP ou pas) ou un Celeron ou un Sempron, etc... tout ça c'est du x86 donc les mêmes outils de compilation (seuls les CFLAGS changent).
Par contre un compilo x86 ne compilera jamais pour du PowerPC ou du SPARC ou du MIPS ou tout ce que vous voulez qui ne soit pas du x86.


Quid des optimisations (CHOST et compagnie) pour le pentium4, etc ? Il faut bien dire sur l'Athlon "attention, tu va compiler avec des options de compilation Pentium 4", sinon autant télécharger le binaire de l'appli et ne pas s'emmerder à la compiler aux petits oignons ?

Nieur, ignorant donc à l'écoute.

Dans ton CFLAGS tu as des -march, -mcpu, -mmmx, -msse, -m3dnow, etc... qui disent au compilo et à l'assembleur pour quel type de processeur ils doivent compiler/assembler, or gcc en x86 connaît tous les processeurs 32 bits (pour un 286 ou 8086/8088/z80... ça ne marchera jamais :D)
Par contre n'ayant pas de x86-64 je ne peux pas confirmer si ça marche aussi (un amd64 devrait pouvoir compiler du 32 bits je suppose mais dans l'autre sens ça ne doit pas marcher :?:)
Back to top
View user's profile Send private message
-KuRGaN-
Veteran
Veteran


Joined: 05 Dec 2004
Posts: 1142
Location: Besançon (25) [FRANCE]

PostPosted: Wed Jul 27, 2005 9:33 am    Post subject: Reply with quote

cylgalad wrote:
Par contre n'ayant pas de x86-64 je ne peux pas confirmer si ça marche aussi (un amd64 devrait pouvoir compiler du 32 bits je suppose mais dans l'autre sens ça ne doit pas marcher :?:)


Ben vu que tu peu faire tourner du 32bits sur un x86_64 tu peux forcément compiler en 32bits dessus!
_________________
Knight Gent00 Industries RiDeR !!!!
Back to top
View user's profile Send private message
kabutop
n00b
n00b


Joined: 21 Mar 2006
Posts: 30

PostPosted: Fri Apr 14, 2006 4:56 pm    Post subject: Reply with quote

Hello,

Je viens d'installer distcc sur ma gentoo et sur 2 serveurs debian (bi-xéon 3,4Go) et un ubuntu (P4 2Go).
Ca marche plutôt pas mal :D
Je pensais faire un petit HowTo ici, mais c'est déjà fait ! Pour les curieux, jetez un oeil à ce billet.

A+
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index French All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum