FreeBSD: poudriere cross compiling (ARM)

Poudriere permet de réaliser du cross compiling et donc de compiler des cibles d’une autre architecture. Nous allons ici prendre l’exemple d’une architecture amd64 cross-compilant vers ARM6 pour un Raspberry PI 2.

Préparation de la jail poudrière

Tout d’abord on va télécharger une image RPI2 viable depuis le miroir FreeBSD puis la décompresser

On va ensuite la rendre disponible au niveau filesystem grâce à l’utilitaire mdconfig

On va maintenant supprimer le flag pour le firstboot (inutile ici nous serons dans une jail de build) et créer le répertoire /usr/local/bin pour poudriere

L’image est maintenant prête on va créer l’archive pour poudriere:

Nous pouvons maintenant créer la jail

Support de la compilation ARM

Tout d’abord on va avoir besoin de qemu-user-static pour réaliser cette cross compilation.

Il a 2 avantages:

  • Il n’a pas de dépendances particulières
  • Le binaire étant statique il va permettre à poudrière de s’éxecuter correctement sans devoir copier des librairies dynamiques supplémentaires dans la jail

Ajoutez maintenant l’émulateur ARM aux interpréteurs utilisables par poudriere

Cross-compiling !

L’environnement est prêt, il ne reste plus qu’à lancer la compilation, par exemple de zsh

Votre jail de cross compilation est maintenant opérationnelle, vous pouvez compiler sur un vrai CPU et ne plus attendre des jours que votre Raspberry PI compile X11.

Google Plus

One thought on “FreeBSD: poudriere cross compiling (ARM)

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *