Le problème intervient après une mise à jour de GCC, tant en ACCEPT_KEYWORDS=x86 qu'en ~x86.

Symptôme : un emerge se chie dessus en disant que libtool ne trouve pas le fichier libstdc++.la dans /usr/lib/gcc/arch/version/.

Mettons qu'on (ou emerge tout seul comme un grand après un emerge world) a upgradé GCC de la version 3.3.4, architecture i686-pc-linux-gnu, à la version 3.3.5, architecture i386-pc-linux-gnu : libtool va se plaindre qu'il ne trouve pas /usr/lib/gcc/i686-pc-linux-gnu/3.3.4/libstdc++.la et c'est bien normal.

La solution ? Un petit script magique dénommé fix_libtool_files.sh, qui appelle lui-même un script awk (/lib/rcscripts/awk/fixlafiles.awk), qui part à la recherche de références "en dur" à certains fichiers GCC.

Et qui s'invoque de la façon suivante, dans notre cas : fix_libtool_files.sh 3.3.5 --oldarch i686-pc-linux-gnu ("--oldarch truc" étant optionnel si ça n'a pas changé lors de l'upgrade).

Voilà voilà. Soit ce billet n'aura pas (ou très peu) de commentaires, soit ils seront totalement à côté de la plaque. ;)