6.9. GCC-7.1.0

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

6.9.1. Installation de GCC

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

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

Modifiez la spec StartFile afin que GCC regarde dans /tools :

echo -en '\n#undef STANDARD_STARTFILE_PREFIX_1\n#define STANDARD_STARTFILE_PREFIX_1 "/tools/lib/"\n' >> gcc/config/linux.h
echo -en '\n#undef STANDARD_STARTFILE_PREFIX_2\n#define STANDARD_STARTFILE_PREFIX_2 ""\n' >> gcc/config/linux.h

Appliquez un sed qui supprimera l'exécution du script fixincludes :

cp -v gcc/Makefile.in{,.orig}
sed 's@\./fixinc\.sh@-c true@' gcc/Makefile.in.orig > gcc/Makefile.in

La documentation de GCC recommande de construire GCC en dehors du répertoire des sources dans un répertoire dédié :

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

Avant de commencer à construire GCC, pensez à supprimer toute variable d'environnement qui réécrit les drapeaux d'optimisation par défaut.

Préparez la compilation de GCC :

../gcc-7.1.0/configure \
    --prefix=/tools \
    --libdir=/tools/lib64 \
    --build=${CLFS_HOST} \
    --host=${CLFS_TARGET} \
    --target=${CLFS_TARGET} \
    --with-local-prefix=/tools \
    --enable-languages=c,c++ \
    --with-system-zlib \
    --with-native-system-header-dir=/tools/include \
    --disable-libssp \
    --enable-install-libiberty

Voici la signification de la nouvelle option de configure :

--enable-install-libiberty

Permet à GCC de construire et installer libiberty.a et ses en-têtes associés. Cette bibliothèque est requise pour la construction de certains paquets.

Compilez le paquet :

make AS_FOR_TARGET="${AS}" \
    LD_FOR_TARGET="${LD}"

Installez le paquet :

make install

Des détails sur ce paquet se trouvent sur Section 10.26.2, « Contenu de GCC. »