| View previous topic :: View next topic |
| Author |
Message |
Saigneur Apprentice


Joined: 21 Oct 2004 Posts: 277 Location: Evry, Essonne, France (48°35'N, 02°15'E)
|
Posted: Tue Jul 26, 2005 5:36 am Post subject: [HOWTO] DistCC, cross compiling (en travaux) |
|
|
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 .
- 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
( 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. _________________ Tant pis si ça saigne, pourvu que ça rentre. |
|
| Back to top |
|
 |
kopp Advocate


Joined: 09 Apr 2004 Posts: 2809 Location: Grenoble, France
|
Posted: Tue Jul 26, 2005 6:37 am Post subject: |
|
|
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 |
|
 |
anigel Bodhisattva


Joined: 14 Apr 2003 Posts: 1880 Location: Un petit bled pas loin de Limoges ;-)
|
Posted: Tue Jul 26, 2005 7:57 am Post subject: |
|
|
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 |
|
 |
-KuRGaN- Veteran


Joined: 05 Dec 2004 Posts: 1142 Location: Besançon (25) [FRANCE]
|
Posted: Tue Jul 26, 2005 8:14 am Post subject: |
|
|
| 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 |
|
 |
Saigneur Apprentice


Joined: 21 Oct 2004 Posts: 277 Location: Evry, Essonne, France (48°35'N, 02°15'E)
|
Posted: Tue Jul 26, 2005 8:40 am Post subject: |
|
|
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 |
|
 |
cylgalad Veteran

Joined: 18 Apr 2003 Posts: 1327 Location: France
|
Posted: Tue Jul 26, 2005 9:40 am Post subject: |
|
|
Je compile tout sur mon Pentium 2 avec distcc utilisant mes deux Athlon XP, ce sont tous des x86, pas de compilation croisée
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 |
|
 |
anigel Bodhisattva


Joined: 14 Apr 2003 Posts: 1880 Location: Un petit bled pas loin de Limoges ;-)
|
Posted: Tue Jul 26, 2005 9:45 am Post subject: |
|
|
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 ?
 _________________ Il y a 10 sortes d'individus en ce bas-monde : ceux qui causent binaire, et les autres. |
|
| Back to top |
|
 |
cylgalad Veteran

Joined: 18 Apr 2003 Posts: 1327 Location: France
|
Posted: Tue Jul 26, 2005 9:57 am Post subject: |
|
|
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 |
|
 |
Saigneur Apprentice


Joined: 21 Oct 2004 Posts: 277 Location: Evry, Essonne, France (48°35'N, 02°15'E)
|
Posted: Tue Jul 26, 2005 11:09 am Post subject: |
|
|
| 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 |
|
 |
-KuRGaN- Veteran


Joined: 05 Dec 2004 Posts: 1142 Location: Besançon (25) [FRANCE]
|
Posted: Tue Jul 26, 2005 11:45 am Post subject: |
|
|
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 |
|
 |
cylgalad Veteran

Joined: 18 Apr 2003 Posts: 1327 Location: France
|
Posted: Wed Jul 27, 2005 9:05 am Post subject: |
|
|
| 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 )
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 |
|
 |
-KuRGaN- Veteran


Joined: 05 Dec 2004 Posts: 1142 Location: Besançon (25) [FRANCE]
|
Posted: Wed Jul 27, 2005 9:33 am Post subject: |
|
|
| 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 |
|
 |
kabutop n00b

Joined: 21 Mar 2006 Posts: 30
|
Posted: Fri Apr 14, 2006 4:56 pm Post subject: |
|
|
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
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 |
|
 |
|
|
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
|
|