Les détails sur ce paquet sont situés dans Section 10.10.2, “Contenu de GCC.”
Le paquet GCC contient la collection de compilateurs GNU, qui inclut les compilateurs C et C++.
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-pure64_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/sparc/linux.h echo " #undef STARTFILE_PREFIX_SPEC #define STARTFILE_PREFIX_SPEC \"/tools/lib/\"" >> gcc/config/sparc/linux64.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 CFLAGS_FOR_TARGET="${GCCTARGET}" all-gcc
Installez le paquet :
make install-gcc
Les détails sur ce paquet sont situés dans Section 10.10.2, “Contenu de GCC.”