Kidnapping de CPU
Avec les petits amis de NetBSDfr, nous préparons un projet secret de domination des paquets pkgsrc impliquant de la compilation, beaucoup de compilation. Je dispose pour ce faire d’une tripotée de machines virtuelles, ne fonctionnant pas forcemment sous NetBSD, mais toutes munies d’un ou plusieurs CPUs pas forcemment sollicités. Aussi, me suis-je mis dans la tête d’utiliser distcc couplé aux outils de compilation croisée disponibles dans l’arbre des sources de NetBSD. L’opération est étonemment simple.
Je prendrai pour exemple une machine Debian GNU/Linux 6.0. La première étape consiste à installer l’ensemble des outils nécessaires à la compilation sur cette machine dédiée à la compilation distribuée:
- gcc
- g++
- zlib1g-dev
- ncurses-base On récupère ensuite l’arbre des sources, par exemple pour cross-compiler NetBSD 5.1.2:
Puis on utilise build.sh afin de construire les outils de compilation croisée déstinés à compiler des binaires NetBSD sur GNU/Linux. Contrairement à ce que dit la documentation officielle, il ne faut pas ajouter le flag -u, qui empêcherait l’autoconfiguration de nbcompat (oui, on va corriger):
À l’issue de cette construction, vous devriez disposer d’un nouveau repertoire de type:
Il faut alors evidemment installer distcc de cette façon:
apt-get install distcc
Et modifier le fichier /etc/default/distcc:
On démarre distcc simplement:
C’est prêt !
Il ne reste plus qu’à indiquer à notre machine NetBSD qu’elle peut désormais utiliser notre nouvelle machine de compilation, par exemple en ajoutant au fichier /etc/mk.conf:
Vous pouvez vous référer à cette documentation de votre serviteur pour apprendre à préparer distcc sur une machine NetBSD.