Compilation croisée avec gcc
Un article de Haypo.
Cet article explique comment produire un compilateur gcc pour Linux permettant de produire des binaires pour Solaris. C'est ce qu'on appelle la compilation croisée.
Sommaire |
[modifier] Téléchargement
Il faut gcc-core qui se téléchargent sur le site officiel de GCC. J'ai utilisé la version 3.4.4.
Il faut les binutils qui se téléchargent sur le site officiel des binutils (sur gnu.org). J'ai utilisé la version 2.16.
[modifier] Décompression et compilation (binutils)
Décompresssion :
$ tar xvjf binutils-2.16.tar.bz2 $ cd binutils-2.16
Compilation des binutils :
$ ./configure --target=sparc-solaris --prefix=/home/haypo/utbm/LO52/solaris $ make $ make install
Rappel : Jamais de "/" à la fin du préfixe ! Note : make install est autorisé sans être root car j'ai choisi de tout copier dans mon répertoire personnel.
Super bidouille pour avoir des binaires en "sparc-sun-solaris-<programme>" et non pas "<programme>" (ce qui réclame gcc par la suite) :
$ cd ../solaris/bin $ for i in $(ls); do ln -vs $i sparc-sun-solaris-$i; done $ cd ../..
[modifier] Décompression et compilation (gcc)
Décompression :
$ tar xvjf gcc-core-3.4.4.tar.bz2 $ cd gcc-3.4.4
Compilation de gcc :
$ ./configure --target=sparc-sun-solaris --prefix=/home/haypo/utbm/LO52/solaris \
--with-gnu-gas --with-gnu-ld
$ make
$ make install
[modifier] Entêtes Solaris à copier
Liste :
- (...)
[modifier] Bug gcc (PATH_MAX)
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15082
Patch :
- (1) Ajouter #include <limits.h> /* for PATH_MAX */ dans gcc-3.4.0/gcc/config/sparc/gmon-sol2.c
- (2) http://gcc.gnu.org/ml/gcc-patches/2004-05/txt00006.txt (gcc/Makefile.in)
[modifier] Arborescence de travail
Je travaille dans /home/haypo/utbm/LO52/ que je vais noter ici "." :
./binutils-2.16 ./
[modifier] Voir aussi
[modifier] Articles connexes
- Article sur le compilateur gcc

