Distcc/Cross-Compiling/fr

Ce guide vous explique comment configurer distcc pour la compilation croisée à travers différentes architectures de processeur.

Introduction
est un outil qui vous permet de partager les tâches de compilation d'un logiciel sur plusieurs ordinateurs en réseau. Tant que les ordinateurs en réseau utilisent tous la même chaîne d'outils compilée pour la même architecture, aucune configuration spéciale de  n'est requise. Mais que faire pour compiler pour différentes architectures en utilisant des ordinateurs différents ? Ce guide va vous montre comment configurer  pour compiler pour différentes architectures.

Installer les utilitaires nécessaires
Tout d'abord, vous devez installer  sur toutes les machines qui seront impliquées dans le processus de compilation. est un outil qui permet une compilation facile de la chaîne des outils de compilation croisée. Il a été écrit à l'origine par Joshua Kinard et a été réécrit totalement par Mike Frysinger. Son utilisation est assez directe :  compile une chaîne d'outils complète en ciblant l'architecture Sparc. Ceci inclut binutils, gcc, glibc, et linux-headers. Si vous avez besoin de plus d'aide, essayez d'exécuter. Évidemment, vous devrez installer la chaîne des outils de compilation croisée sur tous les ordinateurs participants.

Ensuite, vous devez installer  sur toutes les machines impliquées dans le processus de compilation. Ceci inclut l'ordinateur qui exécute la commande et les ordinateurs avec les compilateurs croisés. Reportez-vous à la Documentation Gentoo sur distcc pour plus d'information sur la manière d'installer et d'utiliser.

Intel x86 subarchitectures
Si vous effectuez une compilation croisée entre différentes sous-architectures pour Intel x86 (par exemple, i586 et i686), vous devez quand-même compiler une chaîne des outils de compilation croisée pour le CHOST désiré, sinon la compilation plantera. Ceci est dû au fait que i586 et i686 sont des CHOSTs différents en réalité, malgré le fait qu'elles sont toutes les deux considérées comme étant des x86. Pensez à ça quand vous compilez votre chaîne des outils de compilation. Par exemple, si la machine cible est i586, ceci signifie que vous devez construire des chaînes d'outils de compilation i586 sur vos machines participantes i686.

SPARC
Utiliser  pourrait échouer avec une des erreurs suivantes :

Erreurs affichées lors de l'exécution de crossdev -t sparc

Si cela vous arrive, essayez la commande suivante à la place de la précédente :

Configurer distcc pour des compilations croisées correctes
Dans la configuration par défaut de distcc, la compilation croisée ne fonctionnera pas correctement. Le problème est que beaucoup d'ebuilds appellent simplement le compilateur  au lieu de l'appeler par son nom complet (par exemple,    ). Quand cette compilation est distribuée sur une machine participante, le compilateur natif est appelé à la place de votre compilateur croisé flambant neuf.

Heureusement, il y a un moyen de contourner ce petit problème. Tout ce qu'il faut, c'est un script enveloppe et quelques liens symboliques sur la machine qui exécutera la commande d'installation. Nous allons utiliser le machine Sparc comme un exemple. Partout où vous rencontrez   ci-dessous, vous devrez insérer votre propre CHOST (   pour  une machine AMD64, par exemple). Quand vous installerez distcc pour la première fois, le répertoire devrait ressembler à ceci :

Voici ce que vous devez faire :

Ensuite, nous allons créer le nouveau script sur cette machine. Lancez votre éditeur favori et créez un fichier avec le texte suivant, puis sauvegardez-le comme. Pensez à remplacer CHOST (dans ce cas,   ) par le CHOST réel de la machine qui exécutera la commande emerge.

Le nouveau script enveloppe

Ensuite, nous allons rendre le script exécutable et créer les liens symboliques corrects :

Voilà, c'est terminé. devrait ressemble à ceci :

Félicitations ! Vous disposez maintenant d'une configuration distcc de compilation croisée fonctionnelle.

Comment ça marche
Lorsque  est appelé, il recherche ce qui est appelé  (par exemple  ,   , etc.) Lorsque distcc distribue ensuite la compilation à une machine assistante, il lui passe le nom par lequel il a été appelé. Le démon distcc sur l'autre machine assistante recherche alors un binaire de ce nom. S'il voit simplement  , il cherchera    , qui est probablement le compilateur natif sur la machine assistante, si ce n'est pas la même architecture que celle de la machine exécutant la commande. Quand le nom complet du compilateur est envoyé, (par exemple,   ), il ne peut y avoir de  confusion.

Remerciements
Nous tenons à remercier les auteurs et éditeurs suivants pour leur contribution à ce guide :


 * Andrew Gaffney
 * Joshua Saddler