7.7. Libstdc++ de GCC-11.2.0, Passe 2

Lors de la construction de gcc-pass2 nous avons repoussé l'installation de la bibliothèque standard C++ parce qu'aucun compilateur convenable n'était disponible pour la construire. Nous ne pouvons pas utiliser le compilateur construit dans cette section parce que c'est un compilateur natif et qu'il ne doit pas être utilisé en dehors du chroot ou il risquerait de polluer les bibliothèques avec des composants de l'hôte.

Temps de construction approximatif: 0.8 SBU
Espace disque requis: 1.1 Go

7.7.1. Installation de Target Libstdc++

[Note]

Note

Libstdc++ fait partie des sources de GCC. Vous devez d'abord déballer l'archive de GCC et vous déplacer dans le répertoire gcc-11.2.0.

Créez un lien qui existe lors de la construction de libstdc++ dans l'arborescence des sources de gcc :

ln -s gthr-posix.h libgcc/gthr-default.h

Créez un répertoire de construction séparé pour libstdc++ et entrez dedans :

mkdir -v build
cd       build

Préparez la compilation de libstdc++ :

../libstdc++-v3/configure            \
    CXXFLAGS="-g -O2 -D_GNU_SOURCE"  \
    --prefix=/usr                    \
    --disable-multilib               \
    --disable-nls                    \
    --host=$(uname -m)-lfs-linux-gnu \
    --disable-libstdcxx-pch

Voici la signification des options de configuration :

CXXFLAGS="-g -O2 -D_GNU_SOURCE"

Ces drapeaux sont passés par le Makefile de plus haut niveau lors de la construction complète de GCC.

--host=$(uname -m)-lfs-linux-gnu

Nous devons mimer ce qui arriverait si ce paquet était construit avec la construction complète du compilateur. Ce drapeau serait passé au configure par la machinerie de construction de GCC.

--disable-libstdcxx-pch

Ce paramètre évite l'installation des fichiers d'en-tête pré-compilés, qui ne sont pas requis pour le moment.

Compilez libstdc++ en lançant :

make

Installez la bibliothèque :

make install

Les détails sur ce paquet sont disponibles dans Section 8.26.2, « Contenu de GCC. »