Utiliser Gentoo et Calculate Linux

Gentoo : Mise à jour de GCC

Cet article a été mis à jour, vous consultez ici une archive de cet article!
Table des matières



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


:magic: