5.7. GCC-4.2.4 croisé - Statique

Le paquet GCC contient la collection de compilateurs GNU, qui inclut les compilateurs C et C++.

5.7.1. Installation du compilateur GCC croisé avec libgcc statique et sans Threads

Faites deux ajustements essentiels pour le fichier specs de GCC pour vous assurer que GCC utilise notre environnement de construction :

patch -Np1 -i ../gcc-4.2.4-specs-1.patch

Pour être sûr que les deux outils utilise la bonne syntaxe, appliquez le correctif suivant :

patch -Np1 -i ../gcc-4.2.4-posix-1.patch

Le correctif suivant assure que gcc ne cherche pas libgcc_s.so dans le répertoire /usr lors de la compilation croisée :

patch -Np1 -i ../gcc-4.2.4-cross_search_paths-1.patch

Modifiez la spec StartFile pour pointer vers le bon emplacement des bibliothèques :

echo "
#undef STARTFILE_PREFIX_SPEC
#define STARTFILE_PREFIX_SPEC \"/tools/lib/\"" >> gcc/config/linux.h

Maintenant, modifiez le chemin de recherche include par défaut du préprocesseur c de GCC pour n'utiliser que /tools :

cp -v gcc/Makefile.in{,.orig}
sed -e "s@\(^CROSS_SYSTEM_HEADER_DIR =\).*@\1 /tools/include@g" \
    gcc/Makefile.in.orig > gcc/Makefile.in

La documentation de GCC recommande de construire GCC en dehors du répertoire source, c'est-à-dire dans un répertoire dédié :

mkdir -v ../gcc-build
cd ../gcc-build

Préparez la compilation de GCC :

../gcc-4.2.4/configure --prefix=/cross-tools \
    --host=${CLFS_HOST} --target=${CLFS_TARGET} --disable-multilib \
    --with-local-prefix=/tools --disable-nls --disable-shared \
    --disable-threads --enable-languages=c

Voici la signification des options de configure :

--with-local-prefix=/tools

Le but de ce paramètre est de supprimer /usr/local/include du chemin de recherche include de gcc. Ce n'est pas absolument essentiel, néanmoins cela aide à minimiser l'influence du système hôte.

--disable-shared

Désactive la création des bibliothèques partagées.

--disable-threads

Cela empêchera GCC de chercher les fichiers include multi-thread, vu qu'ils n'ont pas encore été créés pour cette architecture. GCC sera capable de trouver les informations multi-thread après que les en-têtes Glibc ont été créés.

--enable-languages=c

Cette option nous assure que seul le compilateur C sera construit.

Poursuivez en compilant le paquet :

make all-gcc

Installez le paquet :

make install-gcc

Les détails sur ce paquet sont disponibles dans Section 10.10.2, “Contenu de GCC.”