Chaîne de compilation

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher

En informatique, une chaîne de compilation (en anglais : « toolchain ») désigne l'ensemble des paquets utilisés dans le processus de compilation d'un programme, pour un processeur donné. Le compilateur n'est qu'un élément de cette chaîne, laquelle varie selon l'architecture matérielle cible[1].

Chaîne de compilation GNU[modifier | modifier le code]

La chaîne de compilation GNU (en anglais : « GNU toolchain ») utilisée dans le monde du Libre comprend les éléments suivants :

  • binutils : une collection d'utilitaires utilisés pour le traitement des fichiers binaires ; ce paquetage contient notamment l'assembleur qui transforme le pseudo-code généré par la compilation en instructions comprises par le processeur cible, et l'éditeur des liens pour lier les bibliothèques utilisées par un programme.
  • gcc : les compilateurs C et C++ de la collection ;
  • glibc, bibliothèque C du système utilisée pour les appels au noyau et le traitement des processus de bas-niveau ;
  • les en-têtes du noyau requis par la bibliothèque glibc (linux-headers dans le cas du noyau Linux) ;
  • gdb, composant optionnel pour le débogage d'une chaîne binaire déjà compilée ;

Chaîne de compilation native[modifier | modifier le code]

On parle de compilation native lorsque la chaîne est compilée sur une machine à la fois hôte et cible. Les éléments de la chaîne sont installés dans des paquetages pour les distributions dites binaires (par exemple, deb pour Debian, rpms pour Red Hat), ou sont compilés à partir des sources pour les distributions sources. La chaîne de compilation génère des exécutables sur la même architecture matérielle pour laquelle elle a été compilée.

Chaîne de compilation croisée[modifier | modifier le code]

Une chaîne de compilation croisée est une chaîne compilée pour fonctionner sur l'architecture de processeurs de la machine hôte, mais qui va compiler des logiciels pour une architecture cible différente. Dans ce cas, il est nécessaire de compiler la chaîne à partir du code source.

Installation d'une chaîne de compilation[modifier | modifier le code]

Les composants de la chaîne en environnement GNU/Linux utilisent les mécanismes de construction du système GNU. Le script configure permet de préciser les architectures hôte et cible (paramètres host et target). Les distributions peuvent fournir une couche d'abstraction pour en simplifier la gestion (ebuild pour Gentoo, Cookutils pour SliTaz[2]), ou des outils comme Crosstool, Buildroot pour les systèmes embarqués.

Bibliographie[modifier | modifier le code]

  • Pierre Ficheux et Eric Bénard, Linux embarqué : Nouvelle étude de cas, Eyrolles,‎ 2012, 4e éd. (ISBN 9782212167252), « La chaîne de compilation croisée », p. 92

Références[modifier | modifier le code]

  1. Exemple d'une chaîne de compilation pour processeur Arm
  2. « Toolchain », sur slitaz.org,‎ 21 mai 2011 (consulté en 17 décembre 2012)