Gentoo : Mise à jour de GCC
Table des matières
Après une mise à jour de GCC, souvent, c'est toujours la version précédente qui est utilisée pour compiler.
Si cette version a été désinstallée, les paquets échouent à la compilation.
On se rend compte que GCC va être mis à jour quand GCC apparait dans la liste des mises à jour (normal) :
Après la mise à jour de GCC, évidemment, on a ce genre de messages lors de la compilation de paquets installés avec emerge :
Pour remédier à ça, on exécute la commande suivante :
Elle nous indique :
Donc, on va activer cette nouvelle version dans notre système :
Ensuite, on recharge dans notre console l'environnement :
Puis on peut éventuellement réinstaller libtool sans l'ajouter au fichier world :
Et c'est réglé !
Il se peut aussi que ce message apparaisse lors d'une compilation de paquets :
Il suffit de recompiler la base du système sauf GCC :
Si certaines applications ne se lancent pas correctement :
Il suffit de recompiler (ou télécharger à nouveau les binaires qui ont été régénérés chez Calculate par exemple) les applications qui dépendent directement de GCC via cette commande :
Introduction
Après une mise à jour de GCC, souvent, c'est toujours la version précédente qui est utilisée pour compiler.
Si cette version a été désinstallée, les paquets échouent à la compilation.
Mise à jour de GCC
On se rend compte que GCC va être mis à jour quand GCC apparait dans la liste des mises à jour (normal) :
Code BASH :
[ebuild U ] sys-devel/gcc-4.9.3:4.9.3::gentoo USE="cxx fortran (multilib) nls nptl objc openmp sanitize vtv (-altivec) (-awt) -cilk -debug -doc (-fixed-point) -gcj -go -graphite (-hardened) (-libssp) -multislot -nopie -nossp -objc++ -objc-gc -regression-test -vanilla" 87941 KiB
Que faire après la mise à jour
Après la mise à jour de GCC, évidemment, on a ce genre de messages lors de la compilation de paquets installés avec emerge :
Code TEXT :
>>> Jobs: 2 of 6 complete, 1 failed Load avg: 0.36, 0.10, 0.04 * Package: dev-util/ctags-5.8 * Repository: gentoo * Maintainer: [email protected] * USE: abi_x86_64 amd64 elibc_glibc kernel_linux userland_GNU * FEATURES: preserve-libs sandbox userpriv usersandbox * Applying ctags-5.6-ebuilds.patch ... [ ok ] * Applying ctags-5.8-python-vars-starting-with-def.patch ... [ ok ] * Applying ctags-5.8-f95-pointers.patch ... [ ok ] Exuberant Ctags, version 5.8 Linux 4.4.6-gentoo-adrien #1 SMP Sat Apr 30 11:47:21 CEST 2016 x86_64 checking whether to install link to etags... no checking whether to install readtags object file... no checking for x86_64-pc-linux-gnu-gcc... x86_64-pc-linux-gnu-gcc checking for C compiler default output file name... configure: error: C compiler cannot create executables
Pour remédier à ça, on exécute la commande suivante :
Code BASH :
gcc-config -l
Elle nous indique :
Code TEXT :
* gcc-config: Active gcc profile is invalid! [1] x86_64-pc-linux-gnu-4.9.3
Donc, on va activer cette nouvelle version dans notre système :
Code BASH :
gcc-config 1
Code TEXT :
* Switching native-compiler to x86_64-pc-linux-gnu-4.9.3 ... >>> Regenerating /etc/ld.so.cache... [ ok ] * If you intend to use the gcc from the new profile in an already * running shell, please remember to do: * . /etc/profile
Ensuite, on recharge dans notre console l'environnement :
Code BASH :
env-update && source /etc/profile
Puis on peut éventuellement réinstaller libtool sans l'ajouter au fichier world :
Code BASH :
emerge -1 libtool
Et c'est réglé !
configure: error: C compiler cannot create executables
Il se peut aussi que ce message apparaisse lors d'une compilation de paquets :
Code TEXT :
checking for x86_64-pc-linux-gnu-gcc... x86_64-pc-linux-gnu-gcc checking whether the C compiler works... no configure: error: in `/var/calculate/tmp/portage/dev-libs/libmix-2.05-r7/work/libmix-v2.05': configure: error: C compiler cannot create executables See `config.log' for more details
Il suffit de recompiler la base du système sauf GCC :
Code BASH :
emerge -e @system --exclude gcc
symbol lookup error
Si certaines applications ne se lancent pas correctement :
Code BASH :
symbol lookup error: clementine: undefined symbol
Il suffit de recompiler (ou télécharger à nouveau les binaires qui ont été régénérés chez Calculate par exemple) les applications qui dépendent directement de GCC via cette commande :
Code BASH :
revdep-rebuild --library 'libstdc++.so.6' -- --exclude gcc