Suivant: , Monter: Architectures externes   [Table des matières][Index]


10.1 Compilation croisée

Les commandes qui prennent en charge la compilation croisée proposent les options --list-target et --target.

L’option --list-targets liste toutes les cibles prises en charge qui peuvent être passées en argument à --target.

$ guix build --list-targets
Les cibles disponibles sont :

   - aarch64-linux-gnu
   - arm-linux-gnueabihf
   - avr
   - i586-pc-gnu
   - i686-linux-gnu
   - i686-w64-mingw32
   - mips64el-linux-gnu
   - or1k-elf
   - powerpc-linux-gnu
   - powerpc64le-linux-gnu
   - riscv64-linux-gnu
   - x86_64-linux-gnu
   - x86_64-linux-gnux32
   - x86_64-w64-mingw32
   - xtensa-ath9k-elf

Les cibles sont spécifiées comme des triplets GNU (voir GNU configuration triplets dans Autoconf).

Ces triplets sont passés à GCC et aux autres compilateurs sous-jacent éventuellement impliqués dans la construction d’un paquet, d’une image système et de toute autre sortie de GNU Guix.

$ guix build --target=aarch64-linux-gnu hello
/gnu/store/9926by9qrxa91ijkhw9ndgwp4bn24g9h-hello-2.12

$ file /gnu/store/9926by9qrxa91ijkhw9ndgwp4bn24g9h-hello-2.12/bin/hello
/gnu/store/9926by9qrxa91ijkhw9ndgwp4bn24g9h-hello-2.12/bin/hello: ELF
64-bit LSB executable, ARM aarch64 …

Le principal avantage de la compilation croisée est qu’il n’y a pas de ralentissement par rapport à l’émulation avec QEMU. Il y a cependant de plus grands risque que certains paquets échouent à compiler de manière croisée car seuls quelques utilisateurs et utilisatrices utilisent ce mécanisme de manière intensive.